Me gustaría comprar una pantalla LCD de Arduino para mostrar algunos resultados de una llamada http web; la API web devuelve un texto JSON codificado en UTF-8.
He leído que ICU es el camino a seguir para manejar Unicode en programas C / C ++ para Arduino.
Mis preguntas:
¿Podré mostrar caracteres UTF-8 en este tipo de pantalla ?
¿Hay pantallas LCD de caracteres (asequibles) capaces de mostrar caracteres UTF-8?
Respuestas:
No estoy muy familiarizado con Arduino, pero veámoslo desde la perspectiva de la pantalla LCD.
Prácticamente todos los LCD de caracteres populares usan el controlador HD44780 en estos días (eso es lo que admite la biblioteca LiquidCrystal ). Este controlador no admite UTF-8 directamente, cada carácter está representado por un solo byte.
Por lo tanto, debe convertir UTF-8 a caracteres de 8 bits manualmente. El controlador tiene un generador de caracteres incorporado con 208 5x8 y 32 5x10 caracteres, más hasta 8 caracteres definidos por el usuario (consulte createChar ). Debe asignar cada carácter de entrada a uno de los caracteres predefinidos / personalizados; obviamente, solo puede mostrar un subconjunto de caracteres UTF8, debe decidir qué caracteres desea / puede mostrar.
La conversión en sí debería ser bastante sencilla: solo necesita iterar sobre la cadena UTF8, asignando cada carácter a un solo byte. Lo más probable es que desee utilizar tablas de búsqueda para que sea simple. Avíseme si esto necesita más explicaciones.
fuente
Unicode es complicado y grande, en su totalidad es demasiado grande para un Arduino. En la versión actual hay en total más de 100000 caracteres, incluidos cuneiformes, jeroglíficos, klingon, y sin mencionar muchos miles de caracteres chinos.
Entonces, si realmente quieres mostrar algunos caracteres Unicode en un Arduino:
Obtenga una pantalla gráfica. El que menciona es una pantalla de caracteres, solo puede mostrar un conjunto mayormente fijo de 256 caracteres.
Defina un pequeño subconjunto de caracteres que desea manejar. Hay algunos subconjuntos predefinidos, por ejemplo, los subconjuntos europeos multilingües se ven bien.
Obtenga algunas fuentes y quítelas al conjunto que necesita. Tenga en cuenta que incluso la visualización puede ser mucho más complicada de lo que está acostumbrado en ASCII, debido a la combinación de caracteres, escritura bidireccional y demás. Lo mejor es, probablemente, apegarse a los caracteres latinos sin combinar acentos. El cirílico y el griego también deberían estar bien, al igual que cualquier cosa que sea una simple secuencia de caracteres de izquierda a derecha.
Tal vez podría usar un poco de memoria externa para almacenar las fuentes.
Luego, hay muchos otros temas que probablemente no necesite, por ejemplo, ordenar y buscar, ver el estándar Unicode y sus anexos (¡es grande!).
Olvídese de la UCI, necesita megabytes de memoria.
fuente