PS2-Tastatur an Lego-NXT

Alles zum Thema I2C
Antworten
Heinrichs
Beiträge: 183
Registriert: Do 21. Okt 2010, 18:31

PS2-Tastatur an Lego-NXT

Beitrag von Heinrichs » Mo 1. Nov 2010, 10:53

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.
keyboard.gif
nach: http://www.extremenxt.com/keyboard.html
keyboard.gif (30.82 KiB) 67408 mal betrachtet
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.
ps2_i2c.jpg
ps2_i2c.jpg (7.22 KiB) 67408 mal betrachtet
Realisierung und Programmierung von M. Heinrichs
.
Dateianhänge
nxt_kb.zip
Alle benötigten Dateien
(288.06 KiB) 4887-mal heruntergeladen

HaWe
Beiträge: 1
Registriert: Mi 22. Mai 2013, 21:49

Re: PS2-Tastatur an Lego-NXT

Beitrag von HaWe » Do 23. Mai 2013, 14:50

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

Heinrichs
Beiträge: 183
Registriert: Do 21. Okt 2010, 18:31

Re: PS2-Tastatur an Lego-NXT

Beitrag von Heinrichs » Sa 1. Jun 2013, 15:56

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

Antworten