Kontrolliere KODI mit vorhandener Fernbedienung (6 / 9 steg)
Steg 6: Erstellen des endgültigen program IR2Key.ino
Alle gewünschten Fernbedienungstasten wurden erfasst und notiert.
Im mark zu erstellenden skiss IR2Key.ino wird eine Zuordnung zwischen IR-Singnal und KODI-Tastaturbefehl nach folgendem samlings vorgenommen:
* spela - p / / KODI Tastaturbefehl
#define spela 0xB676A3B2 / / IR-Signal im HEX-Format spela zuordnen
#define PLAY_KEY Keyboard.write(112); ASCII för p PLAY_KEY zuordnen
fall spela: / / Arduino/Genuino-kod - wenn spela erfasst, dann
PLAY_KEY; PLAY_KEY (också "p" ") ausführen
bryta;
Für meine Fernbedienung ergibt sich folgendes Programm IR2KeyJW.ino:
/*
* IR2KeyJW: baserat på IRrevcDemo (Version 0.1 juli 2009) av Ken Shirriff arcfn.com
* Avlägsna signal till tangentbordet användning med openELEC
* En IR-detektor/demodulator måste anslutas till ingången RECV_PIN.
* Ändrat genom JensLab på Feb, 2015
* OpenELEC / kodi - genvägar
* lek - p
* spela upp/pausa - utrymme
* sluta - x
* vorlauf - f
* rücklauf - r
* upp - pfeil nach oben
* vänster - pfeil nach länkar
* höger - pfeil nach rechts
* ner - pfeil nach unten
* Välj - ange
* avstängning menyn - s
* back - Backsteg (loeschen)
* avsluta - escape
*/
#include
int RECV_PIN = 5;
IRrecv irrecv(RECV_PIN);
decode_results resultat.
Inspelade IRcodes (här SAMSUNG-TV Remote)
#define spela 0xB676A3B2
#define STOP 0x1478EC78
#define framåt 0x395AECF4
#define bakåt 0xC1E6EB16
#define upp 0xE8105F4
#define ner 0x1114CBF6
#define vänster 0xC1A1B332
#define höger 0x9F953498
#define ange 0xD7064AD8
#define EXIT 0x558A0912
#define tillbaka 0xB2D45698 / / Meny-knappen
#define POWER 0x40CF3F38 / / avsluta-menyn
Mediaplayer snabbtangenter
#define PLAY_KEY Keyboard.write(112); ASCII för p / / Keyboard.write(32); ASCII-koden för utrymme
#define STOP_KEY Keyboard.write(120); ASCII för x
#define FORWARD_KEY Keyboard.write(102); ASCII för f
#define REWIND_KEY Keyboard.write(114); ASCII för r
#define UP_KEY Keyboard.write(KEY_UP_ARROW); Keyboard.Press(KEY_UP_ARROW); Delay(100); Keyboard.releaseAll();
#define DOWN_KEY Keyboard.write(KEY_DOWN_ARROW); Keyboard.Press(KEY_DOWN_ARROW); Delay(100); Keyboard.releaseAll();
#define LEFT_KEY Keyboard.write(KEY_LEFT_ARROW); Keyboard.Press(KEY_LEFT_ARROW); Delay(100); Keyboard.releaseAll();
#define RIGHT_KEY Keyboard.write(KEY_RIGHT_ARROW); Keyboard.Press(KEY_RIGHT_ARROW); Delay(100); Keyboard.releaseAll();
#define ENTER_KEY Keyboard.write(KEY_RETURN);
#define EXIT_KEY Keyboard.write(KEY_ESC);
#define BACK_KEY Keyboard.write(KEY_BACKSPACE); Meny-knappen
#define POWER_KEY Keyboard.write(115); ASCII för s, avsluta-menyn
void setup()
{
Serial.BEGIN(9600); för felsökning
irrecv.enableIRIn(); Starta mottagaren
Keyboard.BEGIN(); Starta tangentbord
}
void loop() {
om (irrecv.decode (& resultat)) {
Serial.println (results.value, HEX); för felsökning
Välj åtgärd svar på IR-indata
Switch(results.Value) {
fall spela:
PLAY_KEY;
bryta;
fall stopp:
STOP_KEY
bryta;
fall framåt:
FORWARD_KEY
bryta;
mål bakåt:
REWIND_KEY
bryta;
fall upp:
UP_KEY
bryta;
fall ner:
DOWN_KEY
bryta;
fall kvar:
LEFT_KEY
bryta;
fall rätt:
RIGHT_KEY
bryta;
fall RETUR:
ENTER_KEY
bryta;
fall EXIT:
EXIT_KEY
bryta;
fall tillbaka:
BACK_KEY
bryta;
fall makt:
POWER_KEY
bryta;
}
irrecv.Resume(); Ta emot nästa värde
}
}
Dieses Programm auf den Leonardo kompatiblen mikrokontroller (Arduino/Genuino) hochladen.