Ich möchte einen LCD-Bildschirm von Arduino kaufen, um einige Ergebnisse eines Web-http-Anrufs anzuzeigen. Die Web-API gibt einen in UTF-8 codierten JSON-Text zurück.
Ich habe gelesen, dass auf der Intensivstation Unicode in C / C ++ - Programmen für Arduino verarbeitet werden kann.
Meine Fragen:
Kann ich UTF-8-Zeichen auf diesem Bildschirm anzeigen ?
Gibt es (erschwingliche) Zeichen-LCD-Bildschirme, die UTF-8-Zeichen anzeigen können?
Antworten:
Ich bin mit Arduino nicht so vertraut, aber schauen wir es uns aus der LCD-Perspektive an.
Nahezu alle gängigen Zeichen-LCDs verwenden heutzutage den HD44780- Controller (dies wird von der LiquidCrystal- Bibliothek unterstützt). Dieser Controller unterstützt UTF-8 nicht direkt, jedes Zeichen wird durch ein einzelnes Byte dargestellt.
Daher müssen Sie UTF-8 manuell in 8-Bit-Zeichen konvertieren. Der Controller verfügt über einen integrierten Zeichengenerator mit 208 5x8- und 32 5x10-Zeichen sowie bis zu 8 benutzerdefinierten Zeichen (siehe createChar ). Sie müssen jedes Eingabezeichen einem der vordefinierten / benutzerdefinierten Zeichen zuordnen. Natürlich können Sie nur eine Teilmenge der UTF8-Zeichen anzeigen. Sie müssen entscheiden, welche Zeichen angezeigt werden sollen / können.
Die Konvertierung selbst sollte ziemlich einfach sein - Sie müssen nur die UTF8-Zeichenfolge durchlaufen und jedes Zeichen einem einzelnen Byte zuordnen. Höchstwahrscheinlich möchten Sie Nachschlagetabellen verwenden, um es einfach zu halten. Lassen Sie mich wissen, ob dies einer weiteren Erklärung bedarf.
quelle
Unicode ist kompliziert und groß, in seiner Gesamtheit zu groß für ein Arduino. In der aktuellen Version gibt es insgesamt über 100000 Zeichen, einschließlich Keilschrift, Hieroglyphen, Klingonisch und ganz zu schweigen von vielen tausend chinesischen Zeichen.
Wenn Sie also wirklich einige Unicode-Zeichen auf einem Arduino anzeigen möchten:
Holen Sie sich eine grafische Anzeige. Die von Ihnen erwähnte ist eine Zeichenanzeige, die nur einen meist festen Satz von 256 Zeichen anzeigen kann.
Definieren Sie eine kleine Teilmenge von Zeichen, die Sie verarbeiten möchten. Es gibt einige vordefinierte Teilmengen, zum Beispiel sehen die mehrsprachigen europäischen Teilmengen gut aus.
Holen Sie sich einige Schriftarten und entfernen Sie sie auf das gewünschte Set. Beachten Sie, dass selbst das Anzeigen aufgrund der Kombination von Zeichen, bidirektionalem Schreiben und dergleichen viel komplizierter sein kann als Sie es von ASCII gewohnt sind. Am besten halten Sie sich wahrscheinlich an lateinische Schriftzeichen, ohne Akzente zu kombinieren. Kyrillisch und Griechisch sollten ebenso in Ordnung sein wie alles, was eine einfache Folge von Zeichen von links nach rechts ist.
Vielleicht könnten Sie einen externen Speicher zum Speichern der Schriftarten verwenden.
Dann gibt es noch eine ganze Reihe anderer Themen, die Sie wahrscheinlich nicht benötigen, zum Beispiel Sortieren und Suchen, siehe den Unicode-Standard und seine Anhänge (es ist groß!).
Vergessen Sie die Intensivstation, sie benötigt Megabyte Speicher.
quelle