Font yang akan digunakan dengan jam matriks LED dan proyek matriks LED lainnya
Font ini dirancang dengan jam matriks LED dalam pikiran, terutama unit yang menggunakan EspHoMaTriXv2 atau EspHome-Led-PixelClock . Mereka adalah font BDF dan TTF, sehingga mereka dapat secara langsung diimplementasikan dengan Esphome (dan mungkin Arduino).
Karena ini adalah font bitmap, ukuran font ini ditetapkan piksel. Mereka tidak dapat diformat ulang. Ini adalah hal yang baik.
Sebagian besar karakter akan selebar 3 piksel, tetapi karakter tertentu seperti G dan M dan & lebih luas. Karakter tanda baca umumnya lebar 1 atau 2 piksel. Semua karakter memiliki 1 kolom kosong di sisi kanan, kecuali ruang yang persis 2 piksel, tanda hubung unicode tertentu, dan mungkin beberapa karakter Latin beraksen Ognok.
Saya akan terus menambahkan karakter ke font karena saya punya waktu. Jika Anda ingin bahasa Anda menjadi prioritas atau jika Anda membutuhkan beberapa karakter tertentu yang ditambahkan, buka masalah dan saya akan melihat apa yang dapat saya lakukan.
Cocok saat menggunakan ketinggian penuh matriks 8-baris
Semuanya besar dan bloky - tampak hebat sebagai layar waktu

[BDF Unduh | Unduh TTF]
Di bawah garis dasar biasanya disediakan untuk ekor tetapi dengan font 'X', tidak ada garis dasar - semuanya memakan 8 baris penuh piksel

[BDF Unduh | Unduh TTF]
Sebagian besar karakter telah diringankan dan bergaya

[BDF Unduh | Unduh TTF]
Dero dan bergaya dalam 8 baris lengkap - yang ini terlihat sangat bagus di layar info!

[BDF Unduh | Unduh TTF]
Cocok saat menggunakan pita hari kerja di bawah waktu pada matriks 8-baris
Harap dicatat bahwa banyak karakter beraksen di font non-X didorong di bawah garis dasar untuk membuatnya terlihat sedikit kurang mengerikan.
Semuanya Besar dan Berbokir

[BDF Unduh | Unduh TTF]
Besar dan Bloky dalam 6 baris penuh

[BDF Unduh | Unduh TTF]
Dero dan bergaya

[BDF Unduh | Unduh TTF]
Dero dan bergaya dalam 6 baris penuh

