Fontes para serem usadas com relógios de matriz LED e outros projetos de matriz LED
Essas fontes são projetadas com relógios de matriz LED em mente, especialmente uma unidade que usa EspHoMaTriXv2 ou EspHome-Led-PixelClock . Eles são fontes BDF e TTF, para que possam ser implementadas diretamente com o Esfome (e talvez Arduino).
Como essas são fontes de bitmap, o tamanho dessas fontes é fixado em pixels. Eles não são redimensionáveis. Isso é uma coisa boa.
A maioria dos personagens terá 3 pixels de largura, mas certos personagens como G e M e & são mais largos. Os caracteres de pontuação geralmente têm 1 ou 2 pixels de largura. Todos os caracteres têm 1 coluna vazia no lado direito, exceto o espaço que é exatamente 2 pixels, certos hífens Unicode e talvez alguns caracteres latinos com compensação de Ognok.
Continuarei adicionando caracteres às fontes, pois tenho tempo. Se você deseja que seu idioma seja uma prioridade ou se precisar de alguns personagens adicionados, abra um problema e verei o que posso fazer.
Adequado ao usar a altura total de uma matriz de 8 linhas
Tudo grande e blocky - parece ótimo como uma tela de tempo

[BDF Download | Download de TTF]
Abaixo da linha de base, geralmente é reservado para caudas, mas com as fontes 'x', não há linha de base - tudo leva as 8 linhas de pixels completas

[BDF Download | Download de TTF]
A maioria dos personagens foi iluminada e estilizada

[BDF Download | Download de TTF]
Iluminado e estilizado em 8 linhas completas - esta parece realmente boa em telas de informações!

[BDF Download | Download de TTF]
Adequado ao usar uma banda durante a semana embaixo do tempo em uma matriz de 8 linhas
Observe que muitos caracteres acentuados nas fontes não-X foram empurrados abaixo da linha de base para torná-los um pouco menos terríveis.
Tudo grande e blockyy

[BDF Download | Download de TTF]
Grande e Blocky em 6 linhas completas

[BDF Download | Download de TTF]
Iluminado e estilizado

[BDF Download | Download de TTF]
Iluminado e estilizado em 6 linhas completas

