Forum: Mikrocontroller und Digitale Elektronik Suche Font für LED Matrix 3x5


von ... (Gast)


Lesenswert?

Hallo Leute,

suche eine Font mit 3x5. Ich hoffe das ist nicht zu klein, ich konnte 
nichts gescheites finden....
Danke

von never ever (Gast)


Lesenswert?

3 X 5 ok

mit oder ohne Serifen

oder Kursiv ginge auch !

von c-hater (Gast)


Lesenswert?

... schrieb:

> suche eine Font mit 3x5. Ich hoffe das ist nicht zu klein

Doch, ist es. Denk' doch bloß mal ein wenig nach, z.B. über das "m". Da 
sind drei senkrechte Striche darzustellen und dazwischen zwei Freiräume, 
also fünf Elemente nebeneinander. Du hast aber nur drei...

Mit 3x5 gehen alle Ziffern und einige Buchstaben und Sonderzeichen, aber 
ein vollständiger ASCII-Zeichensatz ist damit nicht möglich. Notdürftig 
bekommt man vielleicht noch alle Großbuchstaben gebacken, aber die sind 
dann teilweise schon sehr schlecht lesbar bzw. nicht voneinander oder 
von einer Ziffer zu unterscheiden.

Das Minimum für eine halbwegs brauchbare alphanumerische Darstellung ist 
eine 5x7-Matrix (zzgl. mindestens ein Element Zeichen- und 
Zeilenabstand).
Eben so, wie es bei den üblichen Textdisplays gelöst ist. Damit läßt 
sich der vollständige ASCII-Zeichensatz ganz gut darstellen (wenn auch 
ohne Unterlängen) und darüber hinaus auch die meisten Zeichen aller auf 
der lateinische Schrift basierenden Sprachen wenigstens einigermaßen 
lesbar.

von Sir Clive Sinclair (Gast)


Angehängte Dateien:

Lesenswert?

Da frage ich mich, wie beim Sinclair ZX-Spectrum, bei 256 Pixeln 
waagerecht, 64 Zeichen (mit Zwischenraum) dargestellt werden konnten? Da 
blieben für jedes Zeichen nur 3 mal 7(oder 8) Pixel. "Tasword Two" (C) 
hatte aber den kompletten Zeichensatz plus Sonderzeichen!

von Schnappschuss (Gast)


Lesenswert?


von ... (Gast)


Lesenswert?

okay, dann erhöhe ich mal auf 4x7 :-)
dann müsste ich noch ein bisschen löten, aber von der Eletkronik her 
wäre das möglich.
Großbuchstaben reichen, das kleine m ist wirklich kacke
Das Große W wird dann auch nicht gescheit gehen...
Ab wann kann man den alles sauber dastellen? Höher als 7 kann ich auf 
keinen Fall und größer als vier geht nur mit Laufschrift

von Reinhard Kern (Gast)


Lesenswert?

Schnappschuss schrieb:
> 3 x 5 Font:

Das ist kein Font sondern Selbstbetrug. Da kannst du genausogut Kästchen 
über Arialbuchstaben zeichnen und behaupten, es wäre ein 2x2 Font.

Gruss Reinhard

von c-hater (Gast)


Lesenswert?

Sir Clive Sinclair schrieb:

> Da frage ich mich, wie beim Sinclair ZX-Spectrum, bei 256 Pixeln
> waagerecht, 64 Zeichen (mit Zwischenraum) dargestellt werden konnten? Da
> blieben für jedes Zeichen nur 3 mal 7(oder 8) Pixel.

Eben. W und w z.B. unterscheiden sich nur noch in der Höhe. Diese 
Möglichkeit hast du bei 3x5 dann auch nicht mehr. Deswegen reduziert 
sich das auf Ziffern und Großbuchstaben. Und wirklich gut lesbar ist es 
trotzdem nicht.

