Arduino-Remote

From Digipool-Wiki
Revision as of 15:24, 3 May 2011 by WikiSysop (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Arduino Remote DIY Mediaplayer.jpg

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>