Unihiker K10: Display programmieren
Das Display vom Unihiker K10 ist ein farbiges LCD vom Typ ILI9341. Es hat eine Diagonale von 2,8 Zoll und eine Auflösung von 240 x 320 Pixel (hochkant).
Zum Programmieren der Ausgabe muss es initialisiert werden. Anschließend kann man eine Hintergrundfarbe (als RGB-Hexcode) einstellen und zum Beispiel Text ausgeben. Der Text kann zeilenweise oder frei positioniert werden. Alternativ kann man einzelne Pixel ansteuern, Linien und andere geometrische Objekte erzeugen.
Übersicht
- Bibliothek laden
- Initialisieren und Ausrichtung
- Hintergrundfarbe einstellen
- Text zeilenweise darstellen
- Text frei positionieren
Bibliothek laden
Damit das Display programmiert und verwendet werden kann, muss zuerst die Bibliothek geladen werden.
from unihiker_k10 import screen
Initialisierung und Ausrichtung
Die Initialisierung des Displays erfolgt mit folgendem Kommando:
screen.init()
Dabei wird auch gleichzeitig die Ausrichtung des Displays festgelegt. Standardmäßig ist die Beschriftung „Unihiker K10“ am Display-Rahmen oben und die Ausrichtung hat den Wert „2“. Dieser Wert muss also nicht zwangsläufig angegeben werden.
screen.init(dir=2)
Eine weitere Ausrichtung ist, wenn der Unihiker auf dem Kopf steht. Die hat den Wert „0“.
screen.init(dir=0)
Hinweis: Man kann die Ausrichtung des Displays jederzeit ändern, in dem man das Display mit der neuen Ausrichtung erneut initialisiert. Dann verliert das Display aber seinen Inhalt, den man danach erneut ausgeben muss.
Hintergrundfarbe einstellen
Die Hintergrundfarbe ist als RGB-Hexcode anzugeben, der die Farbanteile Rot, Grün und Blau beinhaltet. Das folgende Programm zeigt verschiedene Farben nacheinander an.
# Bibliotheken laden from unihiker_k10 import screen import time # Hintergrundfarben zum Ausprobieren bg_color = (0xffffff, 0x000000, 0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff) # Initialisieren: Display screen.init() for color in (bg_color): # Hintergrundfarbe einstellen screen.show_bg(color) screen.show_draw() time.sleep(2)
Gibt es eine stromsparende Hintergrundfarbe? Nein. Bei allen Hintergrundfarben liegt der Stromverbrauch etwa gleich hoch.
Text darstellen
- Zu beachten ist, dass die Farbe für Hintergrund und Schrift bzw. Linien und Punkte unterschiedlich sein sollten, weil man ansonsten nichts sieht.
- Die Darstellung von Umlauten wie ä, ö, ü, ß und anderen Sonderzeichen wid nicht unterstützt. Stattdessen erscheint ein Rechteck.
Text zeilenweise darstellen
Am einfachsten ist es, den Text zeilenweise darzustellen. Dabei kann man zwischen 3 Schriftgrößen wählen. Je kleiner die Schrift, desto mehr Zeilen lassen sich auf dem Display unterbringen. Dabei lässt sich jede Zeile einzeln ansprechen. Die erste Zeile beginnt bei 0. Da die Buchstaben keine feste Breite haben, ist die Anzahl der Zeichen pro Zeile unterschiedlich. Am Ende der Zeile wird der Text automatisch umgebrochen.
# Bibliotheken laden from unihiker_k10 import screen import time # Initialisieren: Display screen.init() screen.show_bg(0xffffff) screen.show_draw() # Textausgabe mit Standard-Größe und Standard-Farbe screen.draw_text('Ich bin ein Text. Wenn ich an das Ende einer Zeile komme, dann breche ich einfach in die nächste Zeile um. Vielleicht hast Du auch schon festgestellt, dass ich es nicht so mit Umlauten und Sonderzeichen habe. ;-) Außerdem kann ich einfach überschrieben werden. ;-(') screen.show_draw() time.sleep(5) # Display: Text (Größe: 12 / 23 Zeilen) for row in range (0, 23): screen.draw_text(text=str(row+1)+'. Zeile', line=row, font_size=12, color=0x000000) screen.show_draw() time.sleep(.5) # Display: Inhalt löschen time.sleep(2) screen.clear() # Display: Text (Größe: 14 / 20 Zeilen) for row in range (0, 20): screen.draw_text(text=str(row+1)+'. Zeile', line=row, font_size=14, color=0x000000) screen.show_draw() time.sleep(.5) # Display: Inhalt löschen time.sleep(2) screen.clear() # Display: Text (Größe: 16 / 17 Zeilen) for row in range (0, 17): screen.draw_text(text=str(row+1)+'. Zeile', line=row, font_size=16, color=0x000000) screen.show_draw() time.sleep(.5) # Display: Inhalt löschen time.sleep(2) screen.clear()
Text frei positionieren
Flexibler, aber auch komplizierter ist es, wenn man den Text frei auf dem Display positionieren will. Dabei kann man den Text pixelgenau horizontal von 0 bis 239 und vertikal von 0 bis 319 positionieren.
# Bibliotheken laden from unihiker_k10 import screen import time # Initialisieren: Display screen.init() screen.show_bg(0xffffff) # Display: Text (Pixel-genaue Positionierung) screen.draw_text('Text: 12', x=20, y=20, font_size=12, color=0x000000) screen.draw_text('Text: 14', x=20, y=50, font_size=14, color=0x000000) screen.draw_text('Text: 16', x=20, y=80, color=0x000000) screen.show_draw()
Weitere verwandte Themen:
- Unihiker K10: Programmieren mit MicroPython
- Unihiker K10: Cheat Sheet für MicroPython
- Unihiker K10: Onboard-RGB-LED programmieren
- Unihiker K10: Mikrofon und Lautsprecher programmieren
Frag Elektronik-Kompendium.de
Elektronik-Set Starter Edition
Elektronik erleben mit dem Elektronik-Set Starter Edition
Perfekt für Einsteiger und Wiedereinsteiger
- Elektronik-Einstieg ohne Vorkenntnisse
- Schnelles Verständnis für Bauteile und Schaltsymbole
- Ohne Lötkolben experimentieren: Bauteile einfach stecken
Keine Lust alleine zu experimentieren?
Dann buche einen „Online-Workshop Elektronik Starter“ zum Elektronik-Set dazu. Unsere Online-Workshops sind praxisorientiert und bietet eine grundlegende und fundierte Einarbeitung in die Elektronik.
Elektronik-Set Starter Edition
Elektronik erleben mit dem Elektronik-Set Starter Edition
Perfekt für Einsteiger und Wiedereinsteiger
- Elektronik-Einstieg ohne Vorkenntnisse
- Schnelles Verständnis für Bauteile und Schaltsymbole
- Ohne Lötkolben experimentieren: Bauteile einfach stecken
Keine Lust alleine zu experimentieren?
Dann buche einen Online-Workshop Elektronik Starter zum Elektronik-Set dazu. Unsere Online-Workshops sind praxisorientiert und bietet eine grundlegende und fundierte Einarbeitung in die Elektronik.
Elektronik-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.