DICE10 - Un molde electrónico miniaturizado basado en ATtiny10 - Calendae - Calendae | Informática, Electrónica, CMS, Ciberseguridad

DICE10 – Un molde electrónico miniaturizado basado en ATtiny10 – Calendae

Hola de nuevo. Te habla Jordi Oriol y hoy vamos a hablar sobre DICE10 – Un molde electrónico miniaturizado basado en ATtiny10 – Calendae

Hacer un archivo dados electrónicos es muy popular entre los aficionados y ya hay muchos proyectos preparados en Internet sobre este tema. Tim a Hackaday.io ha diseñado un proyecto de dados electrónicos para «Límite de 1 KB«competencia. ¿Pero por qué otro proyecto de dados mientras Internet ya está lleno de cosas similares?

Pues no es el objeto de este proyecto, sino el concepto, que lo hace único. Este es el dado más miniaturizado que se puede fabricar. Cómo Tim Él dice:

Utiliza un esquema de multiplexación muy eficiente para controlar los 7 LED de una matriz electrónica con solo dos pines de E / S.

Sí, has leído bien. Solo se utilizan dos E / S para controlar los 7 LED de un dado. Se ha hecho posible un esquema de multiplexación súper eficiente: Charlieplex Plus. El objetivo principal de este proyecto es presentarle Charlieplex Plus.

DICE10 – El pequeño molde electrónico

Requisitos:

  • 1 x ATtiny10
  • 7 x LED SMD 0603
  • 1 x condensador SMD 100n 0805
  • PCB de circuito

Nota: Los componentes SMD se utilizan para miniaturizar el circuito. Puede elegir fácilmente los componentes del orificio pasante si el tamaño no es un problema.

Links importantes:

Circuito y PCB:

Diagrama de circuito de DICE10

Puede ver en el circuito que las conexiones son bastante sencillas. PB2 y PB0 se utilizan para controlar los LED. El pin de E / S libre restante, PB1, se utiliza como sensor táctil. PB1 es un pin RESET, por lo que no se puede usar como GPIO.

Todos los componentes están empaquetados en un PCB de 13 mm x 19 mm. En lugar de conectores de 6 pines, se utilizan conexiones marginales para la interfaz SPI / TPI para reducir el tamaño de la PCB.

Diagrama de PCB de DICE10

Diseño:

Como entrada para Hackaday 1 Kb de simultaneidad, uno de los objetivos clave de este proyecto era mantener el tamaño del código por debajo de 1 Kb. El uso de un ATtiny10 como MCU limita automáticamente el tamaño del código a 1 kb, por lo que el requisito se cumple automáticamente.

El firmware utiliza un temporizador de interrupción para multiplexar los 7 LED. La rutina principal llama al archivo TinyTouchLib para sondear el botón táctil. Si se detecta una pulsación de botón, el valor del molde se cambia aleatoriamente. Aunque debido al tamaño físico más pequeño, el botón táctil es algo poco confiable y a menudo detecta múltiples toques. Pero no hay problema en usarlo como generador de números aleatorios.

Multiplexación:

Llegamos ahora a la parte más interesante del proyecto: el esquema de multiplexación. Un esquema muy común y eficiente es Charlieplexing. El charlieplexing que puedes controlar n²-n LED de norte Líneas de E / S

Ahora, ¿cómo se pueden controlar 7 diodos LED utilizando solo 2 pines de E / S?

El patrón de dados consta de 7 LED. Sin embargo, notará rápidamente que 6 de estos LED solo se encienden en pares, por lo que solo necesita verificar 3 pares de LED más el del medio. Esto requiere cuatro E / S, ¡todavía demasiadas!

Con Charlieplexing podemos reducir el número de líneas de E / S a tres. pero todavía es demasiado para ATtiny10, ya que se necesita una línea de E / S adicional para «lanzar el dado». La única solución que queda es «Charlieplex Plus». Antes de explicarlo, aprendamos qué es Charlieplexing.

Charlieplexing: Charlieplexing es una técnica para controlar una pantalla multiplex donde se utilizan relativamente pocos pines de E / S en un microcontrolador para controlar una serie de LED. Charlieplexing utiliza la propiedad de tres estados (ni estado ALTO ni BAJO) de los pines de E / S del microcontrolador. Solo dos E / S están activas a la vez, una configurada en ALTA y otra en BAJA, mientras que todos los demás pines están en un estado de alta resistividad. Se encenderá el LED conectado entre dos E / S activas.

Ahora, ¿qué pasa si solo activamos una E / S en lugar de dos? aquí viene Charlieplex Plus.

Charlieplex Plus:

Ejemplo de circuito Charlieplex Plus

El circuito de arriba muestra cómo conectar los LED en este diagrama. Además del par antiparalelo entre los dos pines de E / S (PB2 y PB0), los LED también están conectados a VCC y GND. La suma de los voltajes directos de los cuatro LED en serie (LED1-4 y LED5-8) es superior a 5V para que no se enciendan cuando PB0 y PB2 están en estado de alta impedancia (Z).

Cuando PB0 o PB2 es H o L y todos los demás pines son Z, hay suficiente voltaje para encender un par de LED. Sin embargo, cuando PB0 es ALTO y PB2 es BAJO o viceversa, el LED9 o el LED10 se encienden.

En efecto, Charlieplex plus El esquema es realmente difícil de entender. También es poco práctico. Pero aún se puede utilizar en estos casos en los que nuestra única opción es controlar muchos LED con menos E / S. Echemos un vistazo a la tabla para comprender mejor:

Tabla de codificación Charlieplex Plus

Un análisis general muestra que el nuevo esquema puede conducir n² + n LED con norte E / S. La siguiente tabla muestra el número de LED que se pueden controlar con un número determinado de E / S con diferentes esquemas de multiplexación.

Tabla comparativa entre diferentes esquemas de multiplexación

Entonces, en resumen, podemos ver que dos E / S pueden manejar tres LED, y eso es lo que necesitamos.

Conclusión:

En este artículo, el esquema de multiplexación fue la primera prioridad. Si comprende el esquema con claridad, puede implementarlo en varios proyectos. Leer Esta entrada de blog si está dispuesto a aprender más sobre esto.

Esta imagen muestra cómo DICE 10 trabajos:

Imagen animada de DICE10

Pero recuerde que la implementación de Charlieplex Plus en cualquier proyecto no se recomienda en absoluto. Hará que el proceso de diseño y resolución de problemas sea extremadamente complejo.

No te olvides compartir en tus redes sociales para que tus colegas lo vean

??? ? ? ???

Comparte