Der NXT kann Tastatursignale nicht direkt verarbeiten. Deswegen wandeln wir die Tastatursignale zunächst in I2C-Signale um; diese können vom NXT registriert und weiter verarbeitet werden. Was dabei hinsichtlich Hardware und Software zu beachten ist, stelle ich hier kurz vor.
1. Die Hardware
Die beiden Schieberegister (74HC164) wandeln die seriellen Signale der Tastatur in ein paralleles Signal um, das vom PCF8574-Baustein via I2C an den Master, in diesem Fall den Lego Mindstorms NXT-Baustein, gesendet wird.
Die Tastatur sendet - gesteuert über ein Clock-Signal - den SCAN-Code als Serie von 11 Bits an die zu einem 16-Bit-Register verbundenen Bausteine U2 und U3 (vgl. Abb. 1); die letzten beiden Bits sind das Stop- und das Paritätsbit. Diese befinden sich am Ende der Übertragung in Q0 bzw. Q1 von U2; für die Übertragung an den NXT sind sie ohne Bedeutung - ebenso wie das Startbit, welches man in Q2 von U3 findet.
In Q2 von U2 steht das höchstwertige Bit des SCAN-Codes, in Q1 von U3 das niederwertigste. Die Ausgänge der Schieberegister werden entsprechend mit den Eingängen des PCF-Bausteins (U1) verbunden.
Wenn sich ein Bit, das am PCF-Baustein anliegt, ändert, sendet dieser ein Interrupt-Signal über eine eigens dafür zur Verfügung gestellte Portleitung an den NXT. Dieser holt dann die Daten aus dem PCF-Baustein via I2C.
2. Die Software
Das Programm wartet auf ein Interrupt-Signal und liest danach über I2C den Wert des Interfaces aus. In der Programmiersprache NXT-G stehen dafür spezielle I2C-Blöcke zur Verfügung (http://www.mindsensors.com). Anschließend wandelt es den Rohwert (Teil des SCAN-Codes) in einen Buchstaben um und zeigt ihn an.
Realisierung und Programmierung von M. Heinrichs
.
PS2-Tastatur an Lego-NXT
PS2-Tastatur an Lego-NXT
- Dateianhänge
-
- nxt_kb.zip
- Alle benötigten Dateien
- (288.06 KiB) 4917-mal heruntergeladen
Re: PS2-Tastatur an Lego-NXT
hallo,
sehr interessant, bin ganz durch Zufall auf diesen Post gestoßen!
Ist evtl ein Tastatur-Treiber außer in NXT-G auch in NXC verfügbar?
vG
HaWe
sehr interessant, bin ganz durch Zufall auf diesen Post gestoßen!
Ist evtl ein Tastatur-Treiber außer in NXT-G auch in NXC verfügbar?
vG
HaWe
Re: PS2-Tastatur an Lego-NXT
Hallo HaWe,
wir haben das Programm nur mit NXT-G programmiert. Es sollte aber kein Problem sein, das Programm nach NXC zu portieren; NXC dürfte ja eigene I2C-Befehle besitzen.
Viele Grüße
G. Heinrichs
wir haben das Programm nur mit NXT-G programmiert. Es sollte aber kein Problem sein, das Programm nach NXC zu portieren; NXC dürfte ja eigene I2C-Befehle besitzen.
Viele Grüße
G. Heinrichs