Linux und RS232

Hier gibt’s ein paar Infos die ich mir zusammengesucht habe, um unter Linux (bei mir derzeit Mint 15 Cinnamon) mit der seriellen Schnittstelle zu arbeiten.

Die Seriellen Schnittstellen unter Linux sind „Dateien“ und sind im Ordner /dev/ zu finden. Die Namensgebung beginnt immer mit tty. Im falle meines Arduino UNO Boards ist die Schnittstelle /dev/ttyACM0

Um zu prüfen, welche seriellen Schnittstellen an eurem Rechner erkannt wurden:

dmesg | grep tty

Serielle Kommunikation …

… mit Bordmitteln

Um an der ankommende Daten anzuzeigen bzw. etwas auszugeben benötigt man nicht zwingend ein zusätzliches Programm.
Das in jeder Linux Distribution vorhandene Tool cat ermöglicht es die ankommenden Daten zu betrachten.
Dazu muss vorher die Schnittstelle passend eingestellt werden:
(Für weitere Einstellungen bitte die Manpage von stty lesen und/oder Google fragen).

stty -F /dev/ttyACM0 9600
stty -F /dev/ttyACM0 raw

Jetzt kann man anfangen zu lesen:

cat /dev/ttyACM0

Um Daten zu senden kann echo in Verbindung mit einer Umleitung verwendet werden.
(Auch hier muss natürlich die Schnittstelle zuvor mittels stty passend konfiguriert sein).
Um z.B. den Text „Hallo Welt“ zu senden:

echo Hallo Welt > /dev/ttyACM0

… mit Minicom

Eine weitere sehr schöne Möglichkeit bietet das Programm Minicom (mein Favorit da es sehr res­sour­cen­scho­nend ist).
Es ist bei den meisten Linux Distributionen in den Repositories enthalten.
Für die Installation unter Debian/Ubuntu:

sudo apt-get install minicom

Die schnellste Möglichkeit um nach der Installation die serielle Kommunikation zu starten ist der direkte Aufruf mit Parametern:

minicom -b 9600 -D /dev/ttyACM0

Daraufhin startet das Programm und gibt die ankommenden Daten wieder, gleichzeitig werden gedrückte Tasten umgehend gesendet.
Es gibt einige Kommandos, die man verwenden kann. Eine Übersicht bekommt man wenn man [STRG]+[A] und an­schlie­ßend [Z] drückt.
Beispielweise beendet man Minicom mit [STRG]+[A] und danach [X].

Alternativ kann man Minicom auch fest konfigurieren, danach kann Minicom ohne Parameter gestartet werden.
Dazu einfach:

minicom -s

In den erscheinenden Einstellungen von Minicom ist der Menüpunkt „Einstellungen zum seriellen Anschluss“, welchen man mit den Cur­sor­tas­ten auswählt und mit [Enter] aufruft, von besonderem Interesse.
Durch drücken von [A] kommt man nun in die Zeile zur Eingabe des Anschlusses, hier gibt man natürlich den Anschluss ein, welchen man verwenden möchte. Die Eingabe wird dann mit [ESC] beendet. Ein anschliessender Druck auf [E] öffnet die Einstellungen der Übertragungsart. Auch hier kann man wieder wie zuvor die Einstellungen durch drücken der entsprechenden Buchstaben aktivieren. In meinem Fall sind dies für den Arduino die Buschstaben C-L-V-W oder einfach C-Q.

Hier die Einstellungen als Screenshots:

… mit Python

Die Programmiersprache (bzw. Skriptsprache) Python bietet mit dem Modul pySerial eine weitere Möglichkeit über die serielle Schnittstelle zu Kommunizieren. Dazu verweise ich auf meinen anderen Artikel über die serielle Kommunikation zwischen Arduino und Python.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.


*