Modem - Datenübertragung mit Licht

asynchrone serielle Datenübertragung nach RS-232

Die 60 Jahre alte Methode, Nullen und Einsen zwischen zwei Computern zu übertragen, funktioniert auch mit Licht. Wie bei einer Lichtschranke wird jedes Bit als `Licht an` oder `Licht aus` übertragen.

LED als Sender und Fototransistor als Empfänger sind aber an verschiedene Computer angeschlossen. Geeignet sind alle Controller, die LED und Fototransistor ansteuern können. Dazu gehören Calliope und sämtliche fischertechnik Controller. Damit können Bytes zwischen verschiedenen Systemen übertragen werden, die sonst nicht kompatibel sind.

Die hier beschriebenen Programme übertragen 7-Bit ASCII Zeichen. Für die Eingabe von Text beim Sender und die Ausgabe / Anzeige beim Empfänger haben die Controller unterschiedliche Möglichkeiten. Für die Ansteuerung von Tastaturen und Displays sind für alle Controller (I²C)-Erweiterungen verfügbar. Die Erweiterung Modem kümmert sich nur um die Übertragung von Text-Zeichen, nicht um die Ein- und Ausgabe.

Die ASCII Codierung der Buchstaben, Ziffern und sonstigen Zeichen steht in der Codetabelle.
Die 128 Zeichen mit dem Code 0 bis 127 werden in 7 Bit = 7 Nullen oder Einsen codiert. Das achte Bit ist beim ASCII Code immer 0.

Zum Beispiel wird der Buchstabe `K` codiert in `(0)1 0 0 1 0 1 1`. Diese 7 Bit werden einzeln gesendet, das letzte Bit (LSb) zuerst.
Im folgenden Bild stehen die 7 gelben Bits (umgekehrt) `1 1 0 1 0 0 1` b0 bis b6 für das Zeichen `K`.

Ist die dicke schwarze Linie unten (Idle) bedeutet das `Licht aus`, oben `Licht an`. Der Abstand zwischen den dünnen Linien ist die Zeit, wie lange das Licht für ein Bit an oder aus ist.

Wenn nichts übertragen wird, ist das Licht aus. Jedes Zeichen beginnt mit Licht an (grünes Start-Bit). Dann folgen die 7 (gelben) Daten-Bits b0 bis b6. Das (lila) Parity-Bit erkennt Übertragungsfehler. Das (rote) Stop-Bit schaltet das Licht wieder aus.

Das Parity-Bit wird so gesetzt, dass die Anzahl Einsen eine gerade Zahl ergibt. Beim `K` sind 4 Einsen (b0 b1 b3 b6) vorhanden, Parity ist 0.
Beim `L` `(0)1 0 0 1 1 0 0` ← (im Bild umgekehrt) ← `0 0 1 1 0 0 1` sind 3 Einsen vorhanden, Parity ist 1. (3 ist keine gerade Zahl, aber 4).

Bei `Licht an` erkennt der Empfänger den Beginn einer Übertragung. Nach einer halben Taktzeit beginnt er die 10 Bit immer in der Mitte abzutasten. So werden kleine Unterschiede zwischen den Controllern ausgeglichen. Man nennt das asynchron.

Pro ASCII Zeichen werden immer 10 Bit übertragen. Die Pause zwischen den Zeichen kann beliebig lang sein. Der Empfänger erkennt an Start-, Parity- und Stop-Bit, ob das Zeichen gültig ist. Und decodiert die 7 Daten-Bit wieder zu einem ASCII Zeichen.


Bild von RS-232 – Wikipedia

↓ Auf dem Bild sind drei verschiedene Controller: Calliope, fischertechnik BTSmart Controller und fischertechnik TXT 4.0 Controller. Auf den schwarzen Platten sind je eine Lichtschranken-LED und ein Fortotransistor. Die Teile sind z. B. im fischertechnik Calliope Baukasten enthalten.

