Parte 2: Módulos y AppStore. ESPboy: un gadget para juegos retro y experimentos con IoT

Desde la publicación del primer artículo sobre el dispositivo ESPboy que diseñé en el microcontrolador ESP8266, ha pasado bastante tiempo.





Sin embargo, se hizo algo durante este tiempo:


  1. Lleve el dispositivo a la etapa de producción.
  2. Cree módulos de expansión, escriba software para ellos y depure
  3. WiFi Apple iStore Google play market
  4. Arduboy Arduboy ESPboy
  5. Little Game Engine


Comparación de ESPboy con M5Stack, MeowBit & Dingoo A-320



La soldadura en sí ya estaba harta y logró negociar con los excelentes chinos de www.makerfabs.com , que reunieron un par de docenas de kits de kits semiensamblados para el ensamblaje final independiente. La calidad resultó excelente, por lo que muchas gracias a ellos. Es necesario soldar solo 4 partes para que funcione.



Rápidamente entregó un lote de prueba para pruebas para aquellos que deseen participar en el desarrollo del proyecto, y sería necesario pedir más, pero debe descubrir cómo lidiar con el control de aduanas. Si encuentra varios dispositivos del mismo tipo en un paquete, existe el riesgo de demora y un desmontaje prolongado.



Módulos de expansión y software para ellos.


Luego, logramos recolectar módulos prototipo y escribir para cada software, lo que convierte a ESPboy en un dispositivo completo, como se esperaba. Para hacer esto, simplemente conecte el módulo deseado en la ranura de expansión y actualice el firmware. Fuentes en github .



Hay varias iteraciones más para llevar todos los módulos a la etapa de producción.

Es necesario dibujar placas de circuito impreso, hacer listas verificadas de componentes disponibles y económicos, escribir instrucciones detalladas, organizar todo en forma de ballenas, listo para el montaje y en forma de productos ya ensamblados.

Espero tener tiempo para hacer todo esto antes de fin de año.

Por hoy, las siguientes extensiones están completamente preparadas y depuradas:

  1. Mini teclado completo
  2. Estación Meteo
  3. Reproductor de mp3
  4. Radio FM
  5. Navegador GPS
  6. Módulo DAC para reproducir música.
  7. LORA messenger
  8. Teléfono GSM

También en el trabajo hay algunas ideas más interesantes, espero contarles pronto.

Algunas palabras sobre cada módulo


1. Un mini teclado completo

Basado en el teclado del teléfono inteligente Blackberry Q10, que se controla a través del expansor de puerto MCP23017.



Hay bastante información sobre las señales en el bucle del teclado y la tarea se reduce a pedir el conector + adaptador para el cable y soldar este conector al adaptador. Dado el tamaño del conector de varios milímetros y el tamaño de los contactos literalmente del cabello, la tarea no es fácil.

MCP23017 funciona en i2c y no hubo problemas en el plan de software. Es necesario interrogar la matriz del teclado para buscar contactos cerrados e interpretar correctamente las señales en la disposición del teclado. Los detalles son visibles en los códigos fuente .



2. Estación

meteorológica Qué trabajador arduino no recogió la estación meteorológica. No encontrarás tal cosa en la naturaleza.
Mi versión utiliza un sensor de presión / humedad / temperatura i2c BME280 y también un sensor de CO2 - SGP30 .

Como beneficio adicional: el reloj en tiempo real DC3231 , que también le permite mostrar la hora correcta.

Todavía se pensaba agregar un rayo / sensor de rayos AS3935 , pero un poco caro. Quizas mas tarde.



El módulo en sí resultó ser pequeño, el código está aquí .

Como versión extendida, hice una pieza más grande en la prueba. No me gustó, pero el video del experimento fue preservado.



3. Reproductor de MP3

Usó DFplayer mini mp3 , de la misma manera que se describe en los artículos sobre este módulo .

El único problema con esto es que las personas defectuosas a menudo se encuentran y no trabajan de manera estable o no funcionan en absoluto. El código fuente .

4. Radio FM

Como base, se utilizaron el módulo sintonizador fm SI4703 y una biblioteca ligeramente dopada de mathertel .



