Arduino-Remote
From Digipool-Wiki
Arduino-Remote besteht aus einer Logitech Harmony 300 Fernbedienung und einem Arduino. Beide sind so miteinander verkabelt, dass das Arduino automatisch auf die Tasten "POWER" und "OK" der Fernbedienung drückt. Auf diese Weise kann der Mediaplayer (im Digipool z.B. Trekstor Xtreamer Media Player) mit folgenden Funktionen eingesetzt werden.
- Autostart: Der Player startet nach automatisch nach dem der Strom angeschaltet wird.
- Multi-Channel: Mehrere Player können in einem einstellbaren Takt immer wieder nahezu synchron gestartet werden.
- Weiter Funktionen wie zum Beispiel Interaktionen mit dem Betracjter sind denkbar, müssten dann speziell programmiert werden.
Installationsanleitung
- Die Stomversorgung für Player und Arduino-Remote an eine Steckerleiste anschließen.
- Die Fernbedienung auf die Player richten.
- Mit der Treksor-Fernbedienung das gewünschte Video als einzigen Favorit eintragen
- Unter Mediathe (Media Library) die Videodatei anwählen und auf die Taste "FUNC" (8) drücken
- Im Popupmenü auf zu Favoriten hinzufügen gehen und die "ENTER"-Taste drücken.
- Wenn jetzt die Sromversorung an der Steckerleiste angeschaltet wird, startet das Video nach ca. 30 Sek
- (RESUME muss bei Einstellung (Setup) deaktiviert sein)
Umprogrammierung
Für die Multi-Channel Funktion oder für zusätzliche Interaktionen kann das Programm der Ardiuino-Remote verändert werden.
- Installation der Arduino Programmiersoftware www.arduino.cc
- Jetzt das Arduino mit dem USB-Kabel an den Computer anschließen!
- Nach dem Start der Arduino-Software den Code von dieser Seite einkopieren.
- Den Code verändern und mit "Upload to I / O Board" auf das Arduino hochladen.
- Die Looplänge hinter "t+" wird in Millisekunden eingetragen. Diese Berechnet sich aus den Sekunden x 1000.
Arduino-Code
<source lang="java"> /*
MyTrekStorePlayer Controling the TrekStorTV-Media-Player with Arduino Functions: - Autostart on POWER ON - Sync multi channel playback by Olaf Val www.digipool.info */
int i=1; // Button Inbut unsigned long t; // Timer int l = 0; // loop
void setup(){
pinMode(13, OUTPUT); // LED pinMode(12, INPUT); // Button digitalWrite(12, HIGH); // Pullup-resistor of button pinMode(11, OUTPUT); // Relais 1 POWER pinMode(10, OUTPUT); // Relais-Power 1 und 2 pinMode(9, OUTPUT); // Relais 2 OK
Serial.begin(9600);
}
void loop(){
relaisON();
digitalWrite(13, HIGH);
delay(5000);
pressPOWER();
delay(20000); // wait for menu
pressOK();
delay(1000);
pressOK(); l=0;
while(l==0){ t = millis(); while(millis() < (t+1320000)){ //getBUTTON(); }
// movie length 22:00 = 1.320.000,- millis
delay(5000); // wait 5 sec. for menu
pressOK();
}
}
void pressOK(){
digitalWrite(9, LOW); digitalWrite(13, LOW); delay(500); digitalWrite(9, HIGH); digitalWrite(13, HIGH); Serial.println("OK"); delay(1000);
}
void pressPOWER(){
Serial.println("Power"); delay(100); digitalWrite(11, LOW); digitalWrite(13, LOW); delay(1500); digitalWrite(11, HIGH); digitalWrite(13, HIGH); delay(1000);
}
void relaisON(){
Serial.println("Relais ON"); digitalWrite(9, HIGH); digitalWrite(11, HIGH); delay(100); digitalWrite(10, HIGH); delay(1000);
}
void waitBUTTON(){
Serial.println("Wait Button"); while(i==1){ i = digitalRead(12); } i = 1;
}
void getBUTTON(){
i = digitalRead(12); if(i == 0){ Serial.println("Get Button"); i = 1; l=1; }
} </source>