IR-Tastatur Merlin Ruwido

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Georg A.

Dieser Artikel nimmt am Artikelwettbewerb 2012/2013 teil.

Merlin Ruwido ist eine günstige IR-Tastatur und stellt eine attraktive Eingabemöglichkeit für zahlreiche Projekte dar. Hier wird das Protokoll der IR-Tastatur analysiert und erklärt.

Die Tastatur

Einleitung[Bearbeiten]

Die Stärken der IR-Tastatur sind:

  • Relativ kleine Abmessungen 235x115x26 (mm)
  • Leicht 330 gr (280 gr ohne 4xAAA Batterien)
  • Ergonomisch

Um die Tastatur an einen Mikrocontroller erfolgreich anzuschließen, muss das Übertragungsprotokoll richtig interpretiert werden.

Protokollanalyse[Bearbeiten]

Das Datensignal liegt am Eingang der Verstärkungsstufe für die zwei IR-Leds an, s. Abbildung 1.

Abbildung 1: Datensignal abgreifen

Signalverlauf[Bearbeiten]

Der Signalverlauf sieht beim Drücken der Leertaste wie in Abbildung 2 gezeigt aus.

Abbildung 2: Signal für Leertaste

Beim Datensignal geht es um serielle Daten mit der Reihenfolge MSB -> LSB und Manchester-Kodierung. Das letzte Bit ist das vorletzte invertiert und kann somit bei der Betrachtung vernachlässigt werden.

Das Datensingal wird einem Trägersignal überlagert. Die Trägerfrequenz beträgt 56 kHz, s. Abbildung 3. Dies ist für die Übertragung per IR sinnvoll, erschwert aber die Signalauswertung.

Abbildung 3: IR Modulation 56 kHz

Die letzten 8 Bits des Datensignals stellen die Tastencodes dar. Dafür wird in ca. 418 µs Abständen abgetastet (Bitperiode). Die Polling-Zeitpunkte werden als blaues Signal in Abbildung 4 dargestellt.

Abbildung 4: Leertaste (0010 1100)

Dabei ist zu beachten, dass min. 18 µs lang (Periode der Trägerfrequenz) gepollt werden sollte, um auf jeden Fall ein High-Signal erfassen zu können.

Tastencodes[Bearbeiten]

Die Tastencodes der IR-Tastatur
Bin Hex Taste ASCII Hex
0000 0100 0x04 A 0x41
0000 0101 0x05 B 0x42
0000 0110 0x06 C 0x43
.... .... .... .... ....
0001 1101 0x1D Z 0x5A
0001 1110 0x1E 1 0x31
0001 1111 0x1F 2 0x32
.... .... .... .... ....
0010 0110 0x26 9 0x39
0010 0111 0x27 0 0x30
0010 1000 0x28 Enter ---
0010 1001 0x29 On/Off ---
0010 1010 0x2A Backsp ---
0010 1011 0x2B Tab ---
0010 1100 0x2C Space 0x20
0010 1110 0x2E = ---

Anbindung per Kabel[Bearbeiten]

Wird eine kabelgebundene Übertragung gewünscht, muss das Datensignal abgegriffen werden. Eine Verbindung der IR-Tastatur an ein weiteres Gerät (Empfängergerät) per Kabel hat den Vorteil, dass ggf. keine weitere Stromversorgung für das Empfängergerät benötigt wird. Um den Stromverbrauch zu reduzieren, können in diesem Fall die IR-Leds aus der Platine entfernt werden.

Projekte[Bearbeiten]

Beispielanwendung Kids' Keyboard[Bearbeiten]

Kids' Keyboard
Kids' Keyboard Schaltplan

Die Tastatur kann an ein LC-Display angeschlossen werden, um die gedrückten Tasten anzuzeigen. Dies kann als primitiver Lerncomputer für Kinder benutzt werden.

Merlin XMega Maus und Tastatur Interface[Bearbeiten]

Hat man einen xmega mit USB Unterstützung und einen 56KHz IR-Sensor, ist mittels XMerlinRuwido, die Merlin Tastatur als Tastatur und Maus zu nutzen. Zwischen Tastatur und Maus schaltet man mit der VT taste hin und her und kann dann mittels Pfeiltasten M-Taste und OK-Taste die Maus Bedienen. Weiter stellt das Projekt ein CDC Interface zur Verfügung welches die gedrückten Tasten auf einen Terminal darstellen kann. Somit lassen sich einfach die IR-Keycodes der Tastatur ermitteln. Wer nur einen AtMega mit 4KB oder mehr Flash hat, bekommt immerhin Keybord Unterstützung. Weitere Informationen gibt es auf der SourceForge-Projektseite oder im Quellcode welcher auf deutsch kommentiert ist.

Downloads[Bearbeiten]

Siehe auch[Bearbeiten]