Wie übrigens auch nicht die Schrift auf dem Screenshot. Das geht bei 
richtigen Wörtern noch einigermaßen, aber bei "Ctrl W" z.B. muß man 
schon etwas überlegen, um dahinterzukommen, welches Zeichen gemeint sein 
könnte.

Sowas ist das krasse Gegenteil von "ergonomisch".

von c-hater (Gast)


Lesenswert?

... schrieb:

> Ab wann kann man den alles sauber dastellen? Höher als 7 kann ich auf
> keinen Fall und größer als vier geht nur mit Laufschrift

Mit 4x5 sollten sich zumindest alle Ziffern und Großbuchstaben schon 
recht ordentlich lesbar darstellen lassen. Mit 4x7 reicht's auch noch 
für lesbare "Ä", "Ö" und "Ü" und Sachen wie etwa das "$".

von Spess53 (Gast)


Lesenswert?

Hi

EA eDIP Displays haben einen 3x5 Zeichensatz:

http://www.lcd-module.de/fileadmin/pdf/grafik/edip128-6.pdf

S.19.

MfG Spess

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Schnappschuss schrieb:
> 3 x 5 Font: http://www.cufonfonts.com/de/font/7088/3x5

Wenn das in der Vorschau auf der Seite ein 3x5 Font sein soll, kann ich 
das nur als schlechten Scherz bezeichnen.

von c-hater (Gast)


Lesenswert?

Magnus M. schrieb:

> Wenn das in der Vorschau auf der Seite ein 3x5 Font sein soll, kann ich
> das nur als schlechten Scherz bezeichnen.

Es ist einer. Er stellt halt das dar, was mit 3x5 möglich ist. Für 
natürlichen Text ist das sogar notfalls ausreichend (zum Glück sind wir 
Menschen ja wunderbare Mustererkennungsmaschinen). Aber es ist furchtbar 
anstrengend und fehlerträchtig, einen Text mit so einem Font zu lesen.

Jemanden dazu zu zwingen grenzt an vorsätzliche Körperverletzung.

von Spess53 (Gast)


Lesenswert?

Hi

>Es ist einer

Klar. Mit unterschiedlich abgerundeten oder abgeschnittenen Pixeln.

MfG Spess

von Reinhard Kern (Gast)


Lesenswert?

Spess53 schrieb:
> EA eDIP Displays haben einen 3x5 Zeichensatz:

Einige Zeichen sind 6 Pixel hoch, aber das liesse sich auch noch 
eliminieren, ansonsten ein sorgfältig entworfener Font, sogar mit 
Euro-Zeichen.

Zum Lesen eines Romans natürlich nicht zu empfehlen.

Spess53 schrieb:
> Klar. Mit unterschiedlich abgerundeten oder abgeschnittenen Pixeln.

Das ist reine Verarschung und hat mit Font nichts zu tun. Eigentlich 
eine Frechheit sowas als Font zu veröffentlichen.

Gruss Reinhard

von Reinhard Kern (Gast)


Lesenswert?

c-hater schrieb:
> Es ist einer. Er stellt halt das dar, was mit 3x5 möglich ist.

Offensichtlich verstehst du die Natur eines Pixel-Fonts überhaupt nicht. 
Das ist ein Outline-Font mit drübergemalten Kästchen.

Gruss Reinhard

von ... (Gast)


Lesenswert?

Cool Danke damit kann ich schon was anfangen ...


@Sir Clive Sinclair (Gast)
super ich dachte nicht dass man das so gut lesbar in der Größe schafft. 
Ich glaube ich zeichne mir den nach. Der Font ist echt weltklasse.

Nach eine Frage...
Mit welchem Programm macht man das am besten?
Mir fällt nur gimp ein und das dann als h file abspeichern.

Dann kommt dann sowas raus...
1
static char header_data[] = {
2
  0,0,0,
3
  0,0,0,
4
  0,0,0,
5
  0,0,0,
6
  0,0,0
7
  };

Das müsste man dann wieder einlesen und umformatieren...
Schön ist was anderes :-)
Bin für Vorschläge offen.

