Comment construire une lampe à nuages avec Sound Sound Lightning
Il y a quelques mois, une lampe d'ambiance de 3 000 dollars US a atteint le stade viral dans la communauté des fabricants. C'était une lumière incroyablement belle, mais le prix le laissait hors de la portée de quiconque dont la santé mentale était intacte. Ce que nous allons faire aujourd'hui n'est pas exactement pareil - nous faisons quelque chose de plus pratique, au lieu d'une œuvre d'art, mais ça va être beaucoup plus cool et plus personnalisable.
J'ai choisi d'omettre les haut-parleurs en partant du principe que vous avez probablement déjà dans votre pièce une bonne paire d'enceintes que vous préférez utiliser. Franchement, placer un haut-parleur dans une lampe est un peu bizarre. Au lieu de cela, je vais ajouter un microphone qui permettra à la foudre de réagir automatiquement aux bruits forts - que ce soit à partir d'un orage ou d'une bande son jouée depuis votre PC ou votre chaîne stéréo..
Nous allons également utiliser un brin de DEL Neopixel RVB complètes (WS2812B) afin de pouvoir reproduire des couleurs autres que le blanc et de contrôler chaque pixel..
Attention: l'alimentation que j'ai utilisée dans ce projet a des bornes à vis qui se connectent à un fil d'alimentation CA. Si vous ne vous sentez pas en confiance pour brancher une fiche, assurez-vous d’acheter une alimentation entièrement fermée. À tout le moins, vous devrez enfermer le bloc d'alimentation dans une zone de projet sécurisée..
Étape 0: Introduction
Voici une vidéo de démonstration du projet terminé. Jusqu'à présent, j'ai implémenté plusieurs modes différents, de l'éclair standard à un nuage acidulé et à une lampe d'ambiance à la décoloration des couleurs, qui peuvent être choisis depuis la télécommande..
Le code complet et les bibliothèques nécessaires sont disponibles au téléchargement depuis ce dépôt Github.
Étape 1: vous aurez besoin
- Brin WS2812B, au prix d'environ 50 $ pour 5 mètres. Ne vous inquiétez pas si vous avez un autre type de brin Neopixel, il est presque certainement supporté par l'interface FastLED, mais votre câblage peut être différent (vous pouvez par exemple avoir besoin d'une ligne de synchronisation en plus du signal).
- Alimentation 5V, 10A + - J'ai acheté des unités 15A pour 11 $ chacune. Ils prennent 120-240V AC en entrée, et produisent une sortie 5V lourde qui sera plus suffisant pour alimenter tous nos pixels à pleine luminosité, et le Arduino.
- Câblage électrique, prise et commutateur en ligne
- Clôture du projet
- Deux Arduinos. 10 $ Les clones Funduino vont bien. Le second est nécessaire pour le contrôle à distance, tandis que le premier contrôle la logique principale et les voyants..
- Deux résistances de 2,2k (ou à peu près) ohms - la valeur exacte importe peu, de 1,5k à 47k devraient fonctionner.
- Planche à pain
- TSOP4838 récepteur IR
- Télécommande IR - J'ai acheté en gros pour environ 2 $ chacun, mais toute télécommande devrait fonctionner avec des modifications du code.
- Grand module de microphone
- Scrap MDF bois pour couper votre base, et un puzzle.
- Matériau d'emballage en polystyrène / inserts de boîte.
- Rembourrage en polypropylène coton. J'ai tiré plus qu'assez de quelques vieux coussins horribles. Si ce n’est pas une option, vous devriez être en mesure d’en acheter de nouvelles pour environ 10 $, ou encore d’utiliser du coton moins cher. J'ai essayé avec les deux: la laine de coton avait besoin de plus de travail et devait être plus moelleuse, mais en un rien, ça marchera.
- Chaîne et crochets pour suspendre le nuage - devrait supporter plus de 5 kg.
- Pistolet à colle à basse température
- Pulvériser de la colle - il est plus facile de coller la farce sur votre nuage, mais un pistolet à colle pourrait également fonctionner.
Le coût total est d’environ 100 dollars, sans compter les outils, mais c’est en grande partie ce que j’ai fait dans toute la maison. Tous les composants électroniques sont couramment disponibles; le microphone peut être trouvé dans un kit de capteur ou acheté individuellement.
Étape 2: Couper la base
Découpez une base rugueuse dans un morceau de MDF avec une scie sauteuse - la forme exacte vous appartient, mais pour une raison quelconque, un nuage a la forme d'un haricot rouge dans mon esprit. Nous y accrocherons des crochets pour les suspendre, mais sinon, cela fournira une base solide sur laquelle construire. La zone centrale sera réservée à l'électronique, au bloc d'alimentation et à la prise en main de la chaîne. Assurez-vous donc de disposer de suffisamment d'espace pour placer au moins le boîtier de votre projet entouré de crochets..
É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 et un peu comme en forme de nuage pour coller la bande de LED sur. Collez de gros morceaux d’emballage en polystyrène sur la base (et sous celle-ci) en utilisant un réglage de chaleur basse sur votre pistolet à colle. Si vous n'avez pas un réglage bas, éteignez le pistolet thermique et laissez-le refroidir un peu avant d'essayer de le coller. Si la température est trop élevée, vous ferez simplement fondre à travers le matériau d'emballage.
Assurez-vous que chaque pièce est solide avant de coller la suivante, et il vaut mieux coller plus que pas assez.
Encore une fois, rappelez-vous de laisser une cavité suffisamment grande dans le nuage pour y insérer l'électronique, la chaîne et les crochets..
Étape 4: Sculptez une forme de nuage 3D
Utilisez un couteau à découper pour nettoyer votre nuage en arrondissant les angles et en éliminant les matériaux inutiles, jusqu'à obtenir une forme de nuage 3D approximative. Peu importe à quel point c'est difficile, car nous allons tout couvrir plus tard - vous pouvez facilement cacher des erreurs..
Étape 5: réparer les crochets, ranger
Enfin, fixez trois ou quatre crochets à la base en MDF, à partir de chaque coin de la cavité du nuage. Vous aurez besoin de percer un petit trou pilote car il est difficile de visser le MDF.
J'ai également tout appliqué avec une simple couche de peinture en aérosol blanche pour assurer une couleur uniforme, mais je ne suis pas sûr que ce soit réellement nécessaire..
Étape 6: Collez les bandes de DEL
Avant de commencer à appliquer de la colle sur les voyants, commencez à partir d'une nouvelle bande ou comptez le nombre total de voyants. Vous devez déterminer le nombre de voyants que vous avez utilisés plus tard au cours de l'étape de programmation. Coupez un petit trou sur le côté de votre nuage et piquez à travers les fils qui constituent le début de votre bande LED dans la cavité du nuage. Veillez à ce que vous partiez de la bonne extrémité - les bandes de LED sont sensibles à la direction. Veillez donc à ce que les flèches de signal pointent loin de la cavité..
En travaillant lentement, collez les pixels DEL sur la base en polystyrène selon un motif circulaire, avant de tirer la bande vers la base pour recouvrir la face inférieure. Encore une fois - vous n'avez pas besoin d'être parfait ici, car une fois que nous avons tout répandu et que nous l'avons étouffé, tout a l'air vraiment magnifique.
J'ai utilisé un total de 85 DEL, soit un peu plus de 2,5 m, après avoir encerclé le corps principal deux fois et utilisé une seule chaîne de DEL sur la face inférieure..
Étape 7: Schéma de câblage
Le câblage est complexe, mais se décompose facilement en sections.
Commencez par connecter et sécuriser l’alimentation électrique, de préférence dans un cas de projet distinct. Je ne vais pas vous faire la leçon sur la sécurité des fils CA actifs, donc je vais supposer que vous pouvez gérer cette partie, et que vous en avez une ligne 5V et GND.
IMPORTANT: lors de la programmation et du test de l’Arduino, le 5V de votre alimentation doit rester isolé de celui de l’Arduino (les GND sont tous connectés); il ne devrait alimenter que la bande de LED, tandis que l’Arduino utilise le 5V fourni par USB. Une fois la programmation terminée, le périphérique USB doit être déconnecté et ne fournira plus 5V à l'Arduino. À ce stade, vous devez connecter le 5V de votre alimentation au rail 5V situé sur le côté gauche de la planche à pain..
Commencez par connecter les broches de masse et 5V de chaque Arduino aux rails latéraux de 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 le port USB branché sur l'un d'eux..
Ensuite, complétez la section de câblage I2C - c’est ce qui permet à nos deux Arduinos de communiquer. Prenez les broches A4 des deux Arduinos sur une seule rangée de la planche à dessin, puis connectez une résistance 2,2k de cette rangée au rail 5V. Répétez cette procédure pour A5 en les connectant sur une rangée distincte, avec une autre résistance de 2,2 K à 5 V.
Connectez ensuite le récepteur infrarouge - vérifiez la configuration des broches si vous avez un autre modèle, mais la broche du signal doit aller à D11 sur un Arduino. Télécharger le thundercloud_ir_receiver.ino esquisser cette Arduino (tout le code ici), puis débranchez la clé USB puisque nous n'en avons plus besoin.
Sur l’autre Arduino, connectez le Data In broche de signal du début de votre bande de LED à D6. Le GND de vos voyants devrait être commun à tous les Arduinos, mais à ce stade, le 5V proviendra directement du bloc d'alimentation..
Également sur cet Arduino, branchez le module de microphone sur A0. Télécharger l'autre thundercloud.ino esquisser et garder le port USB branché pour le moment pendant le débogage. Commencez par changer le NUM_LEDS variable de manière appropriée.
Étape 8: Collez sur la farce
Enfin, collez votre farce. Il n’ya pas de technique particulière ici: il suffit de vaporiser une couche de colle sur le nuage et d’en empoigner une poignée. Il est plus facile de travailler avec le rembourrage si vous l'avez déjà fait pour augmenter la surface, bien que.
Si vous avez utilisé la même télécommande que moi, le bouton STROBE la met en mode cloud réactif; FLASH est le mode couleur Trippy et FADE est la lampe d’ambiance à la décoloration lente..
Étape 9: Explication du code
Pourquoi deux Arduinos? La programmation du récepteur infrarouge et la bibliothèque de pilotes de pixels WS2818B sont très sensibles à la synchronisation. Si la synchronisation est retardée, le signal IR est corrompu. En attribuant à chaque circuit son propre micro-contrôleur et en les laissant parler via le protocole I2C, nous pouvons nous assurer que la synchronisation est parfaite pour chacun. Vous pouvez également trouver des modules IR distincts avec leur propre microcontrôleur intégré, mais mes recherches ont montré que ceux-ci coûtaient en réalité plus cher qu'un simple clone Arduino et une DEL IR. Thundercloud_ir_receiever ne devrait pas nécessiter d'explication, bien que vous souhaitiez peut-être lire sur les bases d'I2C en premier.
Sur le contrôleur thundercloud principal, nous définissons différents modes de fonctionnement, tels que ON (les effets de la foudre ne sont pas activés par le son), CLOUD (la foudre est activée uniquement par le son), ACID (le nuage affiche des couleurs trippantes) ou les modes monochromes simples. Pour définir un nouveau mode, ajoutez à la enum Tout d’abord, ouvrez ensuite la console et recherchez un bouton de télécommande pour le mapper; chaque presse à distance doit imprimer une ligne de débogage. dans le receiveEvent () méthode, nous mappons ces pressions sur un mode, ajoutez-y une instruction switch supplémentaire. Enfin, dans l’ensemble boucle() méthode, nous routons ces sélections de mode à différentes fonctions d'affichage.
Le code de lissage de microphone est à l'origine d'Adafruit - je l'ai simplifié pour nos besoins et ajouté un déclencheur lorsqu'un bruit plus fort que la moyenne est entendu.
Étape 10: Modes d'éclairage
Les écrans de foudre combinent trois différents “les types” de la foudre pour atteindre quelque chose d'assez réaliste, ou du moins agréable à l'oeil. Le premier type est fissure(), où chaque voyant est brièvement allumé pendant 10 à 100 ms. Le second type est roulant() - où chaque voyant a 10% de chances d’activation et que la boucle entière est répétée 2 à 10 fois, avec un délai de 5 à 100 ms entre chaque cycle. Le troisième type est coup de tonnerre (), qui sélectionne deux sections différentes de la bande, chacune entre 10 et 20 LED, fait clignoter brièvement ces sections de 3 à 6 fois. Examinez ces méthodes en détail pour voir comment chaque DEL est activée - la roue chromatique HSV est utilisée partout (le blanc est donc H = 0, S = 0, V = 255). Je vous encourage à modifier ou à écrire de nouveaux affichages éclair, puis à les partager dans les commentaires si vous en créez un que vous aimez..
Chaque fois que la foudre est déclenchée ou que la boucle est exécutée, le nuage choisit de manière aléatoire entre les trois types de foudre. Enfin, un réinitialiser() méthode éteint toutes les lumières, sinon ils vont “rappelles toi” leur état antérieur.
Questions ou problèmes - veuillez entrer en contact avec les commentaires et je ferai de mon mieux pour vous aider. Si vous avez un compte Github, n'hésitez pas à poster des bogues ou des problèmes dans le suivi des problèmes. Si vous avez apporté des modifications ou écrit de nouvelles fonctions d'éclairage, veuillez partager un lien vers votre code sur Gist ou Pastebin..
Explorer plus sur: Arduino, Smart Lighting.