ฟอนต์ที่จะใช้กับนาฬิกาเมทริกซ์ LED และโครงการเมทริกซ์ LED อื่น ๆ
แบบอักษรเหล่านี้ได้รับการออกแบบโดยคำนึงถึงนาฬิกาเมทริกซ์ LED โดยเฉพาะอย่างยิ่งหน่วยที่ใช้ EspHoMaTriXv2 หรือ EspHome-Led-PixelClock พวกเขาเป็นฟอนต์ BDF และ TTF ดังนั้นพวกเขาจึงสามารถนำไปใช้โดยตรงกับ Esphome (และอาจเป็น Arduino)
เนื่องจากสิ่งเหล่านี้เป็นแบบอักษรบิตแมปขนาดของแบบอักษรเหล่านี้จึงถูกกำหนดพิกเซล พวกเขาไม่สามารถปรับขนาดได้ นี่เป็นสิ่งที่ดี
ตัวละครส่วนใหญ่จะกว้าง 3 พิกเซล แต่ตัวละครบางตัวเช่น G และ M และ & กว้างกว่า ตัวอักษรเครื่องหมายวรรคตอนโดยทั่วไปมีความกว้าง 1 หรือ 2 พิกเซล อักขระทั้งหมดมีคอลัมน์ว่าง 1 คอลัมน์ทางด้านขวายกเว้นพื้นที่ซึ่งเป็น 2 พิกเซลอย่างแน่นอนยัติภังค์ unicode บางตัวและบางทีอักขระละตินที่เน้น Ognok บางตัว
ฉันจะเพิ่มอักขระลงในแบบอักษรต่อไปเนื่องจากฉันมีเวลา หากคุณต้องการให้ภาษาของคุณมีความสำคัญหรือหากคุณต้องการเพิ่มตัวละครบางตัวให้เปิดปัญหาและฉันจะเห็นสิ่งที่ฉันสามารถทำได้
เหมาะเมื่อใช้ความสูงเต็มรูปแบบของเมทริกซ์ 8 แถว
ทุกอย่างใหญ่และบล็อก - ดูดีเป็นหน้าจอเวลา

[BDF ดาวน์โหลด | TTF ดาวน์โหลด]
ด้านล่างพื้นฐานมักจะสงวนไว้สำหรับหาง แต่ด้วยแบบอักษร 'x' ไม่มีพื้นฐาน - ทุกอย่างใช้พิกเซล 8 แถวเต็ม

[BDF ดาวน์โหลด | TTF ดาวน์โหลด]
ตัวละครส่วนใหญ่มีความสว่างและเก๋ไก๋

[BDF ดาวน์โหลด | TTF ดาวน์โหลด]
เบาและเก๋ไก๋ใน 8 แถวเต็ม - อันนี้ดูดีมากบนหน้าจอข้อมูล!

[BDF ดาวน์โหลด | TTF ดาวน์โหลด]
เหมาะเมื่อใช้วงดนตรีวันธรรมดาภายใต้เวลาบนเมทริกซ์ 8 แถว
โปรดทราบว่ามีตัวละครที่เน้นเสียงจำนวนมากในแบบอักษรที่ไม่ใช่ X ถูกผลักไปด้านล่างพื้นฐานเพื่อให้ดูแย่ลงเล็กน้อย
ทุกอย่างใหญ่และบล็อก

[BDF ดาวน์โหลด | TTF ดาวน์โหลด]
ใหญ่และบล็อกใน 6 แถวเต็ม

[BDF ดาวน์โหลด | TTF ดาวน์โหลด]
เบาและเก๋ไก๋

[BDF ดาวน์โหลด | TTF ดาวน์โหลด]
เบาและเก๋ไก๋ใน 6 แถวเต็ม