von Reinhard Kern (Gast)


Lesenswert?

... schrieb:
> Mit welchem Programm macht man das am besten?

Was willst du denn mit dem Font anfangen? LEDs ansteuern? Ein 
LCD-Display? Und womit, µC, PC, oder was?

Gruss Reinhard

von ... (Gast)


Lesenswert?

ich habe leds geschenkt bekommen und mir die zu einem display zusammen 
gepappt. aber das spielt doch eigentlich keine rolle, oder?
Ob µC oder Pc spielt auch keine rolle... ist aber irgendso ne lpc17xx 
gurke.
Suche jetzt nur ein Programmchen womit ich mir meine fonts selbst 
zusammen malen kann... wenns das nicht gibt nehme ich gimp
grüsse

von Walter T. (nicolas)


Lesenswert?

Naja, sowas ist die perfekte Gelegenheit, ein Stündchen mit Karopapier 
zu verbringen. Danach hat man die Muster bei HEX im Kopf.

von Reinhard Kern (Gast)


Lesenswert?

... schrieb:
> aber das spielt doch eigentlich keine rolle, oder?

Doch - je nach dem, ob du dein Display spalten- oder zeilenweise 
ansteuerst, musst du die Matrizen für die Zeichen aufbauen. Bei einem 
Bildschirm z.B. brauchst du zuerst die ersten Zeilen aller Zeichen in 
der Zeile, danach alle 2. Zeilen usw. Also ist es zweckmässig die Pixel 
Zeile für Zeile zu speichern.

Es ist recht ärgerlich, wenn man mit dem Erfassen fertig ist und dann 
feststellt, dass die Matrix verkehrt aufgebaut ist. Dann muss man sich 
ein Programm schnitzen, das die Matrix um 90 Grad dreht, oder man fängt 
von vorne an. Aber du musst das nicht glauben, mach einfach, dann siehst 
du weiter wenn du die Software schreibst.

Gruss Reinhard

von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

Hey,
die Schrift von Sir Clive Sinclair ist für die Größe sogar richtig gut. 
Perfekt für Indizes auf einem kleinen Display. Es fehlen zwar ein paar 
Buchstaben (V,J,X,q,Z,z - liegt wohl am englischen Englisch), aber die 
lassen sich recht leicht ergänzen.

Viele Grüße
Nicolas

von ... (Gast)


Lesenswert?

Reinhard Kern schrieb:

> Es ist recht ärgerlich, wenn man mit dem Erfassen fertig ist und dann
> feststellt, dass die Matrix verkehrt aufgebaut ist. Dann muss man sich
> ein Programm schnitzen, das die Matrix um 90 Grad dreht, oder man fängt
> von vorne an. Aber du musst das nicht glauben, mach einfach, dann siehst
> du weiter wenn du die Software schreibst.
>
> Gruss Reinhard

Hallo Rinhard, Danke für deine Tips. Bei einem Monitor mag das 
vielleicht stimmen, ich habe aber immer noch einen Speicher dazwischen 
und somit sollte es egal sein. Ich denke trotzdem noch mal drüber nach. 
Danke.


Nicolas S. schrieb:
> Hey,
> die Schrift von Sir Clive Sinclair ist für die Größe sogar richtig gut.
> Perfekt für Indizes auf einem kleinen Display. Es fehlen zwar ein paar
> Buchstaben (V,J,X,q,Z,z - liegt wohl am englischen Englisch), aber die
> lassen sich recht leicht ergänzen.

Hey, kannst du die Schrift mal hochladen? Ich hätte diese auch gerne. 
Selbst zeichnen mach nicht sooooo viel Spaß. Schon mal Danke!

von Reinhard Kern (Gast)


Lesenswert?

... schrieb:
> ich habe aber immer noch einen Speicher dazwischen
> und somit sollte es egal sein.

