Tuesday, December 23, 2014

Audino - Arduino MP3-Player (10) - Auswahl der Komponenten 2

Nun haben wir alles zusammen - die Knöpfe, der Lautstärkeregler, das MP3 Shield - um die komplette Anwendung fertigzustellen. Mit den definierten Schaltungen und den Beispiel-Codes kann das Programm soweit ergänzt werden, dass es voll funktionsfähig ist.

Da die Schaltung allerdings nicht auf dem Entwicklungsbrett enden soll, ist es nun Zeit sich über die noch fehlenden Komponenten Gedanken zu machen.

Als erstes brauche ich größere Knöpfe, wie beispielsweise diese hier 3FTL6.
Und die passenden Kappen werden natürlich auch benötigt (1D09, 1D06, 1D03, 1D08, 1D00, 1D02, 1D04).
Die Kappen können dann einfach auf die Knöpfe gesteckt werden.
Die ganze Elektronik soll dann auf eine Punkt-Streifenrasterplatine kommen. 160x100mm sollte ausreichend sein.
Für einzelne Verbindungen kommt isolierte Kupferlitze (blau, schwarz, rot) zum Einsatz.
Für einzelne elektrische Isolierungen und zum Schutz können Schrumpfschläuche verwendet werden.
Auch das Isolierband kann für Isolierungen eingesetzt werden.
Damit der Lautsprecher geschützt ist, wird noch ein passendes Schutzgitter benötigt.
Das bisherige Potentiometer habe ich durch einen neuen Potentiometer ersetzt, der eine längere Achslänge und Gewinde hat.
Auch den bisherigen Kippschalter habe ich durch einen längeren Kippschalter ersetzt.
Auf dem Potentiometer kommt noch ein passender Drehknopf.
Für die Befestigung der Platine werde ich 4 Kunststoff-Distanzbolzen (M3x10mm) mit einem Innen- (7mm) und einem Außengewinde (8mm) verwenden. Dazu kommen passende Senkschrauben M3/8 und passende Muttern M3.
Für die Befestigung des Lautsprechers kommen 4 Senkschrauben M4/20 und passende Muttern M4 zum Einsatz.
Der Batteriehalter wird durch 2 Senkschrauben M3/10 und passenden Muttern M3 an der Platine befestigt.


Die elektronischen Teile habe ich diesmal bei Reichelt oder Conrad gekauft. Schrauben und Muttern bekommt man gut bei Zweygart.

Als nächstes werde ich mir einen Überblick über alle Komponenten verschaffen, die nun zum Einsatz kommen sollen.


Weitere Blogeinträge

  1. Auswahl der Komponenten
  2. Das Entwicklungsbrett
  3. Das erste Einschalten
  4. Die Entwicklungsumgebung
  5. Knöpfe (digital)
  6. Mehrere Knöpfe (digital)
  7. Mehrere Knöpfe (analog)
  8. Potentiometer
  9. Das MP3 Shield
  10. Auswahl der Komponenten 2
  11. Auswahl der Komponenten (Zusammenfassung) 
  12. Punkt-Streifenrasterplatine und Knöpfe
  13. Punkt-Streifenrasterplatine und weitere Komponenten
  14. Das Gehäuse
  15. Sketch 1 (setup-Methode)
  16. Sketch 2 (loop-Methode)
  17. Sketch 3 (Der komplette Code)
  18. PC-Software


Monday, December 22, 2014

Audino - Arduino MP3-Player (9) - Das MP3 Shield