La radio suena bastante tolerable en auriculares, la búsqueda de estaciones e incluso RDS funciona. El codigo esta aqui.



5. GPS Navigator No hay lugar

para ir sin navegación. Por lo tanto, por supuesto, decidí armar un módulo adicional para esta tarea.
Utilicé el chip WAVGAT GY-NEO6MV2 con el que no hubo absolutamente ningún problema. Implementado dos ekarana. Uno es el modo de navegación libre, el segundo es el modo de seguimiento al punto desde la memoria. Teóricamente, puedes poner un mapa allí, pero esta es una tarea larga. El código fuente sigue ahí .



5. Módulo DAC para reproducir música

Al desarrollar el emulador ZX Spectrum , surgió la idea de emular su coprocesador musical AY-3-8910. La emulación de software en la dinámica incorporada resultó, pero los costos del procesador para la síntesis de sonido y la calidad dejaron mucho que desear. Al final, Spectrum en ESPboy ganó, pero solo en la versión de 48k sin emulación AY porque incluso había suficiente memoria disponible de extremo a extremo (literalmente, quedaban un par de docenas de bytes por pila).



Sin embargo, gracias a los esfuerzos de Shiru y sus experimentos con el sonido , apareció un módulo DAC para ESPboy y un reproductor PT3 AY-3-8910 Spectrum music.

El módulo se usó en PCM5102 con soporte para la interfaz I2S (no debe confundirse con I2C ). Siempre hay códigos fuente .



7. LORA messenger

No hace mucho tiempo, se ha convertido en una tecnología LORA muy popular : protocolo de transmisión de ahorro de energía de paquetes cortos de datos por aire a largas distancias. Rebusqué y descubrí transceptores económicos de EBYTE .

Y a máxima potencia, se tambalean hasta 8 km en la línea de visión. Aquí debe comprender que los obstáculos en forma de terreno y desarrollo urbano reducen drásticamente este indicador, bueno, también el ruido urbano. Sin embargo, en condiciones suburbanas, o si caen satélites con torres GSM, por ejemplo, este es un excelente canal de comunicación. Los experimentos resultaron en la creación de un módulo de chat completo en el aire. El módulo en sí cifra el paquete, pero también estoy en la parte superior como una opción AES (esto está deshabilitado de forma predeterminada).

Tuve quePara confundirme con la biblioteca debajo del transceptor porque los existentes tenían errores o no entendía cómo funcionaban.





8. Teléfono hacker GSM

Después de encontrarme con el diseñador de teléfonos Ringo (anteriormente Maker Phone) en la red , me sorprendió mucho el precio y la complejidad. Tener experiencia con los conocidos SIM800 módulos de SimCom, rápidamente regados mi teléfono.

Por supuesto, no es tan conveniente como los teléfonos inteligentes modernos favoritos de todos, pero no espía ni roba tus contactos.





El software escrito admite el mínimo necesario:

  • Visualización de la hora actual
  • Contestar llamadas y soltar llamadas
  • Marcando un número
  • Recibe y envía SMS

Además, la pantalla muestra toda la información de servicio sobre el funcionamiento del transceptor GSM. Solicitudes y respuestas de estaciones base y el infierno sabe qué más. No soy especial, pero es interesante verlo.

Como beneficio adicional, puede ingresar comandos AT de bajo nivel para controlar el transceptor, como en los viejos tiempos de los módems de acceso telefónico, y estos comandos son 600 páginas en la documentación de SimCom . Bien que un campo de investigación para verdaderos hackers de sombrero blanco.

Tienda de aplicaciones ESPboy - Catálogo de aplicaciones en línea


Al estudiar la documentación de ESP8266 y recordar sobre WiFi a bordo, me sorprendió especialmente la capacidad de actualizar su firmware a través de http / https , es decir, a través de la red. Teniendo en cuenta que la programación de microcontroladores es una tarea problemática, y la actualización del firmware es casi siempre hemorroides, realmente quería cambiar esto.

