Neue Firmware für den TTGO

Hier werden einzelne Projekte mit MicroPython vorgestellt
Antworten
Heinrichs
Beiträge: 136
Registriert: Do 21. Okt 2010, 18:31

Neue Firmware für den TTGO

Beitrag von Heinrichs » Fr 14. Mai 2021, 12:28

Seit dem März 2021 gibt es neue Versionen für die Firmware unseres ESP32-Moduls "TTGO T-Display". In diesem Beitrag möchte ich die Neuerungen vorstellen, welche durch die Version "MicroPython v1.14 on 2021-03-08" geboten werden; die zugehörige bin-Datei finden Sie im Anhang "Materialien_TTGO_v1_14.zip". Die Original-Informationen dazu findet man unter https://github.com/russhughes/st7789_mpy. Dort wird inzwischen (Stand: Anfang Mai) ein neueres Update zum Download bereit gestellt; dieses funktioniert leider nicht auf meinem TTGO.

Was bietet nun diese Version "MicroPython v1.14 on 2021-03-08"? Die meisten Neuerungen beziehen sich auf das Display. Zusätzlich habe ich aber auch feststellen können, dass einige Programme zum Thema BLE, welche unter der Firmware v1.12 noch Probleme bereiteten, nun funktionieren.

Auf folgende Aspekte möchte ich näher eingehen:
  • Vektor-Zeichensätze und draw-Methode
  • Darstellen von jpeg-Dateien
  • Erweiterte Zeichensätze

Vektorzeichensätze und draw-Methode

Im Gegensatz zu den bislang zur Verfügung gestellten Zeichensätzen sind diese Zeichensätze skalierbar; das bedeutet: Wir können ihre Größe mit Hilfe eines Skalierungs-Parameters frei einstellen. Diese neuen Zeichensätze findet man unter der oben angegebenen URL. Sie sind allerdings nicht - wie wir es bislang von der Version v1.12 gewöhnt waren - bereits in der Firmware abgelegt. Deswegen müssen sämtliche Vektorzeichensätze, die zum Einsatz kommen sollen, zunächst auf den ESP32 hochgeladen werden. In der Anlage finden Sie unter dem Dateinamen "greekc.py" einen Zeichensatz für griechische Buchstaben. Mit der Thonny-IDE kann man diese Datei sehr einfach hochladen: Zunächst aktivieren Sie (falls noch nicht geschehen) die Datei-Ansicht über den Menü-Punkt Ansicht - Dateien. In dem unteren Datei-Fenster suchen Sie nun nach dieser Datei und klicken sie mit der rechten Maustaste an. Es öffnet sich ein Kontext-Menü; in diesem wählen Sie die Option "upload to /".

Das folgende Programm zeigt, wie man alle Zeichen dieses Zeichensatzes auf dem Display darstellen lassen kann.

Code: Alles auswählen


from machine import Pin, SPI
import st7789
import greekc as font1

spi = SPI(2, baudrate=20000000, polarity=1, sck=Pin(18), mosi=Pin(19))
display = st7789.ST7789(spi, 135, 240,  reset=Pin(23, Pin.OUT), cs=Pin(5, Pin.OUT), dc=Pin(16, Pin.OUT), backlight=Pin(4, Pin.OUT), rotation=3)
# Landscape

display.init()
display.fill(0)

scale = 0.8
display.draw(font1, 'ABGDEZHQIKLM', 10, 20, st7789.WHITE, scale) # (10|15) = (linke horiz. Position| mittlere vert. Position) des Textes
display.draw(font1, 'NXOPRSTUFCYW', 10, 50, st7789.WHITE, scale)

display.draw(font1, 'abgdezhqiklm', 10, 85, st7789.WHITE, scale) 
display.draw(font1, 'nxoprstufcyw', 10, 115, st7789.WHITE, scale)

Die Methode, mit welcher eine Zeichenkette zk durch einen Vektorzeichensatz font auf dem Display (hier durch die Instanz display repräsentiert) dargestellt wird, ist die draw-Methode:

display.draw(font, zk, x, y, fg, scale)

Hierbei gibt x die linke horizontale Position und y die mittlere vertikale Position des Textes an. fg steht für die Textfarbe, und scale gibt den Skalierungsfaktor an. An dieser Stelle ist die Dokumentation leider nicht korrekt!

Das griechische Alphabet weicht etwas von dem deutschen/lateinischen ab. Der folgende Tabellenausschnitt zeigt die Zuordnung zwischen diesen beiden Alphabeten, wie sie für die Eingabe der Zeichenketten benutzt werden muss.

Tabelle_G_L_Ausschnitt.jpg
Zuordnungstabelle (Ausschnitt)
Tabelle_G_L_Ausschnitt.jpg (15.36 KiB) 945 mal betrachtet

Die vollständige Tabelle finden Sie im Anhang.

griechischer_zeichensatz_klein.jpg
griechischer_zeichensatz_klein.jpg (38.28 KiB) 938 mal betrachtet



Darstellen von jpeg-Dateien

jpeg-Dateien lassen sich mit der jpg-Methode sehr einfach auf dem Display darstellen. Zwei Voraussetzungen müssen allerdings erfüllt sein:
  • Das Format der Datei darf höchstens 240x135 Pixel groß sein.
  • Die Datei muss zuvor auf den ESP32 hochgeladen worden sein (s. o.)

Code: Alles auswählen


from machine import Pin, SPI
import st7789

spi = SPI(2, baudrate=20000000, polarity=1, sck=Pin(18), mosi=Pin(19))
display = st7789.ST7789(spi, 135, 240,  reset=Pin(23, Pin.OUT), cs=Pin(5, Pin.OUT), dc=Pin(16, Pin.OUT), backlight=Pin(4, Pin.OUT), rotation=3) # Landscape
display.init()
display.fill(0)

jpg_filename = 'testbild.jpg' # Diese Datei muss auf dem ESP32 bereits gespeichert sein
display.jpg(jpg_filename, 0, 0)

Der zweite und dritte Parameter geben die Position der linken oberen Ecke des Bildes auf dem Display an.


Erweiterte Zeichensätze

Die erweiterten Zeichensätze (vgl. viewtopic.php?f=18&t=140, Abschnitt 5) sind in dieser neuen Version leider nicht mehr in die Firmware eingebunden. Sie müssen deswegen (genauso wie die Vektorzeichensätze) zusätzlich auf den ESP32 hochgeladen werden.

.
Dateianhänge
Materialien_TTGO_v1_14.zip
Firmware v1.14, Zeichensätze, pdf-Dateien
(1.54 MiB) 82-mal heruntergeladen

Antworten