J'adore Halloween! Chaque année, j'essaie d'améliorer mon jeu en ajoutant quelque chose de nouveau et c'est mon effort pour 2021.
Il s'agit d'un anneau de LED néopixel contrôlé par Arduino Nano avec un émetteur-récepteur radio NRF24L01+ et un capteur de lumière LDR emballé dans un emballage soigné qui peut être ajouté à une citrouille ou un autre accessoire.
Appelons-le simplement le "palet".
Quand il est sous tension, le palet produit un effet de clignotement orange pour simuler une bougie. Les commandes émises par radio peuvent changer la couleur, le mode de lecture, ou l'éteindre et l'allumer. Une commande peut être émise pour un palet spécifique ou tous les palets à portée. Le capteur de lumière peut mettre le puck en mode veille si la lumière ambiante est trop élevée.
La raison pour laquelle j'ai utilisé un module radio au lieu de Bluetooth, ce qui est plus courant dans ce genre de projet, est que plusieurs pucks peuvent recevoir des commandes simultanément, puisqu'aucun handshaking ou connexion n'est nécessaire.
Je ne suis en aucun cas un magicien du matériel ou du logiciel, donc je suppose que ce projet aurait pu être mieux fait. Cela dit, il fonctionne à merveille.
C'est un projet très technique et idéal pour apprendre. Si vous avez des problèmes, je ne serai probablement pas disponible pour vous aider, j'ai d'autres choses à faire! Alors faites comme moi et cherchez sur Google.
MÉTHODOLOGIE
Mon écran Halloween est géré par un contrôleur basé sur un Raspberry Pi exécutant un logiciel personnalisé écrit en Python 3. J'ai inclus une bibliothèque Python et un exemple de script. Vous pourriez utiliser n'importe quel type de matériel capable d'utiliser un module NRF24L01+ comme contrôleur, comme un autre Arduino ou un autre type d'ordinateur. Mais si votre contrôleur n'exécute pas Python, vous devrez écrire votre propre logiciel de contrôle.
Le contrôleur Raspberry Pi a un module radio attaché à lui pour émettre des commandes, bien que j'ai utilisé le modèle NRF24L01+PA+LNA légèrement différent qui offre une meilleure portée. Vous pourriez également utiliser le même module NRF24L01+ que celui utilisé par le puck, le câblage et le logiciel sont exactement les mêmes.
En pratique, mon écran comporte plusieurs jack-o-lanters avec des pucks installés. Le contrôleur Pi peut envoyer une commande qui modifie l'effet de certains palets ou de tous en même temps. C'est pour que les citrouilles réagissent à ce qui se e dans mon affichage pour un maximum d'effroi.
LISTE DE PIÈCES
Pour 1 palet
1 x Arduino Nano 168 ou 328p (prenez ceux sans broches installées).
1 x 24 X WS2812B 5050 RGB LED Ring
1 x NRF24L01+ module radio
1 x condensateur 10 uf
1 x Base imprimée
1 x Couvercle imprimé
Faisceau de fils 22 AWG
Optionnel pour le capteur de lumière
1 x Photorésistance LDR 5539 (vous pourriez utiliser une variante différente et ajuster les valeurs de résistance et de niveau dans le code).
1 x résistance de 10k Ohms
Pigtails de connecteurs de capteur et d'alimentation en option.
Attaches zip en option pour fixer les pigtails et monter le palet.
RADIO
Le palet utilise un module radio NRF24L01+. Ils sont bon marché et fonctionnent très bien, mais vous devez ajouter un condensateur de 10 uf pontant les broches VCC et masse ou les performances en souffriront grandement. Puisque le puck ne fait que recevoir des signaux (actuellement), ces minuscules radios fonctionnent bien en mode basse puissance.
Mon contrôleur Pi utilise une variation haute puissance du module NRF24L01+PA+LNA puisqu'il est responsable de l'envoi des commandes. Mais le même module NRF24L01+ utilisé dans les palets peut être utilisé pour le contrôleur si la portée n'est pas un problème. Le module radio du contrôleur doit aussi avoir un condensateur de 10 uf qui relie les broches VCC et de masse.
Il y a beaucoup de câblage pour connecter ces modules radio. La qualité du travail de soudure est importante, tout comme la propreté des pastilles de soudure. Soyez vernis.
Pour que cela fonctionne de manière fiable, le câblage doit être bon, l'alimentation suffisante, et toutes les barres sur les t.
CODE ARDUINO
Le logiciel Arduino est inclus. Il a été écrit pour les Nanos, donc le kilométrage peut varier s'il est utilisé sur d'autres cartes. Je l'ai installé sur les versions 168 et 328p, bien que pour les 168, vous devrez vous assurer que la variable 'DEBUG' est fausse sinon il ne s'adaptera pas. DEBUG ne fait qu'activer la sortie du moniteur série à des fins de test, je recommande qu'elle soit désactivée pour le déploiement de toute façon.
Bibliothèques requises
RF24 par TMRh20
J'ai utilisé la v1.4.1 qui était la plus récente à l'époque.
LowPower_LowPowerLab par LowPowerLab
J'ai utilisé la version 2.1.0 qui était la plus récente à l'époque.
C'est pour faciliter le mode basse consommation induit par le capteur, avec l'idée d'économiser la batterie si vous le faites fonctionner sur piles.
Il y a quelques choses que vous pouvez configurer avant de flasher votre Arduino:
rf24_rx [5] - Est un canal de 5 caractères qui est l'identifiant unique de chaque puck, pour un adressage individuel. Donnez à chaque puck un numéro unique mais laissez les trois premiers caractères inchangés. N'utilisez pas 0 pour l'ID car il est utilisé pour spécifier tous les pucks.
Exemple : {'O', 'C', 'T', '0',2'} ou {'O', 'C', 'T', '3', '1'}
LDR_LEVEL - Est la sensibilité du capteur de lumière. Des valeurs plus élevées correspondent à une sensibilité moindre. Ajustez-le à votre préférence ou si vous utilisez des capteurs LDR ou des résistances avec des valeurs différentes. Là où c'est maintenant, ça marche bien pour moi.
DEBUG - Active/désactive la sortie série pour le débogage.
SENSOR - Active/désactive la lecture et la réponse du capteur de lumière. Le réglage sur false vous permettra d'économiser de l'espace.
RADIO - Active/désactive la fonctionnalité radio. Le réglage sur false vous fera gagner beaucoup d'espace.
CODE PYTHON
Une bibliothèque et un exemple de script sont inclus. La bibliothèque formate la charge utile de communication et dispose de nombreuses fonctions pour simplifier l'envoi des commandes.
Bibliothèques requises
py-nrf24 - https://github.com/bjarne-hansen/py-nrf24
C'est la bibliothèque de communication radio -- super important d'utiliser cette bibliothèque nrf24 particulière.
En fait, ce projet contient la plupart des connaissances techniques utilisées dans ce projet et est une ressource inestimable.
pigpio - https://abyz.me.uk/rpi/pigpio/
Vous devez avoir installé PIGPIO et faire fonctionner son serveur.
démon pigpio - https://abyz.me.uk/rpi/pigpio/pigpiod.html
C'est le serveur pigpio.
struct - Rien d'extraordinaire, utilisez pip3 pour l'installer.
MODES DE LECTURE
En plus de l'effet de bougie orange vacillante par défaut, d'autres modes et options sont intégrés.
Les modes de lecture sont : scintillement, impulsion, stroboscopie, solide, arc-en-ciel, fondu en sortie, fondu en entrée, désactivé.
Scintillement L'effet classique de bougie.
Pulse Fondu au noir et retour.
strobe Effet de lumière stroboscopique clignotante.
solid Une couleur et une luminosité constantes.
rainbow Dégradation à travers un arc-en-ciel de couleurs.
Fade out Fondu au noir.
fade in Fondu du noir et poursuite du mode d'affichage précédent.
off Eteint les LEDS. Si le mode est actuellement réglé sur le scintillement, il va "scintiller" de façon naturelle. Pour tous les autres modes, il s'éteindra simplement.
CAPTEUR DE LUMIÈRE ET MODE VEILLE
Le capteur de lumière est totalement facultatif. Si vous n'en installez pas, il fonctionnera quand même très bien. Dans le code Arduino, vous pouvez ajuster la sensibilité en changeant la valeur LDR_LEVEL ; des nombres plus élevés nécessitent plus de lumière pour déclencher le mode veille.
Lorsque le mode veille est déclenché, les lumières s'éteignent et le Nano e en mode faible consommation pendant 8 secondes. Après 8 secondes, il mesurera à nouveau la valeur de la lumière et era à nouveau en mode basse consommation pendant 8 secondes ou se réveillera et continuera la routine. Ceci est principalement destiné à économiser l'énergie lorsque vous utilisez des piles.
ASSEMBLAGE ET CÂBLAGE
Cette partie sépare les hommes des biddy-babies.
Le module radio et le Nano s'insèrent dans la base à l'envers, donc le câblage est installé par le bas de chacun, ce qui ajoute à la complexité diabolique, parce que je vous aime. Il y a une image schématique incluse, mais elle représente les deux pièces à l'envers, vous devrez donc vous adapter en conséquence.
Avant de faire le câblage, testez d'abord le module radio, le nano et l'anneau de LED dans la base et familiarisez-vous avec elle. La base dispose d'une gestion des fils pour les fils de l'anneau de LED et d'une rainure pour que le condensateur de la radio s'y niche.
**Voici l'ordre de montage que je recommande.
Faites le module radio et le câblage du Nano en premier, à l'extérieur du boîtier. Mettez les pièces en place, acheminez les fils de l'anneau de LED, et faites les dernières soudures in situ.
Inspectez le module radio. Nettoyez toute trace de crasse sur les pastilles de soudure et coupez les fils trop longs aux points de soudure existants.
Coupez les fils du condensateur à environ 12 mm de long et soudez-les aux plots VCC et de masse du module radio. Rappelez-vous que le module radio est sur le dessus ! Placez le module radio dans la base et pliez le condensateur pour l'insérer dans sa rainure. Retirez le module radio de la base pour continuer le câblage.
Soudez les fils VCC et de masse de la radio directement aux fils du condensateur. Soudez les cinq fils de communication radio à leurs pastilles.
Installez la résistance sur l'Arduino, n'oubliez pas qu'elle doit être placée à l'envers ! Vous devrez peut-être envelopper les fils de la résistance dans un tube rétractable. Soudez les fils de la radio et du capteur à l'Arduino.
Soudez les fils de VCC, de masse et de données de la DEL à l'Arduino. Selon le type de connecteur d'alimentation que vous utilisez, vous pouvez souder les fils VIN et de masse maintenant ou attendre que l'Arduino soit installé dans la base.
Positionnez la radio et l'Arduino dans la base. Appliquez un peu de colle chaude dans la rainure du condensateur et placez le condensateur -- cela maintiendra le module radio en place.
Faites er le fil de terre de la radio, le VCC de la LED, la terre et les fils de données par les serre-fils. Faites er les lignes du capteur et de l'alimentation par le canal des fils.
Positionnez l'anneau de LED dans la base et soudez les fils de données, VCC et deux fils de terre.
Mettez une fermeture éclair autour des fils d'alimentation et de capteur pour que le fait de tirer dessus n'exerce pas de tension sur les points de soudure.
Posez le couvercle et croisez les doigts.
La base a des fentes pour er des attaches zip pour monter le palet.
VIDEOS
https://youtu.be/DIzgVRe7BfY
https://youtu.be/Q1ulS2pkiDw
https://youtu.be/GZHeG5a5GYc