Das hat mit dem Speicher garnichts zu tun, sondern damit, wie du deine 
Anzeige ansteuerst, z.B. wenn du LEDs multiplext. Du kannst zwar 
entweder Spalten oder Zeilen multiplexen, aber das legst du mit deiner 
Hardware fest, nachträglich kannst du das nicht mehr ändern.

Es stellen sich ausserdem mehr Fragen als nur Spalte oder Zeile, die 
Frage ist auch, welches Pixel zuerst.

Natürlich kannst du alles in der Software wieder glattbügeln, aber 
allein die Umkehrung eines Bytes in der Reihenfolge MSB oder LSB first 
ist eben unschön und überflüssig, wenn man die Daten gleich richtig 
anlegt.

Gruss Reinhard

von ... (Gast)


Lesenswert?

Reinhard Kern schrieb:
> ... schrieb:
>> ich habe aber immer noch einen Speicher dazwischen
>> und somit sollte es egal sein.
>
> Das hat mit dem Speicher garnichts zu tun, sondern damit, wie du deine
> Anzeige ansteuerst, z.B. wenn du LEDs multiplext. Du kannst zwar
> entweder Spalten oder Zeilen multiplexen, aber das legst du mit deiner
> Hardware fest, nachträglich kannst du das nicht mehr ändern.
>
> Es stellen sich ausserdem mehr Fragen als nur Spalte oder Zeile, die
> Frage ist auch, welches Pixel zuerst.
>
> Natürlich kannst du alles in der Software wieder glattbügeln, aber
> allein die Umkehrung eines Bytes in der Reihenfolge MSB oder LSB first
> ist eben unschön und überflüssig, wenn man die Daten gleich richtig
> anlegt.


Hallo Reinhard,

dann verstehe ich es wirklich nicht. Ich habe einen Buchstaben im 
Speicher. Jetzt möchte ich diesen auf ein Display, oder was auch immer 
schreiben. Hierzu schreibe ich diesen in den Speicher. Ob der jetzt 
Zeilenweise oder Spaltenweise abgelegt ist, spielt doch keine Rolle. ICh 
kann doch einfach die innere und äußere Schleife tauschen. Ob MSB oder 
LSB ist dann die Durchlaufrichtung der Schleife. Ist der Speicher 
beschrieben, baller ich den aufs Display und gut ist (habe zwei 
Speicher). Meiner Ansicht nach gibt es da nichts glatt zu bügeln sondern 
es ist einfach egal.

Nur so als Hinweis. Ich weder beratungsresistent, noch möchte ich mich 
streiten. Ich verstehe es einfach nur nicht. Vielleicht kannst du mal 
ein Beispiel nennen. Dann werde ich das berücksichtigen.
Viele liebe Grüße
...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

... schrieb:
> ICh kann doch einfach die innere und äußere Schleife tauschen.

Wenn Du Deine Zeichen Pixel für Pixel ausgibst, ja. Aber aus 
Performancegründen gewöhnt man sich so etwas schnell ab - und gibt die 
Bitmuster in Form kompletter Bytes aus. Und da sollte der Bitmapfont 
schon zur Organisation des Displays passen.

von Reinhard Kern (Gast)


Lesenswert?

... schrieb:
> Dann kommt dann sowas raus...static char header_data[] = {
>   0,0,0,
>   0,0,0,
>   0,0,0,
>   0,0,0,
>   0,0,0
>   };

Deine Formatierung legt nahe, dass du jeweils 3 Byte für jedes Zeichen 
vorgesehen hast, also die 3 Spalten. Bildschirme und die üblichen 
HD44780-LCDs (für Custom-Zeichen) wollen aber ein Byte für jede Zeile 
haben. Siehe hier:

http://www.circuitvalley.com/2012/02/lcd-custom-character-hd44780-16x2.html

