Utiliser des NeoPixel sur ESP8266 sous MicroPython
Un petit week-end de travail pour produire un nouveau tutoriel pour notre section "ESP8266 sous MicroPython".
Cette semaine, nous nous attardons sur les LED intelligentes WS2812 / SK6812 plus communément appelée NeoPixel.
Montage de base (3.3v)
Le montage pour une utilisation sous 3.3v est assez rudimentaire. Il a cependant quelques inconvénients:
Montage avancé (5V)
Alimenter les NeoPixel sous 5V permet d'avoir des couleurs éclatantes et élimine tous les problèmes rencontrés sous 3.3V. Cette approche nécessite néanmoins un LevelShifter très réactif (capable de suivre le débit d'un signal à 800 KHz) comme le 74AHCT125.
Et le code?
Utiliser des NeoPixels en MicroPython est tout aussi simple que le montage.
Des animations NeoPixel?
Le GitHub ESP8266-uPy/NeoPixel contient également du code de démonstration utilisant quelques fonctions d' effets lumineux.
Le code complet se trouve sur le GitHub GitHub ESP8266-uPy/NeoPixel .
Après avoir copié le fichier fxdemo.py sur votre ESP8266, vous pourrez facilement l'exécuter en utilisant la commande import fxdemo depuis une session REPL.
Des tutos et du code pour le peuple!
Il ne reste qu'a suivre les liens suivants pour accéder au ressources.
Cette semaine, nous nous attardons sur les LED intelligentes WS2812 / SK6812 plus communément appelée NeoPixel.
Gamme NeoPixel disponible de stock chez MCHobby |
Le montage pour une utilisation sous 3.3v est assez rudimentaire. Il a cependant quelques inconvénients:
- Les couleurs ne sont pas aussi éclatante que sous 5V.
- Les couleurs vives sont plus difficiles à produire.
- Le régulateur de tension 3.3V est un peu limité en courant, ce qui limite le nombre de LEDs utilisables.
Utiliser quelques NeoPixels sous 3.3v avec un Feather Huzza ESP8266 sous MicroPython. Source: ce tutoriel de MCHobby |
Alimenter les NeoPixel sous 5V permet d'avoir des couleurs éclatantes et élimine tous les problèmes rencontrés sous 3.3V. Cette approche nécessite néanmoins un LevelShifter très réactif (capable de suivre le débit d'un signal à 800 KHz) comme le 74AHCT125.
Ne pas oublier la capacité de protection sur le circuit 5V des NeoPixels.
Utiliser des NeoPixels sous 5v avec un Feather Huzza ESP8266 sous MicroPython. Source: ce tutoriel de MCHobby |
Utiliser des NeoPixels en MicroPython est tout aussi simple que le montage.
# Utilisation de la bibliothèque neopixel avec Feather ESP8266 # sous MicroPython # # Shop: https://shop.mchobby.be/55-leds-neopixels-et-dotstar # Wiki: https://wiki.mchobby.be/index.php?title=MicroPython-Accueil#ESP8266_en_MicroPython from machine import Pin from neopixel import NeoPixel # NeoPixel( broche_signal, nbre_de_led ) np = NeoPixel( Pin(2), 8 ) # Fixer la couleur la couleur du premier pixel # avec un tuple (r,g,b) ou chaque valeur est # située entre 0 et 255 np[0] = (255,0,0) # rouge # couleur des autres pixels np[1] = (0, 255, 0) # vert np[2] = (0, 0, 128) # bleu (1/2 brillance) np[3] = (255, 102, 0) # Orange np[4] = (255, 0, 102) # Rose bonbon np[5] = (153, 51, 255) # Violet np[6] = (102, 153, 255) # bleu pastel np[7] = (153, 255, 153) # vert pastel # Envoyer l'info aux NeoPixels np.write()
Des animations NeoPixel?
Le GitHub ESP8266-uPy/NeoPixel contient également du code de démonstration utilisant quelques fonctions d' effets lumineux.
# theater_chase sample theater_chase( np, (127,0,0) ) # red theater_chase( np, (127,127,127) ) # white theater_chase( np, (0,0,127) ) # blue clear( np ) sleep( 1 ) # Wipe in color np.fill( (190, 0, 0) ) # fill in red np.write() wipe( np, (0,180,0), pause=0.150 ) # wipe in green wipe( np, (0,0,255), pause=0.150 ) # wipe in blue wipe( np, (0,0,0), pause=0.150 ) # wipe in black sleep( 1 ) # Moving_rainbow for i in range( 4 ): moving_rainbow( np ) clear( np ) sleep( 1 ) # Fade In And Out fade_inout( np, (255, 0, 0) ) # Red fade_inout( np, (0 , 255, 0) ) # Green fade_inout( np, (0 , 0, 255) ) # Blue clear( np ) sleep( 1 ) # moving_wheel moving_wheel( np ) clear( np ) sleep( 1 ) # cycle_wheel for i in range(2): cycle_wheel( np ) clear( np ) sleep( 1 ) # Candle Effect candle( np ) clear( np ) sleep( 1 ) # Larson Scanner (K2000) # execute 3 iterations posdir = None for i in range( 3 ): posdir = larson_scanner( np, posdir ) clear( np ) sleep( 1 )
Le code complet se trouve sur le GitHub GitHub ESP8266-uPy/NeoPixel .
Après avoir copié le fichier fxdemo.py sur votre ESP8266, vous pourrez facilement l'exécuter en utilisant la commande import fxdemo depuis une session REPL.
Des tutos et du code pour le peuple!
Il ne reste qu'a suivre les liens suivants pour accéder au ressources.
- Le tutoriel sur le Wiki de MCHobby
- Le GitHub esp8266-upy/neopixel
- Le GitHub esp8266-upy avec tous les pilotes disponibles.
Écrire un commentaire