Der Kommunikator - Ein PS/2-Terminal

Mein Nachbar leidet an einer schweren und leider unheilbaren Krankheit, die die Nerven angreift und die Nervenbahnen zerstört. Das führte dazu, dass er nunmehr vollkommen taub und motorisch stark eingeschränkt ist - er verbringt sein Leben nunmehr im Rollstuhl. Um mit ihm zu kommunizieren, muss seine Frau ihm alles aufschreiben und ihn lesen lassen.

Aussenansicht

Als ich letztens bei ihm war, um zum Geburtstag zu gratulieren, kam mir dann die Idee, zumindest diesen Part etwas zu erleichtern. Und in meinem Kopf entstanden erste Pläne für ein kleines Gerät, das ein eingebautes Display und einen Anschluss für eine gewöhnliche Computertastatur besitzt, über die man dann auf das Display schreiben kann. Die Kommunikation sollte so schneller und besser lesbar sein, außerdem wird statt viel Papier nur ein klein wenig Strom benötigt.

Entwicklungsarbeit

Tags darauf habe ich mich bereits im Internet in das Protokoll der AT-PS/2-Tastaturschnittstelle eingearbeitet und einen ersten Versuchsaufbau gemacht. Nach einigen Versuchen und etwas Experimentieren wurden schon die Tastencodes korrekt erkannt, und die Umsetzung in darzustellende Zeichen war dann kein großes Problem mehr.

Als Display verwende ich ein 2x16-Zeichen-LCD mit großer Schrift, sicher wäre hier eines mit mehr Zeichen noch besser, aber dieses konnte ich noch kostenlos aus einem anderen Gerät ausschlachten. Sind ja auch nicht die billigsten.

Etwas knifflig war die korrekte Darstellung der Wörter auf dem Display: Am Zeilenende sollte ein Umbruch stattfinden, so dass ein eventuell angefangenes Wort komplett in die nächste Zeile rutscht. Sind bereits beide Zeilen voll, soll die untere Zeile nach oben gerutscht und in der zweiten Zeile weitergeschrieben werden. Dieser Umbruch soll sowohl Leerzeichen als auch Bindestriche erkennen. Die Lösung war gefunden, als die gesammelten Zeichen einfach in eine 32 Zeichen lange Stringvariable geschrieben wurde, die nach jedem Zeichen auf so einen Fall untersucht wurde. Außerdem wurde ein Cursor (dargestellt als Unterstrich: '_') eingeführt, der die aktuelle Schreibposition anzeigt.

Kommunikator im Betrieb

Es sind praktisch alle Tasten einer Standard-Tastatur eingebunden (mit Ausnahme derer, die kein Zeichen darstellen, z.B. die F-Tasten, Strg, Escape usw. sowie dem Paragraphen-Zeichen '$', weil das Display dafür kein Zeichen besitzt). Folgende Tasten besitzen eine Sonderfunktion:

Mit SHIFT kann wie gewohnt zwischen Groß- und Kleinschreibung gewählt werden, auch die Funktion von CAPS LOCK ist implementiert. Letztere wird durch eine gelbe LED signalisiert, die bei eingerastetem CAPS LOCK leuchtet (jedoch nicht bei SHIFT).

Zwei weitere LEDs zeigen den Status des Gerätes an, eine grüne LED leuchtet sobald das Gerät eingeschaltet ist und eine rote LED signalisiert einen Fehlerfall (keine Tastatur angeschlossen, oder Tastatur meldet Fehler beim Selbsttest).

Die Software (C-Quellfile und HEX-File) kann man sich hier herunterladen.

Die Schaltung

Die Schaltung des Gerätes ist sehr übersichtlich, die Hauptentwicklungsarbeit steckt bei diesem Projekt in der Software.

Herzstück ist der Controller, wie bei der Nixie-Uhr ein ATmega8 von Atmel. Sicherlich auch etwas überdimensioniert, aber er war halt noch in der Bastelkiste vorhanden. Getaktet wird er von einem 4MHz-Quarz. An den Ports PB1 und PB2 sind die LEDs für Fehler und CAPS LOCK angeschlossen.

Das Keyboard wird über die Leiste K3 angeschlossen. Damit es im Fehlerfall abgeschaltet werden kann, ist der Transistor T1 vorgesehen, der die Betriebsspannung des Keyboards einschaltet. R11 und R12 sind Pull-Up-Widerstände für die Open-Collector- Signalleitungen Data und CLK der Tastatur, die über die Schutzwiderstände R5 und R6 an den Controller geführt sind. An K1 ist schließlich das Display und an K2 dessen Hintergrundbeleuchtung angeschlossen. Der Kontrast kann mit dem Trimmer R4 justiert werden.

Im unteren Teil des Schaltplanes ist das Netzteil zu sehen. Versorgt wird der Kommunikator direkt aus dem Netz. Über einen Schalter und eine Sicherung (nicht eingezeichnet, weil nicht auf der Platine) gelangt die Netzspannung auf die Primäranschlüsse des Trafos. Sekundär folgt die Standard-Schaltung, bestehend aus vier Gleichrichterdioden, Siebelkos, Entstörkondensatoren und 5V-Spannungsregler. Die grüne LED hängt direkt an der 5V-Versorgungsspannung und zeigt somit an, dass diese anliegt.

Aufbau des Gerätes

Als Platine habe ich die kostengünstige Lochrastervariante gewählt, auf der fast die gesamte Schaltung untergebracht ist. Als Gehäuse wurde ein kleines Pultgehäuse ausgewählt, das bei Reichelt erhältlich ist. Folgendes Foto zeigt das Innenleben des Kommunikators.

Innenleben des Kommunikators

Alle Verbindungen zwischen Frontplatte und Elektronik sind steckbar ausgeführt, so dass eine reversible Demontage ohne Werkzeug mö;glich ist. Um außer den Gehäuseschrauben keine Schrauben auf der Frontplatte zu haben, sind die Befestigungsschrauben des Displays mit Epoxyd-Kleber von hinten aufgeklebt. Hält bombig! Oben rechts auf dem Bild sieht man noch eine freie Lötöse, die den Schutzleiterkontakt mit der Frontplatte herstellt.