Linux-Projekte für den Raspberry Pi,
mit Python realisiert
Ansteuerung LCD-Display [EADOGXL240-7]



Alle Komponenten wurden auf einem doppelten Experimentierboard ( 2x A-J / 1-63) aufgebaut.

Beschaltung Tasten Backlight DC-DC Wandler ELKO MOSFET


Bei LED Panel und LCD-Display ist zu beachten, das die Pins des Display zunächst durch die Löcher des LED-Panel gesteckt werden müssen und diese Kombination erst dann auf das Bord gesteckt werden sollte. Außerdem sollten die LED-Pins von Backlight und Display (1-3 und 18-20) verlötet werden, da diese sonst keinen Kontakt haben und die Beleuchtung entweder gar nicht funktioniert oder flackert.

Von einer PCM-Steuerung des Backlights zur Helligkeitseinstellung wurde abgesehen, da es sich ich einem anderen Projekt gezeigt hat, daß die PCM Modulation nicht konstant ist. D.H. je nachdem welche Programmen laufen und je nach Prozessorlast flackert die Beleuchtung dann zum Teil nervtötend.

Zu Testzwecken hatte ich bei diesem Versuchsaufbau nur jeweils 2 LED-Pfade in Betrieb, die zudem auch nur über Krokodilklemmen angeschlossen waren. Hier ist auch nur EIN Vorwiderstand vorhanden (geht zur Not auch). Im Praxisbetrieb sollte man sich aber an die Oben erläuterte Vorgehensweise halten (und mit EINEM Vor­wider­stand für JEDEN LED-Zweig)!



Programmentwicklung


Zeichensätze

Da das Display keine eigenen Zeichensätze besitzt (dafür aber sehr preiswert ist), wurden zunächst mehrere Zeichensätze, in verschiedenen Größen angelegt.

Es handelt sich dabei um Vektor- und Raster-Fonts. Diese sind an den Font-Namen (mit enthaltenem V = Vektor oder R = Raster) zu erkennen.

Die Vektor-Fonts wurden entwickelt, da diese ohne Computer-Hilfsmittel leichter zu erstellen sind. Inzwischen wurde ein Tabellenkalkulations-Formular erstellt (Neeeiiiin, kein EXCEL), das die Zahlencodes aus den gesetzten oder nicht gesetzten Zellen (Raster) entsprechend ausgibt.


Folgende Tabelle listet die momentan vorhandenen Zeichensätze auf:


Zeichensatz-Name

Zeichensatz-Art

Größe (Pixel)

r10x14

Raster

10 x 14

r12x18

Raster

12 x 18

r5x8

Raster

5 x 8

v3x6

Vektor

3 x 6

v5x7

Vektor

5 x 7

vZ7x7

Vektor-Ikons

7 x 7

vZ9x11

Vektor-Ikons

9 x 11



Bei den Zeichensätzen wurden aus Zeitgründen meist nicht alle möglichen ASCII-Zeichen erzeugt. Daher ist es wahrscheinlich, daß nicht alle eingegebenen Zeichen dargestellt werden. Um möglichst viel Informationen auf dem LCD-Display anzeigen zu können, wurden auch extrem KLEINE Zeichensätze verwendet. Dabei ist die 'Schönheit', bzw. leichte Erkennbarkeit zum Teil 'auf der Strecke geblieben'.


Bei der Entwicklung der Zeichensätze wurde auch nicht allzu viel Zeit auf die Optik verwendet. Dem Benutzer steht es aber frei, vorhandene Zeichensätze zu ändern oder selbst neue zu entwickeln.

Bei den „Z“-Fonts werden nur wenige Grafikzeichen bereitgestellt, die von anderen Projekt stammen.

Die Zeichensatzdatei selbst besteht aus einem Python-File mit einem Dictionary für jeden Zeichensatz.
Es wird jedes Zeichen als Key angelegt. Als Werte folgen eine Liste mit den Raster- oder Vektorwerten.


Beispiel 1 (Vektorwerte):


Beispiel: Vektor 3 x 5:
v3x6 = {"1":("I", 2,0, "H", -1,1, "I", 0,3, -1,-1), …..

Hier bedeutet
„I“ = Stift absenken, d.h. nachfolgend sichtbar schreiben
„H“ = Stift anheben, d.h. nachfolgend positionieren.

Wertepaare bedeuten relativ positionieren.
Z.B -1,1 heißt Position X um -1 (nach links) und Y +1 (nach oben) verschieben.
Plus bedeutet rechts oder rauf/ Minus heißt links oder runter.


    • Startpunkt jedes neuen Zeichens ist per Definition immer die untere, linke Raster-Koordinate.

    • Der Stift ist zu Beginn immer implizit angehoben (unsichtbar)

    • Der Stift wird am Ende immer implizit angehoben (unsichtbar)


Diese Konventionen wurden in Anlehnung an einen 'echten' X-Y Plotter entwickelt.



Beispiel 2 (Rasterwerte):

Beispiel: Raster 10 x 15
r10x14 = {"A": (0x3FF0, 0x3FF8, 0x31C, 0x30E, 0x307, 0x307, …..

Hier werden nacheinander die Spalten mit den jeweils gesetzten Bits der Zeilen eingegeben.
Bits können nur gesetzt oder nicht gesetzt sein.

Eventuelle Grautöne werden dann mit den Grafikbefehlen erzeugt



Alle Zeichensätze dieser Datei mit dem festen Namen „ZeichensaetzeLCD.py“ können, nach dem Import durch das Hauptprogramm, verwendet werden.
Die Liste der Zeichensätze kann mit dem Befehl 'FONT.get_List()' ausgegeben werden.


Index

Zeichensatz-Name

0

r10x14

1

r12x18

2

r5x8

3

v3x6

4

v5x7

5

vZ7x7

6

vZ9x11


FONT.get_List()


Die Indexnummer des Zeichensatzes der Liste linkss entspricht der Nummer, die im Befehl 'FONT.font(nummer)' eingegeben werden muß.


Die Liste der möglichen Font-Befehle folgt hier:


Befehl

Bedeutung

font(nummer)

Zeichensatz mit der Indexnummer 'nummer' auswählen

get_Name()

Namen des aktuellen Zeichensatzes anzeigen

get_List()

Liste mit den Namen der geladenen/ verfügbaren Zeichensätzen anzeigen




Der Vollständigkeit halber sollte ich aber auch darauf hinweisen, daß es unter anderem auch für dieses Modul vom Hersteller erstellte Zeichensätze im Handel zu kaufen gibt. Diese sind aber nicht ohne weiteres in dieses Projekt integrierbar.


Die Datei mit meinen Zeichensätzen befindet sich HIER