Comment construire des lumières de nuage avec Sound Reaction Lightning
Il y a quelques mois, une lumière d’ambiance Thunderbolt à 3 000 $ faisait fureur dans la communauté des makers. C’est une très belle lampe, mais son prix la met hors de portée de toute personne saine d’esprit. Ce que nous allons faire aujourd’hui n’est pas exactement le même – nous faisons quelque chose de plus fonctionnel, pas une œuvre d’art, mais ça va être plus cool et plus personnalisable.
Mon hypothèse de choisir d’omettre les haut-parleurs est que vous avez probablement déjà une bonne paire de haut-parleurs dans votre pièce que vous préférez utiliser, et franchement, c’est un peu étrange de mettre les haut-parleurs dans la lumière. Au lieu de cela, j’ajouterai un microphone qui permet à l’éclair de répondre automatiquement aux bruits forts, qu’il s’agisse d’un véritable orage ou d’une bande sonore diffusée sur votre PC ou votre chaîne stéréo.
Nous utiliserons également une chaîne complète de LED RGB Neopixel (WS2812B), afin de pouvoir reproduire des couleurs autres que le blanc et contrôler chaque pixel.
prévenir: L’alimentation que j’utilise dans ce projet a des bornes à vis qui se connectent aux fils AC sous tension. Si vous n’êtes pas confiant quant à la connexion d’une prise, assurez-vous d’acheter une alimentation entièrement fermée. Au minimum, vous devrez emballer le bloc d’alimentation dans une boîte de projet sécurisée.
Étape 0 : Présentation
Voici une vidéo de démonstration du projet terminé. J’ai implémenté quelques modes différents jusqu’à présent, des éclairs standard aux nuages d’acide psychédélique et aux lumières d’ambiance décolorées qui peuvent être sélectionnées à partir de la télécommande.
Faire une vidéo du jour
Le code complet et les bibliothèques requis peuvent être téléchargés à partir de ce référentiel Github.
Étape 1 : Vous aurez besoin
- Brin WS2812B, généralement de 5 mètres, le prix est d’environ 50 dollars américains. Ne vous inquiétez pas si vous avez un autre type de chaîne Neopixel, l’interface FastLED le supportera presque certainement, mais votre câblage peut varier (par exemple, vous aurez peut-être besoin d’un fil de synchronisation en plus du signal).
- Alimentations 5V, 10A + – J’ai acheté des alimentations 15A pour 11 $ chacune. Ils prennent une entrée 120-240V AC et produisent une puissante sortie 5V, suffisante pour alimenter tous nos pixels et Arduinos.
- Câbles, prises et interrupteurs en ligne
- coquille de projet
- Deux Arduino. Le clone Funduino à 10 $ va bien. Le second est nécessaire pour le contrôle à distance, tandis que le premier contrôle la logique principale et les LED.
- Deux résistances de 2,2k (ou environ) ohms – la valeur exacte n’a pas d’importance, environ 1,5k à 47k devraient fonctionner.
- Planche à pain
- Récepteur infrarouge TSOP4838
- Télécommandes IR – Je les achète en gros pour environ 2 $ chacune, mais toute télécommande devrait fonctionner avec la modification du code.
- Grand module de microphone
- Scrap bois MDF pour couper votre base, et une pièce de puzzle.
- Matériau d’emballage/insert de boîte en polystyrène.
- Remplissage d’oreiller en coton polypropylène. J’ai tiré assez d’un couple de vieux tampons horribles. Si ce n’est pas une option, vous devriez pouvoir en acheter de nouveaux pour environ 10 $ ou utiliser des peluches moins chères. J’ai essayé les deux – la peluche prend un peu plus de travail pour la peigner et n’est pas aussi pelucheuse, mais à la rigueur, ça marche.
- Chaînes et crochets pour suspendre les nuages - doivent pouvoir supporter plus de 5 kg.
- Pistolet à colle à basse température
- Pulvériser de la colle – il est plus facile de coller le mastic sur le nuage avec cela, mais un pistolet à colle fonctionnera aussi.
Sans compter les outils, le coût total était d’environ 100 $, mais j’en ai trouvé la plupart dans la maison. Tous les composants électroniques sont communs ; les microphones peuvent être trouvés dans le kit de capteur ou achetés séparément.
Étape 2 : Coupez la base
Utilisez une scie sauteuse pour découper une base rugueuse dans un morceau de ferraille de MDF – la forme exacte dépend évidemment de vous, mais pour une raison quelconque, je pense que le nuage a la forme d’un haricot. Nous y attacherons des crochets pour la suspension, mais à part cela, il fournit simplement une base solide. La zone centrale sera réservée à l’électronique, au bloc d’alimentation et à la chaîne de convoyage, alors assurez-vous d’avoir suffisamment d’espace pour au moins votre boîtier de projet avec quelques crochets autour.
Étape 3 : Couche de polystyrène
C’est l’étape la plus difficile et la plus créative, mais nous ne faisons que créer quelque chose de solide Un peu comme La forme du nuage colle les bandes LED dessus. Collez la pellicule de polystyrène en vrac à la base (et en dessous) en utilisant le réglage basse température du pistolet à colle. Si vous n’avez pas de réglage bas, éteignez le pistolet thermique et laissez-le refroidir un peu avant d’essayer de coller. Si la température est trop élevée, vous pouvez simplement faire fondre le matériau d’emballage.
Assurez-vous que chaque pièce est solide avant de coller la pièce suivante, de préférence un peu plus.
Encore une fois, n’oubliez pas de laisser une cavité suffisamment grande à l’intérieur du nuage pour l’électronique, les chaînes et les crochets.
Étape 4 : Sculpter la forme du nuage 3D
Utilisez un couteau à découper pour ranger le nuage en arrondissant les coins et en coupant les matériaux inutiles jusqu’à ce que vous obteniez une forme de nuage 3D grossière. Cela n’a pas vraiment d’importance car nous couvrirons tout le rembourrage plus tard – vous pouvez facilement masquer les erreurs.
Étape 5 : Réparer les crochets, ranger
Enfin, fixez trois ou quatre crochets de chaque coin de la cavité du nuage à la base en MDF. Vous devrez percer un petit trou pilote car le MDF est difficile à visser directement.
J’ai également donné à tout une simple peinture blanche en aérosol pour m’assurer que la couleur était cohérente, mais je ne sais pas si c’est vraiment nécessaire.
Étape 6 : Collez la bande LED
Avant de commencer à coller les LED, commencez par une nouvelle bande ou comptez le nombre de LED que vous avez au total – vous devrez déterminer combien vous en avez utilisé lors d’une étape de programmation ultérieure. Coupez un petit trou sur le côté du nuage et insérez le fil qui forme le début de la bande LED dans la cavité du nuage. Soyez très prudent et commencez par la bonne extrémité – la bande LED est sensible à l’orientation, assurez-vous donc que la flèche du signal pointe à l’opposé de la cavité.
Lentement, collez les pixels LED sur la base en polystyrène selon un motif circulaire, puis tirez la bande vers le bas sur la base pour couvrir le dessous. Encore une fois – vous n’avez pas besoin d’être parfait ici car une fois que nous avons tout diffusé et étouffé avec du mastic, cela avait l’air assez incroyable quoi qu’il arrive.
J’ai utilisé 85 LED au total, c’est-à-dire plus de 2,5 m, autour du corps principal deux fois et une chaîne de LED en bas.
Étape 7 : Schéma de câblage
Le câblage est complexe, mais facilement décomposé en plusieurs parties.
Tout d’abord, câblez et sécurisez l’alimentation électrique, de préférence dans un boîtier de projet séparé. Je ne vais pas vous apprendre la sécurité des fils AC sous tension, donc je suppose que vous pouvez gérer cette partie et que vous avez un fil 5V et GND.
important: Lors de la programmation et du test de l’Arduino, le 5V de l’alimentation doit être maintenu isolé de l’Arduino (les deux GND sont connectés, cependant) – il ne doit alimenter que la bande LED, et l’Arduino utilise le 5V fourni via USB. Lorsque vous avez terminé la programmation, l’USB doit être déconnecté et ne plus fournir de 5V à l’Arduino – à ce stade, vous devez connecter le 5V de l’alimentation au rail 5V sur le côté gauche de la planche à pain.
Commencez par connecter la terre et les broches 5V de chaque Arduino au rail gauche de la planche à pain. Ils partageront la même source d’alimentation, que ce soit le bloc d’alimentation externe que nous avons ou l’USB branché sur l’un d’eux.
Ensuite, terminez la partie câblage I2C – c’est ainsi que nos deux Arduinos peuvent communiquer. Connectez les broches A4 des deux Arduinos à une seule rangée sur la planche à pain, puis connectez la résistance 2.2k de cette rangée au rail 5V. Répétez cette opération pour A5, en les connectant sur une rangée séparée et une autre résistance de 2,2 k à 5 V.
Connectez ensuite le récepteur IR – si vous avez un autre modèle, vérifiez la configuration des broches, mais fondamentalement, la broche de signal doit aller à D11 sur un Arduino.télécharger Thundercloud_ir_receiver.ino Dessinez sur cet Arduino (tout le code ici) et débranchez l’USB car nous n’en avons plus besoin.
Sur l’autre Arduino, connectez entrée de données Broche de signal de la bande LED à D6. Le GND de la LED devrait être commun à tous les Arduinos, mais à ce stade, le 5V proviendra directement du PSU.
Toujours sur cet Arduino, branchez le module microphone sur A0.télécharger un autre nuage d’orage.ino Dessinez et branchez temporairement l’USB pendant le débogage.changer d’abord NUM_DEL changements appropriés.
Étape 8 : Collez le mastic
En dernier lieu, collez votre rembourrage. Pas de technique spéciale ici – vaporisez simplement une couche de colle sur les nuages et prenez une poignée de mastic. Néanmoins, il est plus facile d’utiliser le mastic si vous l’avez passé au peigne fin pour augmenter la surface.
Si vous utilisez la même télécommande que moi, le bouton STROBE la mettra en mode nuage réactif au son ; FLASH est le mode fantôme et FADE est la lumière d’ambiance à atténuation lente.
Étape 9 : Explication du code
Pourquoi deux Arduino ? La programmation du récepteur IR et la bibliothèque de pilotes de pixels WS2818B sont très sensibles à la synchronisation – si la synchronisation est retardée, le signal IR sera corrompu. En donnant à chaque circuit son propre microcontrôleur et en les faisant communiquer via le protocole I2C, nous pouvons nous assurer que la synchronisation de chaque circuit est parfaite. Vous pouvez également trouver des modules IR séparés avec leur propre microcontrôleur intégré, mais mes recherches ont révélé que ces modules sont en fait plus chers qu’un simple clone Arduino et une LED IR. Thundercloud_ir_receiever n’a pas besoin d’explication, bien que vous souhaitiez peut-être d’abord lire les bases d’I2C.
Sur le contrôleur principal Thundercloud, nous définissons différents modes de fonctionnement, tels que ON (effet éclair sans activation sonore), CLOUD (éclair uniquement activé par le son), ACID (couleur magique d’affichage des nuages) ou un simple mode monochrome.Pour définir un nouveau schéma, utilisez énumérer Tout d’abord, ouvrez la console et trouvez un bouton de télécommande auquel le mapper – chaque télécommande doit imprimer une ligne de débogage.à l’intérieur recevoir un événement() méthode, nous mappons ces clés à un modèle, donc ajoutez-y une instruction switch supplémentaire.Enfin, dans l’essentiel anneau() Nous acheminons ces sélections de mode vers différentes fonctions d’affichage.
Le code de lissage du micro était à l’origine d’Adafruit – je l’ai simplifié pour nos besoins et j’ai ajouté un déclencheur lorsque nous avons entendu un bruit supérieur à la moyenne.
Étape 10 : Mode éclair
Les écrans d’éclairage combinent trois « types » d’éclairs différents pour obtenir un effet suffisamment réaliste ou du moins agréable.Le premier est fissure(), où chaque LED s’allume brièvement pendant 10 à 100 ms.La seconde est faire défiler() – Chaque LED a 10 % de chance de s’activer et le cycle entier est répété 2 à 10 fois avec un délai de 5 à 100 ms entre chaque cycle.Le troisième est orage(), qui sélectionne deux sections différentes de la bande, chacune avec entre 10 et 20 LED, et fait clignoter brièvement ces sections 3 à 6 fois. Examinez ces méthodes en détail pour voir comment les LED individuelles sont activées – la roue chromatique HSV est toujours utilisée (le blanc est donc H = 0, S = 0, V = 255)….