Gostaria de comprar uma tela LCD do Arduino para exibir alguns resultados de uma chamada http da Web; a API da Web retorna um texto JSON codificado em UTF-8.
Eu li que a UTI é o caminho a seguir para lidar com Unicode em programas C / C ++ para Arduino.
Minhas perguntas:
poderei exibir caracteres UTF-8 para esse tipo de tela ?
Existem telas LCD de caracteres (acessíveis) capazes de exibir caracteres UTF-8?
Respostas:
Eu não estou muito familiarizado com o Arduino, mas vamos dar uma olhada na perspectiva do LCD.
Praticamente todos os LCDs de caracteres populares usam o controlador HD44780 atualmente (é isso que LiquidCrystal biblioteca suporta). Este controlador não suporta UTF-8 diretamente, cada caractere é representado por um único byte.
Portanto, você precisa converter manualmente os caracteres UTF-8 para 8 bits. O controlador possui um gerador de caracteres interno com 208 caracteres 5x8 e 32 caracteres 5x10, além de até 8 caracteres definidos pelo usuário (consulte createChar ). Você precisa mapear todos os caracteres de entrada para um dos caracteres predefinidos / personalizados - obviamente, você pode exibir apenas um subconjunto de caracteres UTF8; você precisa decidir quais caracteres deseja / pode exibir.
A conversão em si deve ser bem direta - basta iterar sobre a string UTF8, mapeando cada caractere para um único byte. Provavelmente, você desejará usar uma tabela de pesquisa para simplificar. Deixe-me saber se isso precisa de mais explicações.
fonte
O Unicode é complicado e grande, na sua totalidade é grande demais para um Arduino. Na versão atual, existem no total mais de 100000 caracteres, incluindo cuneiforme, hieróglifo, klingon e sem mencionar muitos milhares de caracteres chineses.
Portanto, se você realmente deseja mostrar alguns caracteres Unicode em um Arduino:
Obtenha uma exibição gráfica. O que você mencionou é uma exibição de caracteres, só pode mostrar um conjunto fixo de 256 caracteres.
Defina um pequeno subconjunto de caracteres que você deseja manipular. Existem alguns subconjuntos predefinidos, por exemplo, os subconjuntos europeus multilíngues têm uma boa aparência.
Obtenha algumas fontes e reduza-as para o conjunto necessário. Observe que até a exibição pode ser muito mais complicada do que a que você está acostumado no ASCII, devido à combinação de caracteres, escrita bidirecional e outras coisas. Provavelmente, o melhor é manter os caracteres latinos sem acentos combinados. Cirílico e grego também devem estar bem, assim como qualquer coisa que seja uma sequência simples de caracteres da esquerda para a direita.
Talvez você possa usar alguma memória externa para armazenar as fontes.
Depois, há muitos outros tópicos dos quais você provavelmente não precisa, por exemplo, classificação e pesquisa, consulte o padrão Unicode e seus anexos (é grande!).
Esqueça a UTI, ele precisa de megabytes de memória.
fonte