Damit das MP3 Shield auf das Arduino-Board gesteckt und verwendet werden kann, müssen entweder die mitgelieferten Steckleisten zurechtgeschnitten und dran gelötet werden (https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player/assembly) oder man besorgt sich passende Buchsenleisten (Header), die dann dran gelötet werden (https://learn.sparkfun.com/tutorials/arduino-shields/installing-headers-assembly).


Tipps über das Löten gibt es auf vielen Seiten, wie beispielsweise unter https://learn.sparkfun.com/tutorials/how-to-solder---through-hole-soldering oder unter https://learn.adafruit.com/adafruit-guide-excellent-soldering/tools.


Auch der 6-Pin Socket und die Endstücke für die Lautsprecher müssen drangelötet werden.


Falls noch die GPIOs des MP3 Shields benötigt werden, muss hier noch die passende Buchsenleiste (2x7) drangelötet werden.



Nachdem alles gelötet ist, kann die VS1053-Bibliothek installiert werden, die hier runtergeladen werden kann: https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player/installing-software.

Das Vorgehen für die Installation innerhalb der Arduino-Entwicklungsumgebung kann hier nachgelesen werden:http://arduino.cc/en/Guide/Libraries. Für die Installation unter Visual Studio/Visual Micro muss als erstes der richtige Pfad unter "Tools-->Visual Micro-->Configure Ide location--> Sketchbook location" angegeben werden. Dann kann unter "Project-->Add/Import Sketch Library-->User" die Bibliothek "Adafruit_VS1053" geladen werden.

Mit dem Beispiel-Sketch "player_simple" kann das MP3 Shield getestet werden. Dabei muss darauf geachtet werden, dass das "shield-example object" anstelle des "breakout-example object" erzeugt wird.


Die Ausgabe des Serial Monitor gibt den Erfolg zurück.



Im nächsten Beitrag geht es um die noch fehlenden Komponenten.


Weitere Blogeinträge

  1. Auswahl der Komponenten
  2. Das Entwicklungsbrett
  3. Das erste Einschalten
  4. Die Entwicklungsumgebung
  5. Knöpfe (digital)
  6. Mehrere Knöpfe (digital)
  7. Mehrere Knöpfe (analog)
  8. Potentiometer
  9. Das MP3 Shield
  10. Auswahl der Komponenten 2
  11. Auswahl der Komponenten (Zusammenfassung) 
  12. Punkt-Streifenrasterplatine und Knöpfe
  13. Punkt-Streifenrasterplatine und weitere Komponenten
  14. Das Gehäuse
  15. Sketch 1 (setup-Methode)
  16. Sketch 2 (loop-Methode)
  17. Sketch 3 (Der komplette Code)
  18. PC-Software

Monday, December 15, 2014

Audino - Arduino MP3-Player (8) - Potentiometer

Um die Lautstärke zu regulieren ist ein 10k Ohm Potentiometer vorgeshen. Der mittlere Pin des Potentiometers habe ich mit dem A5-Pin des Arduinos verbunden. Die äußeren Pins des Potentiometers werden mit der 5V-Stromversorgung und der Masse verbunden.




Im Programmcode sind der verwendete Pin als Konstante und der Lautstärkenpegel als Variable definiert.

// the pin of the potentiometer that is used to control the volume
const int volumePin = A5;
// variable for reading the potentiometer status
int volumeState = 0;

In der loop() Methode wird der aktuelle Status des Potentiometers ausgelesen. Der ausgelesene Wert wird in den Bereich von 0 bis 100 transformiert, um eine prozentualle Lautstärke zu erhalten. Der ausgelesene Wert wird mit dem gespeicherten Wert verglichen, wenn es eine Änderung um 2% festgestellt wird, wird der gespeicherte Wert durch den neuen ersetzt.

int state;
 
// read the state of the volume potentiometer
state = analogRead(volumePin);
 
// set the range of the volume from 0 to 100
state = map(state, 0, 1023, 0, 100);
 
// recognize state (volume) changes in steps of two
if (state < volumeState - 1 || state > volumeState + 1)
{
    // remember the new volume state
    volumeState = state;
 
    // print out the state of the volume
    Serial.print(volumePin);
    Serial.print(" volume ");
    Serial.println(volumeState);
}
delay(1); // delay in between reads for stability

Hier noch mal der gesamte Programmcode.

// constants won't change
 
// the pin of the potentiometer that is used to control the volume
const int volumePin = A5;
 
// variables will change
 
// variable for reading the potentiometer status
int volumeState = 0;
 
// the setup routine runs once when you turn the device on or you press reset
void setup()
{
    // disable LED L
    pinMode(13, OUTPUT);
    digitalWrite(13, LOW);
 
    // initialize serial communication at 9600 bits per second
    Serial.begin(9600);
}
 
 
// the loop routine runs over and over again forever
void loop()
{
    int state;
 
    // read the state of the volume potentiometer
    state = analogRead(volumePin);
 
    // set the range of the volume from 0 to 100
    state = map(state, 0, 1023, 0, 100);
 
    // recognize state (volume) changes in steps of two
    if (state < volumeState - 1 || state > volumeState + 1)
    {
        // remember the new volume state
        volumeState = state;
 
        // print out the state of the volume
        Serial.print(volumePin);
        Serial.print(" volume ");
        Serial.println(volumeState);
    }
 
    delay(1); // delay in between reads for stability
}

Als nächstes nehme ich mir das MP3 Shield näher unter die Lupe.


Weitere Blogeinträge

  1. Auswahl der Komponenten
  2. Das Entwicklungsbrett
  3. Das erste Einschalten
  4. Die Entwicklungsumgebung
  5. Knöpfe (digital)
  6. Mehrere Knöpfe (digital)
  7. Mehrere Knöpfe (analog)
  8. Potentiometer
  9. Das MP3 Shield
  10. Auswahl der Komponenten 2
  11. Auswahl der Komponenten (Zusammenfassung) 
  12. Punkt-Streifenrasterplatine und Knöpfe
  13. Punkt-Streifenrasterplatine und weitere Komponenten
  14. Das Gehäuse
  15. Sketch 1 (setup-Methode)
  16. Sketch 2 (loop-Methode)
  17. Sketch 3 (Der komplette Code)
  18. PC-Software


Sunday, December 14, 2014

Audino - Arduino MP3-Player (7) - Mehrere Knöpfe (analog)


Um Pins zu sparen (falls diese knapp sein sollten), können die Knopfdrücke mehrerer Knöpfe auch über einen analogen Pin registriert werden (spanischer Blogeintrag dazu). Hier sind 11 Knöpfe verwendet worden. Über einen analogen Pin wird festgestellt welcher Knopf gedrückt worden ist.




Dabei werden mehrere Widerstände in Reihe geschaltet. Die Knöpfe werden so angebracht, dass bei einem Knopfdruck eine Parallelschaltung entsteht, durch die eine bestimmte Anzahl von Widerständen übersprungen wird. Der Messpunkt liegt hinter dem siebten Widerstand. Dadurch kann die Reihenschaltung auf zwei Elemente zusammengefasst werden. Das erste Element umfasst die ersten sieben Widerstände und das zweite Element umfasst die letzten sechs Widerstände. Durch einen Knopfdruck entsteht nun eine Spannungsänderung, die über den analogen Eingang ausgelesen werden kann. Über den gemessenen Spannungswert kann auf den gedrückten Knopf geschlossen werden.


Dazu der passende Programmcode, der den gelesen Wert am analogen Pin A5 ausgebiet. Zudem wird, falls eine Taste gedrückt worden ist, die Nummer dieser Taste ausgegeben.

// constants won't change

// the number of the pin that is used for the pushbuttons
const int buttonsPin = A5;

// variables will change

// variable for the pressed button
int pressedButton = 0;

// the setup routine runs once when you turn the device on or you press reset
void setup()
{
    // initialize serial communication at 9600 bits per second
    Serial.begin(9600);
}

// the loop routine runs over and over again forever
void loop()
{
    // check if a button is pressed
    pressedButton = CheckButtons();
 
    if (pressedButton != 0)
    {
        Serial.print("Taste: ");
        Serial.println(pressedButton);
        delay(100);
    }
}

// returns 0 if no button is pressed,
// else the number of the pressed button is returned (1 - 11)
int CheckButtons()
{
    int buttonsPinValue = analogRead(buttonsPin);
    int pressedButton = 0;
 
    Serial.println(buttonsPinValue);
 
    if (buttonsPinValue > 823)
    {
        // button 6 has a value of about 878
        pressedButton = 6;
    }
    else if (buttonsPinValue > 725)
    {
        // button 5 has a value of about 768
        pressedButton = 5;
    }
    else if (buttonsPinValue > 649)
    {
        // button 4 has a value of about 683
        pressedButton = 4;
    }
    else if (buttonsPinValue > 586)
    {
        // button 3 has a value of about 614
        pressedButton = 3;
    }
    else if (buttonsPinValue > 535)
    {
        // button 2 has a value of about 559
        pressedButton = 2;
    }
    else if (buttonsPinValue > 492)
    {
        // button 1 has a value of about 512
        pressedButton = 1;
    }
    else if (buttonsPinValue > 450)
    {
        // if no button is pressed the value is of about 473
        pressedButton = 0;
    }
    else if (buttonsPinValue > 400)
    {
        // button 8 has a value of about 427
        pressedButton = 11;
    }
    else if (buttonsPinValue > 340)
    {
        // button 10 has a value of about 372
        pressedButton = 10;
    }
    else if (buttonsPinValue > 267)
    {
        // button 9 has a value of about 307
        pressedButton = 9;
    }
    else if (buttonsPinValue > 178)
    {
        // button 8 has a value of about 228
        pressedButton = 8;
    }
    else if (buttonsPinValue > 0)
    {
        // button 7 has a value of about 128
        pressedButton = 7;
    }
    return pressedButton;
}

Nächstes Mal werde ich mir die Verwendung eines Potentiometers anschauen.


Weitere Blogeinträge

  1. Auswahl der Komponenten
  2. Das Entwicklungsbrett
  3. Das erste Einschalten
  4. Die Entwicklungsumgebung
  5. Knöpfe (digital)
  6. Mehrere Knöpfe (digital)
  7. Mehrere Knöpfe (analog)
  8. Potentiometer
  9. Das MP3 Shield
  10. Auswahl der Komponenten 2
  11. Auswahl der Komponenten (Zusammenfassung) 
  12. Punkt-Streifenrasterplatine und Knöpfe
  13. Punkt-Streifenrasterplatine und weitere Komponenten
  14. Das Gehäuse
  15. Sketch 1 (setup-Methode)
  16. Sketch 2 (loop-Methode)
  17. Sketch 3 (Der komplette Code)
  18. PC-Software