VMusic2 + Arduino

From Digipool-Wiki
Revision as of 16:45, 17 June 2013 by WikiSysop (Talk | contribs)

Jump to: navigation, search

Zum Bau eines programmierbaren MP3-Players benötigen wir:

  • vMusic2 - MP3-Player
  • Arduino 5V
  • USB-Stick


Funktionsprinzip:
Die MP3 Dateie werden auf dem USB-Stick gespeichert und können mit dem Sound-Chip des VMusic2-Moduls abgespielt werden. Dieses besitzt eine kleinen Klinkenstecker für Kopfhörer, Boxen, Aktiv-Boxen usw... Das VMusic2 wird von einem Arduino gesteuert. Das Arduino ist ein kleiner Computer, der sich leicht programmieren lässt. Er gibt dem VMusic2-Player einfache Befehle (siehe unten) über eine Serielle Verbindung. Der große Vorteil dieses selbst gebauten MP3-Players ist, dass wir genau programmieren können, was passiert. An das Arduino lassen sich Taster, Schalter uns Sensoren anschließen über die das Abspielen der MP3-Sounds gesteuert wird. Zusätzlich Kann das Arduino Leuchtdioden, Lampen, Motoren oder andere dinge in Kombination mir dem Sound steuern. Ein kleiner Nachteil liegt in leichten Verzögerung von ca. einer Sekunde, die es dauert bis der VMusic-Player reagiert.


VMusic Steuerbefehle

  • "VPF" = VMusic Play File
  • "VSV" = VMusic set volume
  • "VST" = VMusic stop


Code-Beispiel <source lang="java"> // PlayOneSong with vMusic2 // Example by by Olaf Val (www.olafval.de)

  1. include <SoftwareSerial.h>

// USB-stick max 4 G (hard to buy this days) // Format the Stick with FAT32 // Name Songs "001.mp3" "002.mp3" . . .

// cut the blue // conect the brown to the reen cable // red cable to 5V // black cable to GND

  1. define VMUSIC_RX 14 // yellow cable ti Analog in 0
  2. define VMUSIC_TX 15 // orange cable ti Analog in 1


// set up a new serial port SoftwareSerial mySerial = SoftwareSerial(VMUSIC_RX, VMUSIC_TX);

void setup() {

 Serial.begin(9600);	// opens serial port, sets data rate to 9600 bps
 // define pin modes for tx, rx, led pins:
 pinMode(VMUSIC_RX, INPUT);
 pinMode(VMUSIC_TX, OUTPUT);
   
 // set the data rate for the SoftwareSerial port
 mySerial.begin(9600);
 
 mySerial.print("VSV"); // set volume
 mySerial.print(0,BYTE); // should be between 0 (loud) and 254 (mute)
 mySerial.print(0x0D,BYTE);

}

void loop() {

 Serial.println("Song_1"); 
 mySerial.print("VPF 001.mp3"); // play song nr one
 mySerial.print(0x0D,BYTE);
delay(9000);

} </source>