Das geht natürlich viel leichter, wenn du deine Pixel gleich zeilenweise 
definierst. Es gibt übrigens einige (sehr alte) Programme für den 
Entwurf von Dot-Fonts, ich habe selbst mal sowas geschrieben weil ich 
kyrillische Fonts für meine Steuerungen brauchte, aber das war vor 30 
Jahren oder so und ist nicht mehr auffindbar. Man braucht sowas heute 
kaum noch.

Du würdest dich übrigens beim Entwurf SEHR viel leichter tun, wenn du 
Binär-Konstanten verwenden könntest, weil du dann das Zeichen vor dir 
siehst. Leider kann das C nicht, entweder musst du das per Header in 
dein C einführen oder du verwendest Assembler.
1
z.B. (5x7,A,MASM)
2
 db 00100b
3
 db 01010b
4
 db 10001b
5
 db 11111b
6
 db 10001b
7
 db 10001b

Gruss Reinhard

von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,
es scheint ja wirklich unglaublich abschreckend zu sein, mal selbst ein 
wenig binärkopfrechnen zu machen. Hier ist der Schriftsaft nach
Beitrag "Re: Suche Font für LED Matrix 3x5" zum Nutzen und 
ergänzen:
1
// 3x5-Nichtproportionalschrift
2
// ab Zeichen 32
3
// unvollstaendig
4
const unsigned char PROGMEM Font36Lookup [] = {
5
  3,                 // Schriftbreite
6
  0x00, 0x00, 0x00,  // sp
7
  0x00, 0x5e, 0x00,  // ! *
8
  0x06, 0x00, 0x06,  // " *
9
  0xff, 0xff, 0xff,  // #
10
  0x48, 0xd6, 0x24,  // $ *
11
  0x46, 0x18, 0x62,  // % *
12
  0xff, 0xff, 0xff,  // &
13
  0x00, 0x06, 0x00,  // ' *
14
  0x38, 0x44, 0x82,  // ( *
15
  0x82, 0x44, 0x38,  // ) *
16
  0x14, 0x08, 0x3E,  // *
17
  0x10, 0x38, 0x10,  // + *
18
  0xa0, 0x60, 0x00,  // , *
19
  0x10, 0x10, 0x10,  // - *
20
  0x60, 0x60, 0x00,  // . *
21
  0x60, 0x18, 0x06,  // / *
22
  0x7c, 0x42, 0x7c,  // 0 *
23
  0x44, 0x7e, 0x40,  // 1 *
24
  0x64, 0x52, 0x4c,  // 2 *
25
  0x4a, 0x4a, 0x34,  // 3 *
26
  0x38, 0x24, 0x7e,  // 4 *
27
  0x4e, 0x4a, 0x32,  // 5 *
28
  0x3c, 0x4a, 0x32,  // 6 *
29
  0x62, 0x1a, 0x06,  // 7 *
30
  0x76, 0x4a, 0x76,  // 8 *
31
  0x4c, 0x52, 0x3c,  // 9 *
32
  0x6c, 0x6c, 0x00,  // : *
33
  0xac, 0x6c, 0x00,  // ; *
34
  0x10, 0x28, 0x44,  // < *
35
  0x28, 0x28, 0x28,  // = *
36
  0x44, 0x28, 0x10,  // > *
37
  0xFF, 0xFF, 0xFF,  // ?
38
  0xFF, 0xFF, 0xFF,  // @
39
  0x7c, 0x12, 0x7c,  // A *
40
  0x7c, 0x4a, 0x34,  // B *
41
  0x3c, 0x42, 0x42,  // C *
42
  0x7e, 0x42, 0x3c,  // D *
43
  0x7e, 0x4a, 0x42,  // E *
44
  0x7e, 0x0a, 0x0a,  // F *
45
  0x3c, 0x52, 0x34,  // G *
46
  0x7e, 0x08, 0x7e,  // H *
47
  0x42, 0x7e, 0x42,  // I *
48
  0x30, 0x40, 0x3e,  // J *
49
  0x7e, 0x18, 0x66,  // K *
50
  0x7e, 0x40, 0x40,  // L *
51
  0x7e, 0x1c, 0x7e,  // M *
52
  0x7e, 0x02, 0x7e,  // N *
53
  0x3c, 0x42, 0x3c,  // O *
54
  0x7e, 0x12, 0x0c,  // P *
55
  0x7e, 0x62, 0xfe,  // Q *
56
  0x7e, 0x32, 0x4e,  // R *
57
  0x44, 0x4a, 0x32,  // S *
58
  0x02, 0x7e, 0x02,  // T *
59
  0x7e, 0x40, 0x7e,  // U *
60
  0x3e, 0x40, 0x3e,  // V *
61
  0x3e, 0x7c, 0x3e,  // W *
62
  0x66, 0x18, 0x66,  // X *
63
  0x0e, 0x70, 0x0e,  // Y *
64
  0x62, 0x5a, 0x46,  // Z *
65
  0x00, 0x7e, 0x42,  // [ *
66
  0x06, 0x18, 0x60,  // backslash *
67
  0x42, 0x7e, 0x00,  // ] *
68
  0x04, 0x02, 0x04,  // ^ *
69
  0x40, 0x40, 0x40,  // _ *
70
  0x00, 0x02, 0x04,  // ` *
71
  0x74, 0x54, 0x78,  // a *
72
  0x7e, 0x48, 0x30,  // b *
73
  0x38, 0x44, 0x44,  // c *
74
  0x30, 0x48, 0x7e,  // d *
75
  0x38, 0x54, 0x48,  // e *
76
  0x7c, 0x0a, 0x02,  // f *
77
  0x98, 0xa4, 0x7c,  // g *
78
  0x7e, 0x08, 0x70,  // h *
79
  0x48, 0x7a, 0x40,  // i *
80
  0x88, 0xfa, 0x00,  // j *
81
  0x7e, 0x18, 0x64,  // k *
82
  0x3e, 0x40, 0x40,  // l *
83
  0x7c, 0x38, 0x7c,  // m *
84
  0x7C, 0x04, 0x78,  // n *
85
  0x38, 0x44, 0x38,  // o *
86
  0xFc, 0x24, 0x18,  // p *
87
  0x18, 0x24, 0xfc,  // q *
88
  0x78, 0x04, 0x04,  // r *
89
  0x48, 0x54, 0x24,  // s *
90
  0x04, 0x3e, 0x44,  // t *
91
  0x7C, 0x40, 0x7C,  // u *
92
  0x3c, 0x40, 0x3c,  // v *
93
  0x3c, 0x78, 0x3c,  // w *
94
  0x6c, 0x10, 0x6c,  // x *
95
  0x9c, 0xa0, 0x7c,  // y *
96
  0x64, 0x54, 0x4c,  // z *
97
  0xFF, 0xFF, 0xFF,  // A
98
  0xFF, 0xFF, 0xFF,  // O
99
  0xFF, 0xFF, 0xFF,  // U
100
  0xFF, 0xFF, 0xFF,  // a
101
  0xFF, 0xFF, 0xFF,  // o
102
  0xFF, 0xFF, 0xFF,  // u
103
  0xFF, 0xFF, 0xFF,  // ß
104
  0xfc, 0x40, 0x7c,  // µ *
105
  0xFF, 0xFF, 0xFF,  // <
106
  0xFF, 0xFF, 0xFF,  // >
107
};

Bitte bei Ergänzungen re-posten!

von foo (Gast)


Lesenswert?

Reinhard Kern schrieb:
> Leider kann das C nicht, entweder musst du das per Header in
> dein C einführen oder du verwendest Assembler.

C selbst leider nicht, der GCC schon: 
http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html

von bar (Gast)


Angehängte Dateien:

Lesenswert?

Font36Lookup ist 3x6, nicht 3x5. Siehe Anhang.

Hier gibt es viele andere Schriftarten, aber mit speziellem Datenformat:
https://github.com/olikraus/u8g2/wiki/fntlistall

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.