neopixel.py

micro:bit V2 (BBC micro:bit v2) · Archivo : neopixel.py · Lenguaje : MicroPython · Uso : Animer un ruban NeoPixel depuis la micro:bit

El módulo neopixel integrado controla una tira WS2812B en pin16: aquí una rampa arcoíris que gira, parada por el botón A. Cada LED recibe una tupla (R, V, B) y write() envía la trama completa de impulsos.

Material necesario

Una BBC micro:bit V2 (nRF52833, matriz LED 5×5, botones A/B, acelerómetro + brújula, micrófono y altavoz) alimentada por USB o pila. 1 tira o anillo de 12 NeoPixel WS2812B; alimentación externa de 5 V a partir de 8 LED.

Cableado

Data (DIN) a pin16 con resistencia de 330 Ω, VCC a 5 V externo, GND unido a la micro:bit.

Funcionamiento

NeoPixel(pin16, NB) reserva el búfer; ruban[i] = (r, g, b) lo rellena; write() emite el protocolo WS2812 en una ráfaga. El módulo desplaza la rampa cada vuelta.

Ejecución

Abre python.microbit.org, pega el programa MicroPython y envíalo a la placa (la micro:bit aparece como unidad MICROBIT). Pulsa reset para relanzar.

Variantes

Asigna el nivel de luz (read_light_level) a un color de fondo, o desplaza el color por la tira con el gesto shake.

neopixel.py

# Ruban NeoPixel/WS2812 sur pin16 avec le module neopixel integre.
import neopixel
from microbit import *

NB = 12
ruban = neopixel.NeoPixel(pin16, NB)

def arc_en_ciel(decalage):
    for i in range(NB):
        # Rampe rouge-vert-bleu deplacee par le decalage.
        p = (i * 3 + decalage) % 256
        if p < 85:
            ruban[i] = (255 - p * 3, p * 3, 0)
        elif p < 170:
            q = p - 85
            ruban[i] = (0, 255 - q * 3, q * 3)
        else:
            q = p - 170
            ruban[i] = (q * 3, 0, 255 - q * 3)

tete = 0
while True:
    arc_en_ciel(tete)
    ruban.write()
    tete = (tete + 8) % 256
    if button_a.was_pressed():
        for i in range(NB):
            ruban[i] = (0, 0, 0)
        ruban.write()
        display.show(Image.NO)
    sleep(60)

# 12 LED a pleine intensite > 700 mA : alimenter par source separee.

← Volver a la ficha