Mittwoch, 11. Februar 2009

Technics

Deutsch:
Mobiler Raum, Dachlatten, Faserplatten, Arduino, M-Music MP3 Palyer von FTDI, Funkkopfhörer, Joystick Competition Pro von Dynamics Marketing

English:
mobile room, batten, beaverboard, Arduino, M-Music MP3 Palyer by FTDI, cordless headphone, joystick Competition Pro by Dynamics Marketing

Construction Plan:
DOWNOLAD

Arduino Code:
DOWNLOAD

#include

#define VMUSIC_RX 7
#define VMUSIC_TX 6
#define ledPin 13

int incomingByte = 0; // for incoming serial data
int buttonA = 12; // choose the input pin (for a pushbutton)
int buttonB = 11; // choose the input pin (for a pushbutton)
int buttonC = 10; // choose the input pin (for a pushbutton)
int buttonD = 9; // choose the input pin (for a pushbutton)
int buttonE = 8; // choose the input pin (for a pushbutton)

int buttonValA = 0; // variable for reading the pin status
int buttonValB = 0; // variable for reading the pin status
int buttonValC = 0; // variable for reading the pin status
int buttonValD = 0; // variable for reading the pin status
int buttonValE = 0; // variable for reading the pin status

int bu0 = 0;
int bu1 = 0;
int bu2 = 0;
int bu3 = 0;
int bu4 = 0;
int bu5 = 0;

int i = 0;
int buttonValue = 0;

// 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);

pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(buttonA, INPUT); // declare pushbutton as input
pinMode(buttonB, INPUT); // declare pushbutton as input
pinMode(buttonC, INPUT); // declare pushbutton as input
pinMode(buttonD, INPUT); // declare pushbutton as input
pinMode(buttonE, INPUT); // declare pushbutton as input

digitalWrite(buttonA, HIGH);
digitalWrite(buttonB, HIGH);
digitalWrite(buttonC, HIGH);
digitalWrite(buttonD, HIGH);
digitalWrite(buttonE, HIGH);

// 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 selectTrack (int trackNumber) {
switch (trackNumber) {
case 1:
Serial.print("I received: ");
Serial.println(trackNumber, DEC);
mySerial.print("VPF 006.mp3");
mySerial.print(0x0D,BYTE);
break;

case 2:
Serial.print("I received: ");
Serial.println(trackNumber, DEC);
mySerial.print("VPF 002.mp3");
mySerial.print(0x0D,BYTE);
break;

case 3:
Serial.print("I received: ");
Serial.println(trackNumber, DEC);
mySerial.print("VPF 003.mp3");
mySerial.print(0x0D,BYTE);
break;

case 4:
Serial.print("I received: ");
Serial.println(trackNumber, DEC);
mySerial.print("VPF 004.mp3");
mySerial.print(0x0D,BYTE);
break;

case 5:
Serial.print("I received: ");
Serial.println(trackNumber, DEC);
mySerial.print("VPF 005.mp3");
mySerial.print(0x0D,BYTE);
break;
}
}

void checkbuttons (){
i = 0;

// +++ runter
if (digitalRead(11) == LOW){
i = i + 1;
if (bu1 == 0){
digitalWrite(ledPin, LOW); // turn LED ON
selectTrack(4); // runter
Serial.println("JoyStick: runter");
delay(200);
digitalWrite(ledPin, HIGH); // turn LED OFF
bu1 = 1;
}
}else{
bu1 = 0;
}

// +++ hoch
if (digitalRead(10) == LOW){
i = i + 1;
if (bu2 == 0){
digitalWrite(ledPin, LOW); // turn LED ON
selectTrack(3);
Serial.println("JoyStick: hoch");
delay(200);
digitalWrite(ledPin, HIGH); // turn LED OFF
bu2 = 1;
}
}else{
bu2 = 0;
}

// +++ link
if (digitalRead(9) == LOW){
i = i + 1;
if (bu3 == 0){
digitalWrite(ledPin, LOW); // turn LED ON
selectTrack(2);
Serial.println("JoyStick: links");
delay(200);
digitalWrite(ledPin, HIGH); // turn LED OFF
bu3 = 1;
}
}else{
bu3 = 0;
}

// +++ rechts
if (digitalRead(8) == LOW){
i = i + 1;
if (bu4 == 0){
digitalWrite(ledPin, LOW); // turn LED ON
selectTrack(1);
Serial.println("JoyStick: rechts");
delay(200);
digitalWrite(ledPin, HIGH); // turn LED OFF
bu4 = 1;
}
}else{
bu4 = 0;
}

// +++ feuer
if (digitalRead(12) == LOW){
i = i + 1;
if (bu5 == 0){
digitalWrite(ledPin, LOW); // turn LED ON
selectTrack(5);
Serial.println("JoyStick: feuer");
delay(200);
digitalWrite(ledPin, HIGH); // turn LED OFF
bu5 = 1;
}
}else{
bu5 = 0;
}

// +++ Kein Input
if(i == 0){
if(bu0 == 0){
Serial.println("STOP");
mySerial.print("VST"); // STOP!
mySerial.print(0x0D,BYTE);
delay(200);
bu0 = 1;
}
}else{
bu0 = 0;
}
}


void loop() {
checkbuttons();
}

Keine Kommentare:

Kommentar veröffentlichen