Rencontrez 2021 avec Raspberry Pi: sommet d'arbre de Noël simulé par le feu

Le nouvel an approche, et si vous avez quelques heures de temps libre, vous pouvez faire une décoration de haute technologie pour un arbre de Noël, un palmier ou un mandarine. Cela n'a pas d'importance - il aura fière allure partout.





Sous la coupe - un gif avec une démonstration du travail de cette chose



La base du design est la bande flexible LED NeoPixel 32x8, Raspberry Pi et une bonne humeur. Eh bien, oui, vous avez besoin de code Python.



Ce dont vous avez besoin pour travailler





  • Raspberry Pi 3, Raspberry Pi 4 ou Raspberry Pi Zero W avec connecteur GPIO.
  • Alimentation, souris, moniteur, clavier et câble HDMI pour Raspberry Pi
  • Matrice LED RGB à bande flexible 32x8 NeoPixel
  • Jeu de cavaliers (M-à-F, M-à-M et F-à-F)
  • Alimentation 5V
  • Condensateur 1000 µF
  • Vous pouvez également prendre une bande de tissu pour diffuser la lumière de la bande LED.
  • Base imprimée en 3D pour toute la structure.


Partie 1. Préparation de la matrice RVB



À ce stade, vous devrez souder une paire de broches et utiliser l'exemple de code de NeoPixel Uberguide d' Adafruit . Pour notre projet, nous avons besoin de deux alimentations - pour la "framboise" et la bande LED. Pour ce dernier, vous devrez connecter non seulement l'alimentation, mais également les données. Tout est simple ici.





Si vous le souhaitez, vous pouvez ajouter une autre bande de tissu pour diffuser la lumière LED brillante. Nous



connectons les données



Nous prenons n'importe quelle "masse" de la "framboise" et la connectons à la ligne de données GND de la bande LED.





Nous connectons l'alimentation électrique



Cela peut être fait soit en utilisant un câble ordinaire, selon le schéma déjà montré ci-dessus, soit en utilisant un câble USB. Dans ce cas, vous devez vous connecter selon ce schéma.





Vérifions maintenant la matrice en exécutant le code d'Adafruit.



Lancez le "framboise", connectez l'alimentation de la matrice RVB, ouvrez le terminal et installez les dépendances: Téléchargez le code depuis le référentiel de l'auteur: Sélectionnez le dossier scrollingTextMask: Exécutez le code de test fillMatrix.py:



sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel

sudo python3 -m pip install --force-reinstall adafruit-blinka












git clone https://github.com/carolinedunn/RGBTreeTopper











cd RGBTreeTopper











sudo python3 32-fillMatrix.py









Si vous obtenez un arc-en-ciel, comme dans le gif ci-dessus, tout fonctionne, vous pouvez passer à l'étape suivante. En cas de problème, il est fort probable que certains contacts soient mal connectés.



Conseils: Si le système ne fonctionne pas avec le GPIO de la broche framboise 21, essayez les broches 10, 12 ou 18. Ouvrez ensuite 32-fillMatrix.py à partir du dossier scrollingTextMask et mettez à jour la broche GPIO. Dans ce cas, vous devrez modifier les autres fichiers de projet en conséquence.



Arrêtez le script en appuyant sur Ctrl + C.



Partie 2. Allumez-le!



Maintenant, dans le terminal, qui est toujours ouvert, nous tapons la commande:



sudo python3 treeTopper.py









Dans les dossiers que nous avons obtenus de GitHub, il y a un dossier «fire» qui contient 10 images jpeg. Voici ce que fait le code treeTopper.py:



Déclare les bibliothèques qui sont utilisées dans le code. Une attention particulière doit être portée à PIL (Pillow Imaging Library), une bibliothèque qui ajoute des capacités de traitement d'image à l'interpréteur Python.





  • Indique au Pi où envoyer les données au dé en spécifiant les 21 broches GPIO (ligne 8).
  • Indique les paramètres de la matrice, y compris la taille, la luminosité et le temps de pause entre l'affichage de chacune des images (lignes 9-13).
  • Crée un tableau avec les données de ces 10 fichiers JPEG dans un ordre séquentiel (lignes 28-32).
  • Analyse les pixels des images et les convertit en une matrice RVB avec la sortie de l'image en une matrice RVB (lignes 35-41).
  • Suspend 0,2 seconde, puis répète le processus pour l'image suivante (ligne 42).
  • Le processus est exécuté jusqu'à l'exécution de la combinaison Ctrl + C.


Et si vous voulez vos propres photos?



Les paramètres doivent être les suivants:



  • Format - JPEG.
  • Largeur - 32 pixels.
  • Hauteur - 8 pixels.


Chaque fichier doit être enregistré sous les noms 1-10.JPG dans le dossier approprié.



Pour afficher des images, vous devez définir un nouveau chemin d'accès aux images. Si vous le souhaitez, vous pouvez modifier la séquence de leur affichage.





Lancer au démarrage



Une fois que toutes les images sont prêtes, utilisez Python pour exécuter le script au démarrage. La meilleure option est Crontab.



Ouvrez Crontab dans la console: crontab -e



Entrez 1 et appuyez sur Entrée.





Cela ouvre un nouveau fichier crontab. À l'intérieur, descendez et entrez ->



sudo python3 /home/pi/RGBTreeTopper/treeTopper.py







@reboot sudo python3 /home/pi/RGBTreeTopper/treeTopper.py







Appuyez sur Ctrl + X, puis crontab pour enregistrer.



Nous éteignons la "framboise" et éteignons tout ce que nous avons collecté.



Partie 3. Assemblage final



À cette étape, vous pouvez déjà démontrer la lumière du Nouvel An au sommet de pas moins d'un arbre de Noël.



  • Nous imprimons le corps sur une imprimante 3D.
  • Nous passons les fils aux bons endroits et les réparons.
  • Nous plions la matrice LED, vous n'avez pas besoin d'appuyer fort.
  • Nous avons mis la structure au sommet de l'arbre de Noël. Nous nous allumons et nous réjouissons.




D'ailleurs, l'auteur sait que son invention a la forme d'un rouleau de papier toilette.





Elle plaisante sur le fait que dans le contexte de ce qui se passe en 2020, c'est tout à fait adéquat. Mais en général, il peut être changé - le design peut être facilement modifié, si vous le souhaitez, de sorte qu'un rouleau de papier se transforme ... oui, en n'importe quoi.






All Articles