¿Cómo se ve la actualización de firmware para el microcontrolador de la manera habitual?

  1. Si USB-TTL está integrado, considérese afortunado. Y si no, entonces debe buscar un convertidor USB-TTL separado y descubrir cómo conectarse
  2. Conecte el dispositivo con un cable a la computadora y configure el controlador
  3. Instalar Arduino IDE
  4. Instale la extensión ESP8266 bajo Arduino IDE
  5. Descargar el código fuente
  6. Para comprender qué bibliotecas se utilizan allí y qué versiones (que nunca es obvio)
  7. Busque y descargue todas las bibliotecas de las versiones necesarias e instálelas (y esto, en principio, no siempre es posible)
  8. Maneje las opciones de compilación, configúrelas (lo que tampoco es obvio)
  9. Si finalmente lograste compilar, obtén un montón de errores
  10. Realiza bailes con panderetas, resolviendo errores de compilación (a veces esto sucede más de un día, e incluso con kalachs rallados a veces se ponen nerviosos)

Está claro que es difícil para los principiantes dominar tal búsqueda y este es un obstáculo crítico al ingresar al tema de la programación de microcontroladores, rotobotecnia y otras cosas similares.

¿Y cómo se puede cambiar esto?

El catálogo de aplicaciones en línea reduce la tarea de actualizar el firmware a los siguientes pasos simples:

  1. Seleccione una red WiFi de la lista
  2. Seleccione una aplicación de la lista
  3. Espera medio minuto

Bueno, ¿no es belleza y felicidad!

Aquí está el código fuente de la parte del cliente para conectarse y disfrutar .



Puerto de la biblioteca Arduboy2


Hace aproximadamente un año, después de haber diseñado ESPboy y haberlo probado con gran poder, se encontró con un proyecto comercialmente exitoso de Arduboy .

Según este maravilloso dispositivo, resultó que no se escribieron algunos juegos geniales de código abierto, y una comunidad amigable se está desarrollando hasta el día de hoy.

El desarrollo de juegos para Arduboy se basa en la biblioteca lib Arduboy2 .

Después de portar esta biblioteca a ESPboy, fue posible recompilar docenas de juegos geniales con Arduboy con ajustes mínimos de código.

Las fuentes de la biblioteca, los juegos portados y las instrucciones sobre cómo portar cualquier cosa, desde Arduboy a ESPboy, nuevamente en github.



Nuevos juegos en Little Game Engine


Paralelamente al proyecto ESPboy, el proyecto de fantasía de la consola Little Game Engine se está desarrollando intensamente .

El trabajo de los juegos realizados en Little Game Engine cuenta con el respaldo de ESPboy e Igor, el autor del motor, no deja de complacernos con nuevos lanzamientos .

El desarrollo de estos juegos es simple y directo, y también es accesible para cualquiera que lo desee a través del entorno de desarrollo (IDE), que se ejecuta en cualquier navegador y tiene un compilador y emulador incorporado .

Las fuentes del juego están abiertas, visibles en el IDE al elegir un juego, y están disponibles para edición y experimentación. Para jugar, debe seleccionar "compilar" sobre el código del juego, y luego hacer clic en el icono "jugar" en el lado izquierdo de la ventana del emulador. La descripción "C" de dicho lenguaje LGE también es muy detallada.

El código fuente del motor en sí también está disponible para su revisión.



Por lo tanto, el trabajo en el proyecto continúa.

Todavía hay muchas cosas interesantes. Y la adición de nuevos elementos del ecosistema ESPboy y la integración más completa de los componentes existentes para simplificar el trabajo con el dispositivo, tanto para usuarios como para desarrolladores.



Gracias a todos los que contribuyen al proyecto: Dmitry (Plague) , Alexander (Shiru) , Mikhail G.,
Igor (Corax) , Alex (AlRado) , Mikhail (Torabora), Andrey S. , George P., Roman (orsweb ) , Scott (MLXXXP) , Haroldo (Haroldo-OK) , John E , Marcus de Verdier , Loopingstar , AccidentalRebel y muchos otros que juegan, leen, prueban, codifican, transmiten, aconsejan, etc.

Todo bien y éxito creativo!

Saludos,
romanos

All Articles