Umlaute und Sonderzeichen auf dem Oled Display SSD1306

  • Hallo Rainer,


    ich habe den Font über die Powershell erstellt mit:


    py "c:/Users/Kai/Python/Python Scripts/font_to_py.py" "C:/Users/Kai/Python/Python Scripts/arial.ttf" 16 -x -k zeichen.txt arial.py


    Dazu muss ich aber sagen, dass ich neben Thonny noch eine eigene Python Umgebung habe, die ich in VSC benutze.


    Ich habe mal bei meinem vorherigen Post eine Datei hochgeladen (writer-arial-y.zip), die du herunterladen und verwenden kannst. In dem ZIP File ist die writer.py, die arial.py und eine zeichen.txt Datei enthalten. Die beiden "py" Dateien kannst Du auf Deinen ESP hochladen, in der "zeichen.txt" siehst Du, welche Zeichen in der arial.py vorhanden sind.


    So ist es möglich auszuprobieren, ohne das Du den Font zusammenbasteln musst.


    Gruß Kai

  • Hallo Kai,


    vielen Dank für Deine schnelle Atwort.

    Wie genau hast Du die Datei arial.py erzeugt?

    Arial.ttf habe ich in c:/Windows/Fonts gefunden.

    font-to-py.py habe ich auch auf meinem PC.

    Versucht habe z. B. im Command-Fenster: c:\......micropython-font-to-master>

    den Befehl: "font_to_py.py Arial.ttf 16 arial.py" oder "$ font_to_py.py Arial.ttf 16 arial.py" (natürlich ohne "")

    Arial.ttf habe ich in das gleiche Verzeichnis wie font_to_py.py kopiert.

    Ohne Erfolg, es öffnet sich nur Thonny mit dem Programm font_to_py.py und einer Fehlermeldung.


    Mit der im "writer" vorhandenen Testdatei freesans20.py habe ich Deinem Beispielprogramm getestet.

    Die Ausgabe am Oled sieht natürlich schlimm aus, aber es läuft.


    Grüße aus dem hohen Norden

    Rainer

  • Also ich hätte da etwas: Micropython Font Handling und font_to_py.


    Das sieht dann so aus:


    IMG_1311.jpg



    Dazu habe ich mir, wie auf den verlinkten Seiten beschrieben den Windows Arial Font in der Schriftgröße 16 mit Hilfe des Pythonprogramms "font_to_py.py" gerendert. Dieses Programm erzeugt eine Datei, ich habe sie arial.py genannt, die auf den ESP32 geladen werden muss. Außerdem muss man noch die Writer.py aus dem Repository herunter laden und ebenfalls auf den ESP32 bringen.


    Wie diese beiden Dateien implementiert werden, habe ich wie folgt mal ausprobiert:




    Nachteil von dem Ganzen: Mehr Speicherplatzverbrauch und nur eine Schriftgröße. Um die Font-Datei arial.py nicht zu groß werden zu lassen, habe ich nur einen Satz von 94 Zeichen gerendert (13Kb). Wie das geht, ist bin der Beschreibung zu font_to_py aufgeführt.


    Also grundsätzlich klappt das... Feinheiten kenne ich aber auch noch nicht. Ich bin nur drüber gefallen, als ich die Frage von Rainer gelesen habe...


    Gruß Kai

  • Hallo zusammen,


    bei den letzten Versuchen ist mir (erst jetzt) aufgefallen, das unser Display noch keine Umlaute oder Sonderzeichen darstellen kann.

    Bei meinem Heimatort owm_ortID = 2853105 sollte eigentlich "Plügge" angezeigt werden, zu sehen sind aber zwei karrierte Felder anstatt "ü".

    Ein Blick zurück zeigt auch, das schon beim BME280 die Temperatur mit "C" ausgegeben wurde und nicht mit "°C".

    Rene hat in seinem Tutorial "Der einfache Einstieg in Arduino und Co" in der Lektion 15 diese thema für das LCD 1602 in der Arduino-IDE bearbeitet.

    Aber daraus konnte ich noch keinen Lösungsansatz erarbeiten.


    Hat einer von euch eine Idee oder gar schon eine Lösung?


    Grüße aus Plügge

    Rainer