[BDF ดาวน์โหลด | TTF ดาวน์โหลด]
เพื่อลดพื้นที่ที่ตัวอักษรใช้ในระหว่างการรวบรวมโปรดใช้รหัสดังกล่าว:
font:
- file: fonts/MatrixLight6.bdf
id: special_font
glyphs: |
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz°
หากใช้ไฟล์ TTF คุณต้องระบุขนาดตัวอักษร:
font:
- file: fonts/MatrixLight8.ttf
id: default_font
glyphs: |
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz°
size: 8
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¦§©ª«®°±²³´µ¶¥·¹º»¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
เนื่องจากข้อบกพร่องของ BDF-pillow (ดูด้านล่าง) ฉันจึงสร้างตัวละคร "ไร้ประโยชน์" สองสามตัวในภาษาละตินขยาย-ดูเหมือนอย่างอื่น คุณยังสามารถใช้ไฟล์ BDF ได้หากคุณใช้อักขระพิเศษเหล่านี้ในรายการ Glyphs และใน Home Assistant
¨¬¯¸¼½¾
| อักขระ | ปรากฏเป็น |
|---|---|
¨ | ₿ bitcoin |
¸ | ξ Ethereum |
¬ | ℃องศา C |
¯ | ℉องศา f |
¼ | ยูโร€ |
½ | ₩ชนะ |
¾ | ₴ Hryvnia |
ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ
АаБбВвГ㥴ДдЕеЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЮюЯя
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΤΥΦΧΨΩΆΈΉΊΌΎΏΪΫαβγδεζηθικλμνξοπρςστυφχψωάέήίϊϋόύώ
หมายเหตุสิ่งเหล่านี้ยังไม่ได้รับการทดสอบโดยคนกรีกจริง โปรดแจ้งให้เราทราบว่าพวกเขาโอเค!
เวียดนามใช้ตัวละครเหล่านี้อยู่แล้วในชุดละตินขั้นพื้นฐานและชุดขยาย:
ABCDEGHIKLMNOPQRSTUVXYabcdeghiklmnopqrstuvxyÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚÝàáâãèéêìíòóôõùúýĂăĐđĨĩŨũ
เช่นเดียวกับสิ่งเหล่านี้:
ƠơƯưẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹ
หมายเหตุสิ่งเหล่านี้ไม่ได้ผ่านการทดสอบโดยคนเวียดนามที่แท้จริง โปรดแจ้งให้เราทราบว่าพวกเขาโอเค! ตัวละครจำนวนมากใน Chunky8 (และบางตัวใน Light8) จะต้องถูกผลักไปด้านล่างพื้นฐานเพื่อให้สำเนียงเป็นไปได้ แบบอักษร 8x อาจโอเค ฉันสงสัยว่าเสียงสระที่มีเขาหรือจุดนั้นอ่านง่ายจริง ๆ หรือไม่
โปรดทราบว่าอักขระเหล่านี้กว้างกว่าอักขระมาตรฐานมากเนื่องจากหางพนักงานและเส้นโค้งมีความสำคัญต่อ IPA พวกเขาส่วนใหญ่ขึ้นอยู่กับสไตล์ Light8 และเหมือนกันในแบบอักษร 8 ชุดทั้งหมด
IPA ส่วนใหญ่ใช้อักขระเหล่านี้:
ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɪɫɬɭɮɯɰɱɲɳɴɵɶɸɹɺɻɼɽɾɿʀʁʂʃʄʅʈʉʊʋʌʍʎʏʐʑʒʔʕʘʙʚʛʜʝʟʡʢ
หากคุณไม่สามารถแสดงอักขระทั้งหมดขึ้นอยู่กับความต้องการของคุณคุณสามารถลองเพิ่มอักขระที่ล้าสมัย:
ɩɷʆʇʓʖʗʞʠʣʤʥʦʧʨ
อาจเป็นตัวละครคำพูดที่ไม่เป็นระเบียบ:
ʩʪʫʬʭ
และในที่สุดการเพิ่มเติมสำหรับ sinology:
ʮʯ
오후전일월화수목금토요
一二三四五六天七八九十星期月上下午
โปรดทราบว่า上下午ถูกบดเล็กน้อยเพื่อให้สามารถแสดงผลของ上午 & 下午ได้ง่ายขึ้น
พื้นที่ปกติ (ตามที่มีอยู่ในคีย์บอร์ดส่วนใหญ่) มีความกว้าง 2 พิกเซล นี่คือช่องว่างอื่น ๆ ที่มีอยู่
| ช่องว่าง | ชื่อ | ยูนิคอด | ความกว้าง |
|---|---|---|---|
| พื้นที่บาง | U+2009 | 1 พิกเซล |
| พื้นที่ | U+2002 | 3 พิกเซล |
| อวกาศ | U+2003 | 4 พิกเซล |
ในกรณีที่ช่องว่างเหล่านั้นไม่ได้ใช้กับคุณ (พวกเขามองไม่เห็นและ Esphome น่าจะถือว่าเป็นช่องว่าง) นี่คือช่องว่างอื่น ๆ ที่ใช้งานโดยใช้ชุดหมายเลขที่ล้อมรอบ Unicode
⓪①②③④⑤⑥⑦⑧⑨⑩
| ช่องว่าง | ชื่อ | ยูนิคอด | ความกว้างของอวกาศ |
|---|---|---|---|
⓪ | วงกลม 0 | u+24ea | 0 พิกเซล |
① | วงกลม 1 | U+2460 | 1 พิกเซล |
② | วงกลม 2 | U+2461 | 2 พิกเซล |
③ | วงกลม 3 | U+2462 | 3 พิกเซล |
④ | วงกลม 4 | U+2463 | 4 พิกเซล |
⑤ | วงกลม 5 | U+2464 | 5 พิกเซล |
⑥ | วงกลม 6 | U+2465 | 6 พิกเซล |
⑦ | วงกลม 7 | U+2466 | 7 พิกเซล |
⑧ | วงกลม 8 | U+2467 | 8 พิกเซล |
⑨ | วงกลม 9 | U+2468 | 9 พิกเซล |
⑩ | วงกลม 10 | U+2469 | 10 พิกเซล |
Hypen-Minus ปกติ (ตามที่มีอยู่ในคีย์บอร์ดส่วนใหญ่) มีความกว้าง 3 พิกเซลบวกกับพื้นที่ นี่คือเครื่องหมายวรรคตอนอื่น ๆ ที่มีอยู่
‐–—―•
| เครื่องหมาย | ชื่อ | ยูนิคอด | ความกว้าง |
|---|---|---|---|
‐ | สะกดจิต | U+2010 | กว้าง 1 พิกเซลไม่มีที่ว่าง |
– | en hypen | U+2013 | 2 พิกเซลกว้าง + พื้นที่ |
— | ยัติภังค์ | U+2014 | 4 พิกเซลกว้าง + พื้นที่ |
― | แถบแนวนอน | U+2015 | กว้าง 4 พิกเซลไม่มีที่ว่าง |
• | กระสุนปืน | U+2022 | พื้นที่กว้าง 1 พิกเซล + |
₡₢₦₩₪₫€₭₮₱₲₴₵₸₹₺₼₽₾₿
℃℉
หนึ่งในตัวละครเหล่านี้อาจปรากฏขึ้นหากตัวละครที่คุณเรียกร้องไม่สามารถใช้งานได้
| รูปร่าง | ชื่อ | ยูนิคอด |
|---|---|---|
![]() | โมฆะ | u+0000 |
![]() | กล่องสีขาว | U+25A1 |
![]() | ตัวละครที่ไม่รู้จัก | u+fffd |
โปรดทราบว่าการเพิ่มพวกเขาลงในรายการร่ายมนตร์ใน Esphome ดูเหมือนจะไม่ช่วยเมื่อพยายามแสดงตัวละครที่ไม่รู้จักจริง ๆ (นาฬิกาของฉันเพิ่งวาดบล็อกกว้าง) แต่นี่คือสองสิ่งหลัง (Null ไม่สามารถใช้งานได้ด้วยวิธีนี้):
□�
อักขระใด ๆ ที่รวมอยู่ในรายการ Glyphs ที่ไม่ได้อยู่ในตัวอักษรจะทำให้ Esphome เกิดข้อผิดพลาดเมื่อรวบรวม อักขระใด ๆ ที่ร้องขอไม่รวมอยู่ในรายการ Glyphs ควรส่งผลให้เกิดข้อผิดพลาดและ/หรือบล็อกหรือว่างเปล่าที่แสดงโดยนาฬิกาของคุณ
โปรดทราบว่ามีขีด จำกัด 256 อักขระที่สามารถใช้งานได้ นี่คือขีด จำกัด ที่กำหนดโดยหมอนการพึ่งพา Python ที่แปลงฟอนต์เป็นบิตแมปที่ใช้งานได้โดย Esphome หากรายการร่ายมนตร์ของคุณยาวขึ้นอักขระใด ๆ ที่เกินขีด จำกัด นั้นจะไม่ปรากฏขึ้น
UnicodeEncodeError: 'latin-1' codec can't encode character 'u0416' in position 0: ordinal not in range(256)
ข้อผิดพลาดนี้เกี่ยวข้องกับวิธีการที่หมอนตีความไฟล์ฟอนต์ BDF ว่าอยู่ใน CodePage LATIN-1 หากรายการอักขระไม่ตรงกับสิ่งที่คาดหวัง เนื่องจากส่วนหนึ่งของหมอนนั้นค่อนข้างเก่าจึงดูเหมือนจะไม่มีความสนใจในการแก้ไขเพื่อให้ตรงกับมาตรฐาน UTF ดังนั้นหากคุณต้องการใช้อักขระ Unicode (สิ่งใดที่อยู่นอก Latin Basic และ Extended-A) คุณต้องใช้ไฟล์ TTF แทน
ไฟล์ TTF เหล่านี้ไม่สามารถใช้งานได้โดย Windows เนื่องจากมีบิตแมปเท่านั้น พวกเขายังไม่ได้มีประโยชน์มากเมื่อแก้ไขแบบอักษร ดังนั้นไฟล์ BDF จะถูกพิจารณาว่าเป็นไฟล์ต้นแบบเสมอ
เมื่อใช้ Esphomatrix ตรวจสอบว่านี่อยู่ใน Yaml ของคุณ (แก้ไขตามต้องการ):
ehmtxv2:
default_font_id: default_font
default_font_yoffset: 6
special_font_id: special_font
special_font_yoffset: 8
โปรดทราบว่า Yoffset อาจเป็นเรื่องยุ่งยาก คุณควรใช้ตัวเลขที่สอดคล้องกับพื้นฐานของตัวอักษร สำหรับแบบอักษรเหล่านี้ไม่มีอะไรอยู่ใต้พื้นฐานของแบบอักษร ฉันได้ออกแบบฟอนต์เพื่อให้แบบอักษรที่ไม่ใช่ X ถูกยกขึ้น 1 พิกเซลเหนือระดับพื้นฐานเพื่อให้หางปรากฏอย่างถูกต้อง
หากคุณต้องการเพิ่มตัวละครให้เปิดปัญหาให้ทำคำขอ! โปรดเปิดสายการสื่อสารของคุณไว้เพราะฉันไม่คุ้นเคยกับภาษาของคุณและฉันจะมีคำถาม!
ตรวจสอบ Fontforge: https://fontforge.org/en-us/
Andrew J.Swan สำหรับความช่วยเหลืออย่างมากกับตัวละครซีริลลิก
เดิมทีฉันใช้ Tom Thumb เป็นฐาน อาจมีความคล้ายคลึงกัน แต่นั่นเป็นเพราะมีเพียงมากมายที่คุณสามารถทำได้ด้วยพิกเซลที่ จำกัด เช่นนี้ อย่างไรก็ตามหากคุณสนใจแบบอักษร monospaced 4x6 (3x5) คุณสามารถคลิกที่นี่
นอกจากนี้แรงบันดาลใจบางอย่างสำหรับตัวละครเกาหลีก็ยืมมาจาก Dalmoori Font ซึ่งเป็นแบบอักษร Hangul Pixel ที่ดีมาก
ตัวละครจีนเกือบ 100% คัดลอกมาจากฟอนต์ Boutique Bitmap 7x7 แบบอักษรพิกเซลจีนและยืดออกไปเล็กน้อยในซีรีย์ X