Forum: Mikrocontroller und Digitale Elektronik Arduino Adafruit GFX Fonts für OLED Displays erzeugen


von Stefan L. (stefanl38)


Lesenswert?

Hallo,

nur so weil ich selbst länger danach gesucht habe hier auch ein Posting 
damit es andere leichter haben es zu finden.

Daniel Eichhorn hat einen Online-Service mit dem man Adafruit GFX-Fonts 
erzeugen kann programmiert. Die von Adafruit mitgelieferten Fonts in der 
Bibliothek sind entweder FETT oder ultraklein.

Hier http://oleddisplay.squix.ch/#/home
kann man sich mit 5 Mausklicks seinen eigenen Font erzeugen lassen.

Dann Quellcode per Copy&Paste in eine Textdatei reinklatschen und im 
Unterverzeichnis "Fonts"
C:\Users\username\Documents\Arduino\libraries\Adafruit_GFX_Library\Fonts

mit Dateiendung .h speichern.

Wenn im Quellcode z.B. const uint8_t Dialog_plain_10Bitmaps[] PROGMEM
drin steht
Muss man als Dateinamen "Dialog_plain_10.h" eingeben.

Spendet Daniel wenigstens 1 Dollar für diesen großartigen Service 
https://www.paypal.me/squix78

viele Grüße

Stefan

Prost Daniel!

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Angehängte Dateien:

Lesenswert?

OK, etwas spät.

Ich hab mal einen Font erstellt, und auch soweit geändert, siehe Anhang.
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#define FONT FreeSans6pt7b
#include <Fonts/FreeSans6pt7b.h>
...
tft.setFont(FreeSans6pt7b);

ergibt folgenden Fehler:
'FreeSans6pt' was not declared in this scope // FreeSans6pt7b das Selbe

weiter oben in der Fehlermeldung steht:

C:\Users\TG\Documents\Arduino\libraries\Adafruit_GFX_Library/Fonts/FreeS 
ans6pt7b.h:197:15:  warning: 'FreeSans6pt7b' defined but not used 
[-Wunused-variable]
 const GFXfont FreeSans6pt7b PROGMEM = {(uint8_t *)FreeSans6pt7bBitmaps,

was ist hier los?

: Bearbeitet durch User
von Johannes S. (Gast)


Lesenswert?

Thomas G. schrieb:
> #define FONT FreeSans6pt7b

das ist überflüssig, im include wird eine Struktur mit diesem Namen 
angelegt.
1
tft.setFont(FreeSans6pt7b);
da gehört dann die Adresse der Struktur rein:
1
tft.setFont(&FreeSans6pt7b);

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Lesenswert?

Ich denke, die Kleinigkeit war's. Danke

von Johannes S. (Gast)


Angehängte Dateien:

Lesenswert?

das funktioniert ganz gut, hatte auch gerade meine Libs aktualisiert und 
diese Fonts in die Adafruit SSD1306 eingebaut, da sind schon ein paar 
schöne dabei. Den Generator wollte ich mal testen, hatte ich beim Update 
auch gefunden.

von Torsten (Gast)


Lesenswert?

Hallo, der Beitrag ist zwar schon etwas älter, aber vielleicht kann mir 
da jemand weiterhelfen.

Ich habe mir auch da einen Font erstellt, leider fehlen die für die 
deutsche Sprache nötigen Umlaute (ä,Ä, und so weiter)

Jetzt habe ich schon den halben Tag versucht herauszufinden, wie ich aus 
dem A

(0x04,0x00,0x40,0x0A,0x00,0xA0,0x11,0x01,0x10,0x20,0x82,0x08,0x3F,0x84,0 
x04,0x40,0x48,0x02,  // 'A')

ein Ä machen kann.

Aber ich komme mit dem Code nicht klar. Ich habe auf der Adafruit Seite 
ein Tutorial gefunden, wie einfach erklärt wird, wie man einfach solche 
Codes erzeugt. Aber hier scheint irgendwas anders aufgebaut zu sein.

https://learn.adafruit.com/creating-custom-symbol-font-for-adafruit-gfx-library

Ich habe die Font Family Dialog genommen, Style Plain und die Größe 16

Mir reicht eine Einfache Erklärung wie der Code für den Buchstaben A 
erzeugt wurde, den Rest möchte ich erstmal selber versuchen 
herauszufinden.

PS: Ich beschäftige mich erst seit Heute mit dem Thema, also bitte eine 
Einfache erklärung.


Vielen Dank schonmal!!!

von J. S. (jojos)


Lesenswert?

Der Dialog Font ist die komplexere Variante mit variabler Zeichengröße, 
da passt die Beschreibung nicht, die ist für Monospaced Fonts:
https://learn.adafruit.com/creating-custom-symbol-font-for-adafruit-gfx-library/creating-new-glyphs

Eventuell ist aber auch nur das Problem das die Codepages vom Editor und 
der Zeichen nicht zusammenpassen.

edit:
ok, Codepage ist es nicht, die Umlaute sind in Dialog nicht definiert.
im 'Fonts' Unterverzeichnis sind Konverter und eine Anleitung, Quelle 
sind die Freetype Fonts.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.