Desde que empezamos a comercializar los NeoPixels en 2012, los LEDs RGB encadenables han conquistado el mundo. Y gran parte de ese éxito se debe a la simplicidad de su cableado: un solo cable de datos, sin importar el número de píxeles. Así que no es de extrañar que estén por todas partes, parpadeando en exposiciones de arte, demostraciones de la feria de fabricantes, cabinas de DJ, decoraciones y disfraces.
Pero, en algún momento, todos los NeoPixel'er se topan con las limitaciones de ese cable de datos único: la sincronización es muy exigente y, a menudo, el código tiene que detenerse por completo para poder sacar los datos sin interrupciones. Este requisito dificulta la creación de efectos de iluminación de rápida actualización y limita el número de píxeles que puedes manejar antes de que otros periféricos de hardware reciban atención.
El residente profesional de los píxeles Paint Your Dragon (que acuñó el nombre de NeoPixel, ¡ya sabes!) asumió este reto y ha triunfado gloriosamente. Examinando cuidadosamente la hoja de datos del ATSAMD51 se dio cuenta de que podías usar el temporizador 0 en modo "forma de onda", y crear 8 formas de onda únicas a través de DMA que se encargarían de todo el empuje de píxeles por ti.
¡Así nacieron la biblioteca NeoPXL8 Arduino y NeoPXL8 FeatherWing! La librería se ejecuta en el Feather M4 y maneja todo el NeoPixeling por ti, hasta 8 cadenas de salida DMA concurrentes, cada una de las cuales puede tener 1750 píxeles RGB para un total de 8 x 1750 = 14000 píxeles. Eso te deja algo de RAM para que tu código se ejecute también. Aunque podrías conectar tantos píxeles, lo que creemos que hace mejor este 'Wing es aprovechar el DMA + el rapidísimo procesador de 120MHz del SAMD51 para gestionar animaciones de cientos de píxeles con facilidad
. Para facilitar la conexión, este FeatherWing se encarga del cambio de nivel y de la disposición de los pines por ti. Todos los 8 hilos tienen un cambiador de nivel que convierte el nivel lógico de 3,3V a 5V, hay un pequeño convertidor de tapa de interruptor que genera la fuente de alimentación limpia de 5V para ti. Luego, una resistencia de 100 ohmios en línea después del búfer reduce el timbre en los tramos largos de cableado.
Tienes dos opciones para conectar los NeoPixels:
2 x 8 Header con tierra y señal lógica de 5V, en pares
2 x RJ-45 'Ethernet' Jacks, con tierra y señal lógica de 5V por par trenzado. Esto coincide con el mismo cableado que el OctWS2811
Para mantener el 'Wing compacto Adafruit te permite elegir el cableado que quieras, sólo tienes que soldar los conectores que prefieras. Entonces también tendrás que proporcionar energía a los NeoPixels. Dado que necesitarás muchos amperios de corriente, no lo manejamos a través del Wing - el cobre del PCB sería demasiado limitante. Recomendamos utilizar bloques de terminales o barras colectoras para conectar todos los cables de tierra/5V juntos y alimentarlos desde su propia fuente de 5V.
Dado que estamos utilizando TCC0 (Timer 0), estamos limitados en cuanto a los pines que se pueden utilizar para la salida del NeoPixel. Estas son las opciones que tienes:
La salida #0 viene de SPI SCK o RX (seleccionable)
La salida #1 viene de D5 o TX (seleccionable)
La salida #2 viene de D9 o I2C SCL (seleccionable)
La salida #3 viene de D6 o I2C SDA (seleccionable)
La salida #4 viene de Digital #13
La salida #5 viene de Digital #12
La salida #6 viene de Digital #11
La salida #7 viene de Digital #10
Como puedes ver, algunos de estos pines son fijos (D10, 11, 12 y 13) y el resto tienen dos opciones. Si no puedes prescindir de ambas opciones, puedes desactivarlas desde la salida DMA del NeoPXL8 y vivir sólo con 7 hilos.
Aunque Adafruit lo diseñó específicamente para su uso con el Feather M4 (basado en el SAMD51), podrías utilizarlo con otros Feathers, por las capacidades de cambio de nivel. Sólo tendrás que averiguar qué firmware de controlador de NeoPixel puedes utilizar y qué pines están disponibles.
Si todo esto te parece genial, coge una de estas alas y echa un vistazo a los ejemplos de la biblioteca NeoPXL8 Arduino para poner en marcha tu proyecto masivo de LEDs.
DETALLES TÉCNICOS
Dimensiones (sólo placa, sin componentes): 51 x 22,8 x 2,6mm
Peso del producto: 4,0g / 0,1oz