Homepage Wiki Forum Buy

Display(klein)

Aus GNUBLIN

Schwierigkeitsgrad Voraussetzung Gnublin Familie
Gnublin logo easy.png Grundkenntnisse Konsole Alle

Inhaltsverzeichnis


Quickstart

Das hier beschriebene DOGM Display wird über die serielle SPI Schnittstelle angesteuert. Dieser Artikel beschreibt, wie man sich ganz einfach das Display ans GNUBLIN anschließt und dies dann mit einem Programm ansteuert. Im wesentlichen muss das Display nur angeschlossen werden. Für die Ansteuerung selber wurde schon ein Programm geschrieben.

Bild komplett.jpg

Als Display wurde das DOGM162L-A mit dem ST7036 Controller verwendet. Das Datenblatt ist hier zu finden.

Verwendet man das Modul aus dem Shop muss man es noch mit einem Lötkolben kurz aufbauen.

Aufbauanleitung für Display Platine

Hinweis: Das Flachbandkabel hat auf einer Seite eine rote Markierung. Diese muss beim Gnublin Board dort sein, wo GPA0 steht.

Einen Satz schreibt man ganz einfach auf das Display:

root@gnublin:~# gnublin-dogm -i -w "Hallo GNUBLIN"

So einfach kann die Ausgabe auf einem Display sein :).

Hinweis: Bei Verwendung auf dem Raspberry Pi mit der Adapterplatine bitte folgenden Hinweis zu SPI beachten: SPI mit der Adapterplatine

Bzw. auf dem RaspberryPi gibt es nur zwei Stecker bei denen es geht.

Auf der Platine sieht man die Beschriftungen /dev/spi0.0 und /dev/spi0.1

Für den /dev/spi0.0 gilt folgender Aufruf:

pi@raspberrypi ~ $ sudo gnublin-dogm -g 4 -c 0 -i
pi@raspberrypi ~ $ sudo gnublin-dogm -n -w "Hello"

Das ist /dev/spi0.0 als Anschluss:

Raspberry display.JPG

Für Anfänger

Initialisieren

root@gnublin:~# gnublin-dogm -i

Beim ersten Aufruf des GNUBLIN-Tools muss das Display initialisiert werden.

Display reseten

root@gnublin:~# gnublin-dogm -n

Mit dieser Option wird der Inhalt des Displays wieder gelöscht und der Cursor auf den Anfang der ersten Zeile gesetzt.

Display Löschen

root@gnublin:~# gnublin-dogm -d

Das gesamte Display wird gelöscht. Hat man einen Display shift durchgeführt wird dieser nicht rückgängig gemacht.

Schreiben

root@gnublin:~# gnublin-dogm -w "Hallo Gnublin"

Schreibt einen normalen String auf das Display.

Tip: Möchte man ein Ausrufezeichen (!) o.ä. ausgeben muss man bei der Übergabe ein Schrägstrich jeweils davor setzten, sonst bricht die Shell das Kommando an der Stelle ab.

root@gnublin:~# gnublin-dogm -w "Hallo Gnublin\!"

Cursor Offset

Jede Zeile eines Displays besteht aus mehreren Segmenten. Man hat nun die Möglichkeit den Cursor auf ein bestimmtes Segment zu setzen. Das erste Segment in der ersten Zeile steht auf Offset 0. Das erste Segment der zweiten Zeile steht auf Offset 16.

root@gnublin:~# gnublin-dogm -o "16" -w "Hallo"

Dies schreibt einen String ab dem ersten Segment der zweiten Zeile.

In eine bestimmte Zeile schreiben

Es gibt die Möglichkeit auch die Zeilennummer anzugeben in die der Text geschrieben werden soll. Alle weiteren Parameter, wie ein offset werden dann vom Beginn dieser Zeile aus betrachtet.

root@gnublin:~# gnublin-dogm -l 2 -w "Hallo Gnublin"

Der Text wird in die zweite Zeile geschrieben.

Display shift

Schreibt man einen String auf das Display, der mehr Segmente einnimmt, als das Display pro Zeile anzeigen kann, dann ist es möglich einen Display-shift durchzuführen. Dabei werden alle Segmente des Display nach um n Stellen verschoben. Nach jedem shift verschiebt auch somit der Adressbereich der Segmente! Das Segment das vor dem shift auf 16 lag, ist nun um +/- n verschoben worden.

root@gnublin:~# gnublin-dogm -s "-5"

Dies shiftet das Display um 5 Stellen nach links.

Weitere Funktionen

Die Software bietet noch mehrere Möglichkeiten. Dies kann man sich über die Hilfefunktion anzeigen lassen:

root@gnublin:~# gnublin-dogm -h
This program was designed to easily interact with the dogm display.
-h Show this Help
-w <STRING> write string to display
-l <line> set string on line (1 = line 1; 2 = line 2)
-j Convert Output to json Format
-b Convert Output to bare format
-o <column> Set cursor to position(Start of line 1= 0; Start of line 2= 16)
-n reset the display
-d delet the display
-s <X> shift display <X> times(left shift = - ; right shift= +
-g <X> Use GPIO Pin X instead default GPIO Pin 14 (For RS Pin on DOGM Display)
-i initialize the display
-c <Y> Only initialize the spidev module with <Y> as Chipselect Pin.(default:<Y>=11)
Examples:
Write Hello to the Display:\ngnublin-dogm -n -w "Hello"
Write Hello to the Display connected with CS-Pin=18\ngnublin-dogm -n -w "Hello" -c 18
Jump to the second Line with Cursor\ngnublin-dogm -l 2

Für Fortgeschrittene

Eigenbau Schaltung

Oder man möchte sich alles selber zusammenbauen.

Der folgenden Skizze ist der Schaltungsaufbau zu entnehmen:

Schaltung display klein.jpeg

  • CS -> GPIO11
  • RS -> GPIO14


Schaltplan display klein.jpg


Software

Die Software steht unter dem GNUBLIN Git Repository zum clonen bereit.

root@gnublin:~# git clone http://code.google.com/p/gnublin/

Im Ordner gnublin_package/std findet man dann den Quellcode.

Wird das Display als einziger Teilnehmer an die SPI Schnittstelle angeschlossen, dann kann der Chip select gegen Masse angeschlossen werden.


Anderen GPIO Pin als RS Pin benutzen

Mittlerweile bietet das Programm die Funktion direkt den GPIO Pin am GUBLIN(für den RS Pin am Display) als Ausgang zu setzten (ohne app2.sh oder start1.sh). Dieser Parameter muss für jeden Programm Aufruf gesetzt werden. Gibt man den Parameter nicht mit an, so wird standartmäßig der GPIO Pin 14 verwendet. Der GPIO14 Pin ist auch der standart Pin bei der verwendung des Display Moduls.

root@gnublin:~# gnublin-dogm -g 14

Mögliche Fehler

can't open device

Startet man das Programm wie folgt:

root@gnublin:~# gnublin-dogm -n -w "hallo"

und es erscheint folgende Fehlermeldung:

14
can't open device: No such device or address
Aborted

so kann es sein, dass das nötige SPI device file noch nicht angelegt worden ist.

root@gnublin:~# mknod /dev/spi0 c 153 0

Anderer SPI Treiber bereits geladen

Hinweis: Alle SPI Treiber wie CAN, ENC28J60, etc. müssen zuvor entladen sein! (z.B. modprobe -r enc28j60)

root@gnublin:~# modprobe spidev
In anderen Sprachen