[BDF Unduh | Unduh TTF]
Untuk mengurangi ruang yang diambil font selama kompilasi, silakan gunakan kode seperti itu:
font:
- file: fonts/MatrixLight6.bdf
id: special_font
glyphs: |
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz°
Jika menggunakan file TTF, Anda harus menentukan ukuran font:
font:
- file: fonts/MatrixLight8.ttf
id: default_font
glyphs: |
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz°
size: 8
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¦§©ª«®°±²³´µ¶¥·¹º»¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
Karena cacat bdf-pillow (lihat di bawah), saya membuat beberapa karakter "tidak berguna" dalam Latin diperpanjang-terlihat seperti sesuatu yang lain. Anda masih dapat menggunakan file BDF jika Anda menggunakan karakter khusus ini dalam daftar mesin terbang dan di rumah asisten.
¨¬¯¸¼½¾
| Karakter | Muncul sebagai |
|---|---|
¨ | ₿ Bitcoin |
¸ | Ξ ethereum |
¬ | ℃ Gelar c |
¯ | ℉ Gelar f |
¼ | € Euro |
½ | ₩ menang |
¾ | ₴ Hryvnia |
ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ
АаБбВвГ㥴ДдЕеЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЮюЯя
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΤΥΦΧΨΩΆΈΉΊΌΎΏΪΫαβγδεζηθικλμνξοπρςστυφχψωάέήίϊϋόύώ
Perhatikan ini belum diuji oleh orang Yunani yang sebenarnya. Tolong beri tahu saya jika mereka baik -baik saja!
Vietnam menggunakan karakter-karakter ini, sudah ada dalam set dasar Latin dan Extended-A:
ABCDEGHIKLMNOPQRSTUVXYabcdeghiklmnopqrstuvxyÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚÝàáâãèéêìíòóôõùúýĂăĐđĨĩŨũ
Serta ini:
ƠơƯưẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹ
Perhatikan ini belum diuji oleh orang Vietnam yang sebenarnya. Tolong beri tahu saya jika mereka baik -baik saja! Banyak karakter di Chunky8 (dan beberapa di Light8) harus didorong di bawah garis dasar untuk memungkinkan aksen. Font 8x mungkin baik -baik saja. Saya bertanya -tanya apakah vokal dengan tanduk atau titik benar -benar terbaca (khususnya O dalam posisi 7896 hingga 7907).
Harap dicatat bahwa karakter -karakter ini jauh lebih luas daripada karakter standar karena ekor, staf, dan kurva cukup penting bagi IPA. Mereka sebagian besar didasarkan pada gaya Light8 dan identik di semua font 8-seri.
IPA kebanyakan menggunakan karakter ini:
ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɪɫɬɭɮɯɰɱɲɳɴɵɶɸɹɺɻɼɽɾɿʀʁʂʃʄʅʈʉʊʋʌʍʎʏʐʑʒʔʕʘʙʚʛʜʝʟʡʢ
Jika Anda tidak dapat menampilkan semua karakter, tergantung pada kebutuhan Anda, Anda dapat mencoba menambahkan karakter usang:
ɩɷʆʇʓʖʗʞʠʣʤʥʦʧʨ
Mungkin karakter ucapan yang tidak teratur:
ʩʪʫʬʭ
Dan akhirnya, penambahan untuk Sinologi:
ʮʯ
오후전일월화수목금토요
一二三四五六天七八九十星期月上下午
Perhatikan bahwa 上下午 sedikit terjepit untuk memungkinkan tampilan 上午 & 下午 lebih mudah.
Ruang reguler (seperti yang tersedia di sebagian besar keyboard) adalah lebar 2 piksel. Berikut adalah beberapa ruang lain yang tersedia.
| Ruang angkasa | Nama | Unicode | Lebar |
|---|---|---|---|
| Ruang tipis | U+2009 | 1 piksel |
| EN Ruang | U+2002 | 3 piksel |
| Ruang em | U+2003 | 4 piksel |
Jika ruang -ruang itu tidak ada gunanya bagi Anda (mereka tidak terlihat dan esphome kemungkinan akan memperlakukannya sebagai ruang), berikut adalah beberapa ruang lain yang tersedia menggunakan set nomor yang dikelilingi unicode.
⓪①②③④⑤⑥⑦⑧⑨⑩
| Ruang angkasa | Nama | Unicode | Lebar ruang |
|---|---|---|---|
⓪ | Dilingkari 0 | U+24ea | 0 piksel |
① | Dilingkari 1 | U+2460 | 1 piksel |
② | Dilingkari 2 | U+2461 | 2 piksel |
③ | Dilingkari 3 | U+2462 | 3 piksel |
④ | Dilingkari 4 | U+2463 | 4 piksel |
⑤ | Dilingkari 5 | U+2464 | 5 piksel |
⑥ | Dilingkari 6 | U+2465 | 6 piksel |
⑦ | Dilingkari 7 | U+2466 | 7 piksel |
⑧ | Dilingkari 8 | U+2467 | 8 piksel |
⑨ | Dilingkarkan 9 | U+2468 | 9 piksel |
⑩ | Dilingkari 10 | U+2469 | 10 piksel |
Hipen-minus reguler (seperti yang tersedia di sebagian besar keyboard) adalah lebar 3 piksel plus ruang. Berikut adalah beberapa tanda baca lainnya.
‐–—―•
| Tanda | Nama | Unicode | Lebar |
|---|---|---|---|
‐ | Hipen | U+2010 | 1 piksel lebar, tidak ada ruang |
– | En hypen | U+2013 | 2 piksel lebar + ruang |
— | Hiphen em | U+2014 | 4 piksel lebar + ruang |
― | Bilah horizontal | U+2015 | Lebar 4 piksel, tidak ada ruang |
• | Peluru | U+2022 | 1 piksel lebar + ruang |
₡₢₦₩₪₫€₭₮₱₲₴₵₸₹₺₼₽₾₿
℃℉
Salah satu karakter ini mungkin muncul jika karakter yang Anda panggil tidak tersedia.
| Penampilan | Nama | Unicode |
|---|---|---|
![]() | Batal | U+0000 |
![]() | Kotak putih | U+25a1 |
![]() | Karakter yang tidak diketahui | U+fffd |
Perhatikan bahwa menambahkannya ke daftar mesin terbang dalam esphome tampaknya tidak membantu ketika mencoba menampilkan karakter yang benar -benar tidak diketahui (jam saya hanya melukis blok lebar) tetapi di sini adalah dua yang terakhir lagi (nol tidak dapat digunakan dengan cara ini):
□�
Karakter apa pun yang termasuk dalam daftar mesin terbang yang sebenarnya tidak ada dalam font akan menyebabkan Esphome mengalami kesalahan saat menyusun. Karakter apa pun yang diminta tidak termasuk dalam daftar mesin terbang harus menghasilkan kesalahan dan/atau blok atau kosong yang ditampilkan oleh jam Anda.
Perhatikan juga bahwa ada batas 256 karakter yang dapat digunakan. Ini adalah batas keras yang ditetapkan oleh bantal, ketergantungan python yang mengubah font menjadi bitmaps yang dapat digunakan oleh esphome. Jika daftar mesin terbang Anda lebih lama, karakter apa pun di luar batas itu tidak akan ditampilkan.
UnicodeEncodeError: 'latin-1' codec can't encode character 'u0416' in position 0: ordinal not in range(256)
Kesalahan ini berkaitan dengan cara bantal menginterpretasikan file font BDF sebagai codepage Latin-1 jika daftar karakter tidak cocok dengan apa yang diharapkan. Karena bagian bantal itu cukup tua, tampaknya tidak ada minat untuk memperbaikinya agar sesuai dengan standar UTF. Jadi, jika Anda ingin menggunakan karakter Unicode (apa pun di luar Latin Basic dan Extended-A), Anda harus menggunakan file TTF sebagai gantinya.
File TTF ini tidak dapat digunakan oleh Windows, karena mereka hanya menyertakan bitmap. Mereka juga tidak terlalu berguna saat mengedit font. Jadi file BDF akan selalu dianggap sebagai file master.
Saat menggunakan esphomatrix, periksa apakah ini ada di YAML Anda (edit sesuai kebutuhan):
ehmtxv2:
default_font_id: default_font
default_font_yoffset: 6
special_font_id: special_font
special_font_yoffset: 8
Harap dicatat bahwa Yoffset bisa rumit. Anda harus menggunakan angka yang sesuai dengan garis dasar font. Untuk font ini, sebenarnya tidak ada di bawah garis dasar font; Saya telah merancang font sehingga font non-X sebenarnya dinaikkan 1 piksel di atas baseline sehingga ekornya muncul dengan benar.
Jika Anda ingin karakter ditambahkan, buka masalah, buat permintaan! Tolong jaga agar jalur komunikasi Anda tetap terbuka karena saya mungkin tidak terbiasa dengan bahasa Anda dan saya akan memiliki pertanyaan!
Lihat FontForge: https://fontforge.org/en-us/
Andrew J.Swan untuk bantuan besar dengan karakter Cyrillic.
Awalnya, saya menggunakan Tom Thumb sebagai basis. Mungkin masih ada kemiripan tetapi itu hanya karena hanya ada begitu banyak yang dapat Anda lakukan dengan piksel terbatas seperti itu. Namun demikian, jika Anda tertarik dengan font monospaced 4x6 (3x5), Anda dapat mengklik di sini.
Juga, beberapa inspirasi untuk karakter Korea dipinjam dari font Dalmoori, font hangul pixel yang sangat bagus.
Karakter Cina hampir 100% disalin dari font Boutique Bitmap 7x7, font piksel Cina dan sedikit diregangkan dalam seri-X.