[BDF Download | Download de TTF]
Para reduzir o espaço que a fonte ocupa durante a compilação, use o código como tal:
font:
- file: fonts/MatrixLight6.bdf
id: special_font
glyphs: |
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz°
Se estiver usando um arquivo TTF, você deve especificar o tamanho da fonte:
font:
- file: fonts/MatrixLight8.ttf
id: default_font
glyphs: |
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz°
size: 8
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¦§©ª«®°±²³´µ¶¥·¹º»¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
Por causa da falha de pillo de BDF (veja abaixo), fiz alguns personagens "inúteis" no latim se estenderam-parecendo outra coisa. Você ainda pode usar um arquivo BDF se usar esses caracteres especiais na lista Glyphs e no Home Assistant.
¨¬¯¸¼½¾
| Personagem | Aparece como |
|---|---|
¨ | ₿ Bitcoin |
¸ | Ξ Ethereum |
¬ | ℃ Grau c |
¯ | ℉ Grau f |
¼ | € Euro |
½ | ₩ ganhou |
¾ | ₴ Hryvnia |
ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ
АаБбВвГ㥴ДдЕеЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЮюЯя
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΤΥΦΧΨΩΆΈΉΊΌΎΏΪΫαβγδεζηθικλμνξοπρςστυφχψωάέήίϊϋόύώ
Observe que estes não foram testados por uma pessoa grega de verdade. Por favor, deixe -me saber se eles estão bem!
O vietnamita usa esses personagens, já presentes nos conjuntos básicos de latim e estendido A:
ABCDEGHIKLMNOPQRSTUVXYabcdeghiklmnopqrstuvxyÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚÝàáâãèéêìíòóôõùúýĂăĐđĨĩŨũ
Bem como estes:
ƠơƯưẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹ
Observe que eles não foram testados por uma pessoa de verdade no vietnamita. Por favor, deixe -me saber se eles estão bem! Muitos personagens em Chunky8 (e alguns no Light8) tiveram que ser empurrados abaixo da linha de base para tornar o sotaque possível. As fontes 8x provavelmente estão bem. Eu me pergunto se as vogais com chifres ou pontos são realmente legíveis (particularmente os O's nas posições 7896 a 7907).
Observe que esses personagens são muito mais amplos que os caracteres padrão, porque caudas, equipes e curvas são muito importantes para o IPA. Eles são baseados principalmente no estilo Light8 e são idênticos em todas as fontes da Série 8.
O IPA usa principalmente esses personagens:
ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɪɫɬɭɮɯɰɱɲɳɴɵɶɸɹɺɻɼɽɾɿʀʁʂʃʄʅʈʉʊʋʌʍʎʏʐʑʒʔʕʘʙʚʛʜʝʟʡʢ
Se você não conseguir exibir todos os personagens, dependendo de suas necessidades, tente adicionar os personagens obsoletos:
ɩɷʆʇʓʖʗʞʠʣʤʥʦʧʨ
Possivelmente os personagens desordenados de fala:
ʩʪʫʬʭ
E, finalmente, as adições para a sinologia:
ʮʯ
오후전일월화수목금토요
一二三四五六天七八九十星期月上下午
Observe que 上下午 está um pouco esmagado para permitir a exibição de 上午 & 下午 mais facilmente.
O espaço regular (disponível na maioria dos teclados) tem 2 pixels de largura. Aqui estão alguns outros espaços disponíveis.
| Espaço | Nome | Unicode | Largura |
|---|---|---|---|
| Espaço fino | U+2009 | 1 pixel |
| No espaço | U+2002 | 3 pixels |
| EM Space | U+2003 | 4 pixels |
Caso esses espaços não sejam utidos para você (eles são invisíveis e o Esfome provavelmente os tratará como espaços), aqui estão alguns outros espaços disponíveis usando o conjunto de números circundados por unicode.
⓪①②③④⑤⑥⑦⑧⑨⑩
| Espaço | Nome | Unicode | Largura do espaço |
|---|---|---|---|
⓪ | Circled 0 | U+24ea | 0 pixels |
① | Circular 1 | U+2460 | 1 pixel |
② | Circled 2 | U+2461 | 2 pixels |
③ | Circled 3 | U+2462 | 3 pixels |
④ | Circled 4 | U+2463 | 4 pixels |
⑤ | Circled 5 | U+2464 | 5 pixels |
⑥ | Circled 6 | U+2465 | 6 pixels |
⑦ | Circled 7 | U+2466 | 7 pixels |
⑧ | Circled 8 | U+2467 | 8 pixels |
⑨ | Circled 9 | U+2468 | 9 pixels |
⑩ | Circular 10 | U+2469 | 10 pixels |
O Hypen-minus regular (disponível na maioria dos teclados) tem 3 pixels de largura e um espaço. Aqui estão algumas outras pontuações disponíveis.
‐–—―•
| Marca | Nome | Unicode | Largura |
|---|---|---|---|
‐ | Hipen | U+2010 | 1 pixel de largura, sem espaço |
– | En hipen | U+2013 | 2 pixels de largura + espaço |
— | Em hífen | U+2014 | 4 pixels de largura + espaço |
― | Barra horizontal | U+2015 | 4 pixels de largura, sem espaço |
• | Bala | U+2022 | 1 pixel largo + espaço |
₡₢₦₩₪₫€₭₮₱₲₴₵₸₹₺₼₽₾₿
℃℉
Um desses personagens pode aparecer se o personagem que você chama não estiver disponível.
| Aparência | Nome | Unicode |
|---|---|---|
![]() | Nulo | U+0000 |
![]() | Caixa branca | U+25a1 |
![]() | Caráter desconhecido | U+fffd |
Observe que adicioná -los à lista de glifos em um espelu não parece ajudar ao tentar exibir um personagem realmente desconhecido (meu relógio apenas pinta um bloqueio amplo), mas aqui estão os dois últimos (NULL não é utilizável dessa maneira):
□�
Quaisquer caracteres incluídos na lista de glifos que não estejam na fonte farão com que o Esfome seja o erro ao compilar. Qualquer caractere solicitado não incluído na lista Glyphs deve resultar em um erro e/ou em um bloco ou em branco sendo exibido pelo seu relógio.
Observe também que há um limite de 256 caracteres que podem ser usados. Este é um limite rígido definido pelo travesseiro, uma dependência do Python que converte fontes em bitmaps utilizáveis pelo Esfome. Se sua lista de glifos for mais longa, qualquer caractere além desse limite simplesmente não será exibido.
UnicodeEncodeError: 'latin-1' codec can't encode character 'u0416' in position 0: ordinal not in range(256)
Esse erro tem a ver com a maneira como o travesseiro interpreta um arquivo de fonte BDF como estando no Latin-1 CodePage se a lista de caracteres não corresponder ao que espera. Como essa parte do travesseiro é bastante antiga, parece não haver interesse em consertá -lo para corresponder aos padrões da UTF. Portanto, se você deseja usar caracteres Unicode (qualquer coisa fora do Latin Basic e Extended-A), deve usar um arquivo TTF.
Esses arquivos TTF não são utilizados pelo Windows, pois incluem apenas bitmaps. Eles também não são muito úteis ao editar a fonte. Portanto, os arquivos BDF sempre serão considerados como arquivos mestre.
Ao usar o Esphomatrix, verifique se isso está no seu YAML (editar conforme necessário):
ehmtxv2:
default_font_id: default_font
default_font_yoffset: 6
special_font_id: special_font
special_font_yoffset: 8
Observe que Yoffset pode ser complicado. Você deve usar um número que corresponda à linha de base da fonte. Para essas fontes, na verdade não há nada abaixo da linha de base da fonte; Eu projetei as fontes para que as fontes não-X sejam realmente elevadas 1 pixel acima da linha de base para que as caudas apareçam corretamente.
Se você deseja que um personagem seja adicionado, abra um problema, faça uma solicitação! Por favor, mantenha suas linhas de comunicação abertas porque provavelmente não estou familiarizado com o seu idioma e terei perguntas!
Confira Fontforge: https://fontforge.org/en-us/
Andrew J.Swan para obter uma grande ajuda com personagens cirílicos.
Originalmente, usei Tom Thumb como base. Ainda pode haver alguma semelhança, mas isso é apenas porque há muito que você pode fazer com pixels tão limitados. No entanto, se você estiver interessado em uma fonte monoescada 4x6 (3x5 utilizável), poderá clicar aqui.
Além disso, alguma inspiração para os personagens coreanos foi emprestada da fonte Dalmoori, uma fonte muito agradável de Hangul Pixel.
Os caracteres chineses são quase 100% copiados da fonte Boutique Bitmap 7x7, uma fonte de pixels chineses e se estendeu um pouco na série X.