Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019

Für meine Donkey Cars mit dem Jetson Nano aber auch für andere Projekte verwende ich immer sehr gerne das günstige OLED Display mit dem SSD1306 Chipsatz. Dieses Display kann über den I²C Bus angesteuert werden. Daher ist es bei entsprechender Unterstützung kompatibel zu einem NVIDIA Jetson Nano, Raspberry Pi oder auch Arduino um nur ein paar SBC bzw. Mikrokontroller zu nennen. In diesem Beitrag möchte ich darauf eingehen wie Ihr das OLED Display an einem Jetson Nano betreiben könnt. Wichtig dabei ist, dass Ihr das Display über den I²C Bus und nicht über die SPI Verbindung angeschlossen habt.

Jetson Nano OLED Display

Jetson Nano OLED Display

Komponentenliste:

Ich gehe davon aus, dass bereits ein Jetson Nano vorhanden ist aber noch kein Display. Daher nachfolgend ein Link auf den Amazon Web-Shop zu genau solch einem Display wie ich es in der weiteren Beschreibung verwenden werde.

Loading ...

Die Female to Female Kabel werden benötigt um das Display mit dem Jetson Nano verbinden zu können.

Loading ...

OLED Display anschließen

Das OLED Display wird über den I²C Bus des Jetson Nano angeschlossen. Dazu benötigt Ihr vier Female 2 Female Jumper Kabel. Auf dem Display sind die Pins für gewöhnlich entsprechend beschriftet und das Anschließen ist daher auf Display Seite recht einfach.

OLED Display 128 x 64

OLED Display 128 x 64

Beim Jetson Nano ist der I²C Bus nicht exakt beschriftet. NVIDIA hat sich allerdings bei dem Pin Layout an das des Raspberry Pi orientiert. Daher ist mit der nachfolgenden kleinen Übersicht das Anschließen des OLED Displays am Nano kein Problem.

Jetson Nano I2C bus

Jetson Nano I2C bus

Nach dem das OLED Display mit dem Jetson Nano verbunden ist folgt die Installation der benötigten Software.

Software Installation

Damit das OLED Display funktionieren kann wird noch die Software von Adafruit benötigt. Diese ladet Ihr euch von GitHub herunter mit dem folenden Befehl.

Befehl: git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git

Anschließend wechselt Ihr in den Ordner Adafruit_Python_SSD1306.

Befehl: cd Adafruit_Python_SSD1306

Jetzt bitte für die Installation den folgenden Befehl ausführen.

Befehl: sudo python setup.py install

Nach dem die Installation durchgelaufen ist bitte noch image installieren. Ich habe festgestellt das diese Bibliothek nicht immer auf dem Jetson Nano verfügbar war.

Befehl: pip install image

Die nachfolgenden Pakete können optional installiert werden falls es zu Fehlern kommen sollte beim Ausführen des Beispielprogrammes.

Befehl optional: sudo apt-get install libjpeg-dev zlib1g-dev

I²C Bus konfigurieren

Nach dem alle Programme und Bibliotheken soweit installiert sind muss noch der I²C konfiguriert werden. Der User z. B. nano mit dem Ihr euch an eurem Jetson Nano anmeldet muss noch die Gruppenberechtigung erhalten um auf den I² Bus zugreifen zu dürfen. Genau diese Anpassung der Gruppe führt Ihr mit dem folgenden Befehl durch. Für <username> verwendet Ihr bitte euren User mit dem Ihr euch anmeldet.

Befehl: sudo usermod -aG i2c <username>

Jetzt bitte den Jetson Nano mit dem folgenden Befehl neustarten. Nach dem Neustart kann der User den Ihr verwendet habt auf den I²C Bus zugreifen und die angeschlossenen Geräte sehen wie z. B. das OLED Display

Befehl: sudo reboot

Nach dem Neustart den folgenden Befehl ausführen und es sollte das OLED Display mit der Standard I²C Adresse zu sehen sein.

Befehl: sudo i2cdetect -y -r 1

Im nachfolgenden Bild ist die Adresse 3c des OLED Display extra hervorgehoben. Die beiden anderen Adressen die zu sehen sind die Adressen des PCA9685 Servo Kontrollers.

I²C bus connected device overview

I²C bus connected device overview

Anzeige auf dem Display

Die Beispiele die Adafruit mitliefert sind nicht einfach so lauffähig auf dem Jetson Nano. Es müssen minimale Anpassungen vorgenommen werden wie z. B. die Adresse des I²C Bus. Aber anschließend funktionieren die so angepassten Beispiele ohne Probleme.

Nachfolgend das kleine Beispiel das auf meinem Donkey Car mit dem Jetson Nano zum Einsatz kommt. In dem Beispiel habe ich noch die Belegung des SWAP files mit ausgegeben sowie das aktuelle Datum. Die für den Jetson Nano angepasste Datei kann von meinem Blog über den folgenden Link als *.ZIP Datei herunter geladen werden.

Dowloand Python Programm: Jetson nano OLED display python programm stats.py

Jetson Nano OLED Display information

Jetson Nano OLED Display information

Zusammenfassung

Hat man einmal die kleinen Unterschiede beim I²C Bus zwischen dem Jetson Nano und dem Raspberry Pi verstanden, lassen sich viele Programme auch für den Jetson Nano anpassen und sind anschließend lauffähig. Ich bin sehr zufrieden mit dem Jetson Nano und wie alles funktioniert. Auch nimmt die Unterstützung bei den großen Anbietern stetig zu da der Jetson Nano ideal ist für das Thema künstliche Intelligenz. So verwende ich einen Jetson Nano z. B. auf einem meiner autonom fahrenden Modell Roboter-Autos.

(Visited 8 times, 1 visits today)