Die 9V LED am Calliope mit 3V betreiben reicht nicht. Dafür wurde eine helle 3V LED mit E10 Fassung verwendet. Der Fototransistor am Calliope funktioniert an den Ecken P0 bis P3, am rechten Grove aber nicht stabil. Grund ist, dass dort der Pull-Up Widerstand fehlt. Ein 100kOhm Widerstand gegen +3V wurde in das Spezial Kabel integriert.

↓ Der BTSmart Controller (rechts) muss immer mit der App ROBO Pro Coding gekoppelt sein, damit er funktioniert. Am Besten über Bluetooth. In der App ist ein Bedienfeld konfiguriert. Das wird auf dem Bildschirm angezeigt, wenn das Programm gestartet ist. Ein Steuerelement (Control) zur Eingabe von Text ist nicht vorhanden. Deshalb wurde mit dem Schieberegler eine Schreibmaschine gebaut. So kann man gleich richtig praktisch lernen, wie Zeichen codiert werden.

Die schwarzen Platten mit LED (Sender) und Fototransistor (Empfänger) werden mit der gelben Bauplatte so gehalten, dass sie sich genau gegenüber stehen. Den Abstand kann man austesten.

Am Calliope ist über I²C ein Display und eine Tastatur angeschlossen. Damit kann der Text geschrieben werden, der gesendet werden soll oder empfangen wurde. Die Tastatur funktioniert nur, wenn die 3V Batterie voll ist. Besser geht es mit Strom über das USB Kabel.

Hinweis: Die Datenübertragung mit Licht funktioniert natürlich auch mit zwei Calliope oder zwei BTSmart Controllern, in beide Richtungen.

↓ Hier sind TXT 4.0 Controller und BTSmart Controller gekoppelt.

Der TXT 4.0 Controller speichert das Programm und funktioniert dann auch ohne Verbindung zur App. Auf dem Touch-Display existiert auch ein Control zur Texteingabe. Das kann mit einem Finger bedient werden - oder mit der Maus. (Die ist auf dem oberen Bild und wurde hier vergessen.)

↓ Natürlich können auch TXT 4.0 Controller und Calliope mit Licht gekoppelt werden. Hier ist mal ein Keypad angeschlossen. Damit können nur Ziffernfolgen gesendet werden. Die 3V Batterie ist auch hier ein Problem und deshalb eine Powerbank angeschlossen.

↓ Über Lichtleiter können LED und Fototransistor 2 Meter voneinander entfernt sein. Der Lichtleiter muss ein Stück aus dem Adapter heraus ragen. Für die LED Seite eignet sich ein Baustein 15 mit Ansenkung. Die LED passt in das große Loch und sollte das Ende vom Lichtleiter (fast) berühren.

Beim Fototransistor ist noch wichtiger, dass das Ende vom Lichtleiter ganz dicht am Fototransistor liegt (rechtes Bild). Dann erkennt er hell mit den Standard Blöcken und im Schnittstellentest. Auch Lichtleiter und Adapter sind Original fischertechnik.

↓ Die 3V LED mit E10 Fassung funktioniert nicht mit Lichtleiter. Am Calliope wird auch die 9V Lichtschranken LED nicht hell genug. Die Lösung ist das Grove - LED Socket Kit. Auch für diese LED ist die 3V Spannung vom Calliope zu wenig. Hier kann aber eine externe Spannung eingespeist werden. Diese kommt aus einer Spezial 6V Batterie. Die LED aus dem Kit funktioniert damit und wird ebenfalls in das große Loch vom Baustein 15 mit Ansenkung gesteckt. Jetzt funktioniert Calliope sogar mit schwacher Batterie.

Der Fototransistor wird wie oben an den Lichtleiter gekoppelt. Calliope stellt sich automatisch auf einen Schwellwert zwischen hell und dunkel ein.

Kontakt und Impressum