Publié par Laisser un commentaire

Comment connecter une bande LED à un Raspberry Pi Pico

Raspberry Pi Pico WS2812 LED strip
Rock 4C+ kit

La carte Rock 4C+ est une parfaite alternative au Raspberry Pi 4

Nos kits de démarrage sont disponibles et prêts à être expédiés !

Dans ce tutoriel, nous verrons comment programmer le Raspberry Pi Pico pour contrôler les néopixels ou également connus sous le nom de LED RGB adressable individuellement. Nous utiliserons la bande de type WS2812B et à base d’un script MicroPython sur un Raspberry Pi Pico, nous apprendrons à programmer la couleur de chaque LED individuellement.

  1. Préparer le matériel

    – Vous avez d’abord besoin d’un ordinateur pour pouvoir utiliser Thonny. Dans ce tutoriel, nous utiliserons un Raspberry Pi 4 comme ordinateur. Et Thonny est un EDI Python convivial pour interagir avec la carte Raspberry Pi Pico. Si vous n’avez jamais utilisé Thonny pour programmer le Raspberry Pi Pico, avant de continuer, vous feriez mieux de jeter un œil à notre tutoriel “Commencer à programmer le Raspberry Pi Pico“.

    – Ensuite, vous avez besoin d’un câble USB avec prise micro-USB.

    – Vous avez également besoin d’un Raspberry Pi Pico bien sûr. Pour ce tutoriel, vous avez besoin d’avoir les broches soudés à votre carte.

    Et enfin, vous aurez besoin de quelques composants supplémentaires :
    – un breadboard (nous utilisons un breadboard de 400 points)
    – une bande LED RGB néopixel ou adressable individuellement (nous utilisons un ruban LED WS2812B de 1 mètre avec 30 LED par mètre)
    – des câbles Dupont Raspberry Pi Pico breadboard WS2812 RGB LED strip

  2. Apprenez à connaître la bande LED néopixel

    Les LED adressables individuellement ou NeoPixel sont des LED RGB avec un petit microcontrôleur intégré sur chaque LED. Outre un fil commun VCC (5v dans notre cas) et GND, il y a une seule ligne de données qui va d’une LED à la suivante. Cette configuration nous permet d’envoyer des informations individuelles concernant la couleur et la luminosité à chaque LED de la bande.

    Lorsqu’un microcontrôleur comme notre Raspberry Pi Pico envoie des informations à la bande, c’est toujours dans une direction précise. Pour commencer, les données sont envoyées à la première LED. La puce de la LED lit les données liées à l’adresse de la première LED. Elle exécute les instructions et transmet les données à la LED suivante. Et cela continue jusqu’à la dernière LED du ruban.

    Cela signifie qu’il n’y a aucun problème pour couper la bande LED après une quantité de LED dont vous avez besoin. Et en plus des bandes LED, les LED WS2812B se présentent sous différents formats, comme des panneaux matriciels LED de différentes tailles par exemple. Compte tenu de la petite taille et de la facilité de câblage de tous les éléments, cela rend les LED RGB adressables individuellement très facile à installer.

    La façon dont nous transmettons la couleur souhaitée à une LED choisie est basé sur le modèle de couleur RVB classique. Cela signifie que nous pouvons définir pour les 3 canaux de couleur (Rouge, Vert et Bleu) que chaque LED contient, un niveau de luminosité différent. Il existe 255 niveaux de luminosité pour chaque canal de couleur. Et avec une luminosité spécifique pour chaque canal, nous pouvons générer toutes les couleurs possibles.

    Il existe de nombreux types différents de bandes LED néopixel :
    – d’abord, vous pouvez acheter les bandes avec différentes longueurs bien sûr
    – la densité (le nombre de LED par mètre) peut varier
    – la tension peut être de 5V ou 12V (utiliser 12v pour des distances plus longues)
    – la protection contre les infiltrations est une autre spécification et peut être importante pour les projets extérieurs par exemple
    – enfin, il y a la variante RGBW ou RGB+W (avec une puce blanche supplémentaire, en plus de la rouge, verte et bleue donc)

    Dans ce tutoriel nous utilisons une bande WS2812B de 1 mètre, 30 LEDs/mètre, 5V, IP30, RGB.

    WS2812 RGB LED stripVous pouvez trouver plus d’informations concernant NeoPixels sur cette page Web d’adafruit.


    Soyez prudent ! Avant de brancher des composants sur les broches GPIO de votre Raspberry Pi Pico, assurez-vous que celui-ci ne soit pas connecté à votre ordinateur.

  3. Mettez en place la partie matérielle

    Raspberry Pi Pico WS2812 pinout– connectez le +5V de la bande LED à la broche VBUS (fil rouge), N’UTILISEZ PAS LA PIN VSYS ICI
    – connectez la broche de données de la bande LED au GP28 (fil jaune)
    – connectez le GND de la bande LED à une broche GND (masse) (fil noir)

    Faites attention ! Comme expliqué à l’étape précédente, le flux de données vers les LED a une direction spécifique. Connectez donc le Raspberry Pi Pico au côté “Din” de la bande LED. Les bandes LED de nos kits ont une prise mâle et femelle. Utilisez la prise femelle.

    Fais attention !
    Pour un ruban LED avec une quantité limitée de LED, il est possible d’alimenter la bande via le Raspberry Pi Pico. Dans ce tutoriel, nous utilisons un rubanLED avec 30 LED. Le courant maximum de chaque LED de notre bande est de 33mA. Ce qui donne un courant maximum d’environ 1A traversant le Pico. Ce qui est OK pour les tests, mais considérez-le comme un maximum. Si vous souhaitez mettre en place une application réelle avec une bande LED, utilisez toujours une alimentation 5V séparée qui peut fournir suffisamment de courant à toutes les LED de votre bande LED.

    Raspberry Pi Pico WS2812 breadboard

  4. Ecrivez le code

    Le but de ce script assez basique est d’explorer certaines des commandes que nous pouvons utiliser pour programmer la couleur des LED RVB.

    Installez d’abord la bibliothèque
    Pour éviter une écriture de code étendue et compliquée, des bibliothèques sont souvent utilisées. Pour notre bande LED WS2812B, nous utiliserons également une bibliothèque. Nous avons trouvé la bibliothèque la plus appropriée de Blaz Rolih. Comme le fichier de cette bibliothèque est assez spécifique, il ne vient pas automatiquement avec MicroPython. Cela signifie que nous devons l’installer nous-mêmes.

    Donc, avant d’écrire le code, nous devrons installer les fichiers sur notre Raspberry Pi Pico. Vous pouvez télécharger un dossier ZIP contenant le fichier à installer ici.

    Une fois téléchargé et décompressé sur votre ordinateur, vous verrez 2 fichiers. ‘colorwave.py’ est un exemple de la façon dont vous pouvez contrôler une bande LED. Nous y reviendrons à la fin de ce tutoriel. Et le fichier ‘neopixel.py’ contient la bibliothèque. Téléchargez les deux fichiers sur votre Raspberry Pi Pico. Si vous ne savez pas comment faire cela, jetez un œil à notre tutoriel ‘Transférer des fichiers entre ordinateur et Raspberry Pi Pico‘. Si vous avez plusieurs dossiers sur votre Raspberry Pi Pico, assurez-vous de télécharger les fichiers dans le même dossier que le nouveau fichier que nous allons créer pour notre code principal. Et ne changez pas le nom de fichier de la bibliothèque bien sûr.

    Pour info, vous pouvez utiliser la même bibliothèque pour les bandes LED RGBW (voir les explications à l’étape 2).

    OK, maintenant que la bibliothèque est téléchargée sur notre Raspberry Pico, écrivez ou collez le code suivant dans l’IDE :

    import time
    from neopixel import Neopixel
     
    numpix = 30
    pixels = Neopixel(numpix, 0, 28, "GRB")
     
    yellow = (255, 100, 0)
    orange = (255, 50, 0)
    green = (0, 255, 0)
    blue = (0, 0, 255)
    red = (255, 0, 0)
    color0 = red
     
    pixels.brightness(50)
    pixels.fill(orange)
    pixels.set_pixel_line_gradient(3, 13, green, blue)
    pixels.set_pixel_line(14, 16, red)
    pixels.set_pixel(20, (255, 255, 255))
     
    while True:
        if color0 == red:
           color0 = yellow
           color1 = red
        else:
            color0 = red
            color1 = yellow
        pixels.set_pixel(0, color0)
        pixels.set_pixel(1, color1)
        pixels.show()
        time.sleep(1)


    Attention, MicroPython est sensible aux espaces. Ne supprimez pas les “tabs”.

    MicroPython Pico WS2812 LED strip
    Quelques explications à propos du code :
    import time : importer le module de temps. Cela nous permettra d’utiliser des tâches liées au temps.
    from neopixel import Neopixel  : pour importer le fichier depuis la bibliothèque neopixel.
    numpix = 30 : nous utilisons une bande LED avec 30 LED, changez ce nombre en fonction de la quantité de LED de votre ruban.
    pixels = Neopixel(numpix, 0, 28, "GRB") : configuration de la bande LED : nombre de pixels, numéro de machine d’état, broche de données (GP28), mode RVB (spécifique à la bande LED que nous utilisons).
    yellow = (255, 100, 0) : Dans les lignes suivantes, nous définissons plusieurs variables pour les couleurs que nous utiliserons. Chaque couleur est définie en fonction du modèle de couleur RVB.
    pixels.brightness(50) : pour définir la luminosité des LED’s.
    pixels.fill(orange) : pour donner à toutes les LED de la bande la même couleur.
    pixels.set_pixel_line_gradient(3, 13, green, blue) : pour changer la couleur des LEDs progressivement, ici la couleur de la troisième à la treizième LED passera progressivement du vert au bleu.
    pixels.set_pixel_line(14, 16, red) : pour donner à une gamme de LED (de 14 à 16) la même couleur.
    pixels.set_pixel(20, (255, 255, 255)) : pour donner à 1 LED (20) une couleur spécifique, et au lieu d’une variable, nous pouvons également utiliser les valeurs RVB directement.
    while True:  est une boucle à l’infinie (jusqu’à ce que nous interrompons le programme).
    Dans les lignes suivantes, on alterne la couleur des LED n° 0 et n° 1.
    pixels.show() : pour envoyer les données à la bande LED.
    time.sleep(1): on attend 1 seconde avant de poursuivre la boucle.

  5. Exécutez le programme

    Maintenant, il est temps d’enregistrer votre script. Faites en sorte que ce fichier MicroPython soit enregistré dans le même dossier que le fichier de la bibliothèque ‘neopixel.py’ que vous avez téléchargés précédemment.

    Ensuite, cliquez sur le bouton Exécuter de l’IDE Thonny. Et vérifiez la couleur des LED selon le script encodé.Raspberry Pi Pico WS2812 LED strip

  6. Expérimentez avec des méthodes supplémentaires, d’autres couleurs et d’autres séquences

    Super, vous avez maintenant les compétences de base pour contrôler une bande LED RVB avec un Raspberry Pi Pico !

    Avant de continuer avec d’autres expériènces, il est bon de savoir que la bibliothèque contient 2 autres méthodes utiles :
    rotate_left(nombre de pixel) : pour décaler la couleur des pixels vers la gauche
    rotate_right (nombre de pixel) : même méthode, mais sens opposé

    Le fichier ‘colorwave.py’ que vous avez téléchargé plus tôt est un bon exemple de la façon dont vous pouvez implémenter cette méthode. Essayez-le et amusez-vous!

    WS2812 RGB LED strip

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 5 / 5. Nombre de voix : 6

Aucune évaluation jusqu’à présent ! Soyez le premier à évaluer cette publication.

Nous sommes désolés que ce tutoriel ne vous ait pas été utile !

Améliorons ce tuto !

Dites-nous comment nous pouvons améliorer ce tuto ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 5 / 5. Nombre de voix : 6

Aucune évaluation jusqu’à présent ! Soyez le premier à évaluer cette publication.

Nous sommes désolés que ce tutoriel ne vous ait pas été utile !

Améliorons ce tuto !

Dites-nous comment nous pouvons améliorer ce tuto ?

découvrez ici plus de produits

Soyez le premier informé de nos derniers tutoriels et produits en vous inscrivant à notre Newsletter

freva.com respecte votre vie privée. Lisez notre politique de protection de la vie privée sur la façon dont nous traitons vos informations personnelles.