Table des matières:

Lumière ambiante interactive : 8 étapes
Lumière ambiante interactive : 8 étapes

Vidéo: Lumière ambiante interactive : 8 étapes

Vidéo: Lumière ambiante interactive : 8 étapes
Vidéo: Inside a $48,000,000 Beverly Hills "MODERN BARNHOUSE" Filled with Expensive Art 2024, Juillet
Anonim
Lumière ambiante interactive
Lumière ambiante interactive
Lumière ambiante interactive
Lumière ambiante interactive
Lumière ambiante interactive
Lumière ambiante interactive

C'est mon premier instructable ! S'il vous plaît, supportez-moi pendant que je lutte pour écrire un anglais correct. N'hésitez pas à me corriger ! J'ai commencé ce projet juste après le début du concours 'Let it glow'. J'aurais aimé avoir fait beaucoup plus et fini ce que je voulais faire. Mais entre l'école et le travail, je n'ai pas eu autant de temps que je le souhaitais. Néanmoins, je laisse ici un rapport de mes expériences en tant qu'instructable, afin que tout le monde puisse essayer de faire ce que j'ai fait. Cette instructable n'est pas destinée à servir de guide et d'enseigner comment faire cet engin. Ce n'est pas un guide pour les débutants en électronique. C'est plus comme partager une idée et un objectif que je souhaite poursuivre. Si vous êtes un débutant/complètement ignorant en électronique et que vous souhaitez faire quelque chose comme ça, je suis désolé ! Mais nous pouvons toujours essayer de vous aider. Voir la dernière étape. Nous avons déjà vu de nombreux projets de lumière ambiante. La plupart d'entre eux utilisent des LED RVB: - Pour éclairer une pièce avec une seule couleur, créant une atmosphère qui correspond à votre humeur - Pour créer des effets lumineux à partir de la couleur du téléviseur/moniteur ou de l'audio. Il y en a même quelques-uns sur instructables.com Connexes: Systèmes d'éclairage ambiant DIYLight Bar Ambient LightingConstruire vos propres barres d'éclairage de couleur ambiante En utilisant cette compétition comme excuse, j'ai commencé un projet qui me trotte dans la tête depuis un certain temps. J'ai toujours voulu créer quelque chose de similaire à ces lumières d'ambiance et remplir les murs de ma chambre de LED RVB. Mais, en allant plus loin, en rendant tous et chacun d'entre eux contrôlables. Ce projet aboutira, espérons-le, à un kit électronique open source pour les amateurs et les bricoleurs électroniques, permettant le piratage matériel/logiciel et l'intégration sensorielle. Voici un petit aperçu de ce que j'ai fait:

Étape 1: Explorer l'idée

Je veux pouvoir remplir les murs de ma chambre avec des LED RVB, en contrôlant la couleur et la luminosité de chaque LED. Je vais utiliser un microcontrôleur pour la facilité d'utilisation et la flexibilité fournies. Malheureusement, je ne peux pas contrôler des centaines de LED avec les quelques broches disponibles sur les microcontrôleurs. Il serait même difficile de coder le contrôle d'autant de LED. J'ai donc décidé de diviser toutes les LED en plusieurs barres plus petites et pour chaque barre, je pourrais utiliser un microcontrôleur. Ensuite, j'utiliserais les capacités de communication des microcontrôleurs pour partager des informations entre eux. Ces informations pourraient être la couleur et la luminosité des LED, des motifs/séquences de couleurs et des informations sensorielles. Pour chaque barre, j'ai décidé d'utiliser 16 LED RVB. Il en résulte une barre ni trop grande ni trop petite. De cette façon, j'utilise un nombre acceptable de ressources pour chaque led, réduisant les coûts pour chaque barre. Néanmoins, 16 LED RVB sont 48 LED (3*16=48) que le microcontrôleur contrôle. Avec les coûts à l'esprit, j'ai décidé d'utiliser le microcontrôleur le moins cher que j'ai pu utiliser. Cela signifie que le microcontrôleur n'aura que jusqu'à 20 broches d'E/S, pas assez pour 48 LED. L'alternative à laquelle je pourrais penser est d'utiliser une sorte de registre à décalage verrouillé!Reprise:- Faire et une lumière ambiante interactive- Faire une barre standard de LED contrôlables- Possibilité de connecter plusieurs barres pour remplir une pièce- Permettre l'adaptation/configuration de l'utilisateur et l'intégration sensorielle

Étape 2: Matériel

Matériel
Matériel
Matériel
Matériel

Comme dit à l'étape précédente, je souhaite faire plusieurs barres pour éclairer une pièce. Cela amène la question des coûts à l'esprit. Je vais essayer de faire de chaque barre le moyen le plus rentable possible. Le microcontrôleur que j'ai utilisé était un AVR ATtiny2313. Ceux-ci sont plutôt bon marché et j'en avais quelques-uns qui traînaient. ATtiny2313 possède également une interface série universelle et une interface USART qui seront utiles dans les étapes suivantes. J'avais également trois expandeurs de ports d'E/S MCP23016 - I2C 16 bits qui traînaient, juste ce qu'il faut ! J'ai utilisé chaque extenseur de port pour contrôler une couleur des 16 LED. Les LED… Malheureusement, étaient les moins chères que j'ai pu trouver. Ils sont 48 rouges, verts et bleus ~10000mcd 5mm avec un angle de 20 degrés. Cela ne devrait pas avoir d'importance pour le moment, puisqu'il ne s'agit que d'un prototype. Malgré cela, le résultat est plutôt sympa ! J'utilise le microcontrôleur à 8 MHz. Le bus I2C est cadencé à 400 kHz. La fréquence de commutation des LED est d'environ 400 Hz. De cette façon, si je suis capable de piloter 48 LED sans les pousser à la limite, j'aurai de la place pour plus plus tard !

Étape 3: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

Après avoir conçu le circuit, je l'ai construit dans plusieurs maquettes, à des fins de prototypage. Après plusieurs heures à couper les fils et à assembler le circuit, j'ai obtenu ce résultat: une planche à pain géante avec 48 LED et des tonnes de fil !

Étape 4: Contrôler ?

Contrôler?
Contrôler?

C'est la partie la plus difficile du projet. Je voulais créer un algorithme de contrôle suffisamment générique pour gérer les motifs/séquences et également contrôler la luminosité et la couleur de chaque LED. Pour contrôler les LED, je dois envoyer au MCP23016 une trame de 4 octets (1 octet = 8 bits). Un octet avec l'adresse du CI correspondant à la couleur, 1 octet avec la commande "write" et 2 octets avec la valeur des 16 bits (LED). Le circuit intégré est connecté aux LED en tant que "évier", ce qui signifie qu'une valeur logique 0 à la broche allumera la LED. Et maintenant, la partie difficile, comment faire un contrôle PWM pour 48 LED ? Étudions PWM pour une LED ! PWM expliqué @ Wikipedia. Si je veux la luminosité de la LED à 50%, ma valeur PWM est de 50%. Cela signifie que la LED, dans une période de temps, devrait être allumée pendant la même durée que éteinte. Prenons une période de 1 seconde. PWM de 50% signifie que dans cette 1 seconde, le temps d'activation est de 0,5 seconde et le temps d'arrêt est de 0,5 seconde. PWM de 80 % ? 0,2 seconde d'arrêt, 0,8 seconde d'activation ! Facile, n'est-ce pas ? Dans le monde numérique: Avec une période de 10 cycles d'horloge, 50 % signifie que pendant 5 cycles, la LED est allumée et pendant 5 autres cycles, la LED est éteinte. 20 % ? 2 cycles allumés, 8 cycles éteints. 45 % ? Bon, on ne peut pas vraiment obtenir 45%… Puisque la période est en cycles et que nous n'avons que 10 cycles, nous ne pouvons diviser le PWM que par pas de 10%. Cela signifie que l'évolution de la broche devrait être, pour 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Ou même 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; En programmation, nous pouvons faire cette séquence d'activation et de désactivation d'un tableau. Pour chaque cycle que nous sortons sur la broche, la valeur de l'index était le cycle. Ai-je eu du sens jusqu'à présent? Si nous voulons faire LED0 50% et LED1 20%, nous pouvons ajouter les deux tableaux. Pour piloter la broche LED0: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0;Pour piloter la broche LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0;Résultant en LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; en sortant cette séquence de nombres dans le circuit intégré d'extension de port, nous obtiendrions le LED0 avec 50% de luminosité et LED1 avec 20% !! Simple pour 2 LED, non ? Maintenant, nous devons faire cela pour 16 LED, pour chaque couleur ! Pour chacun de ces tableaux, nous avons une combinaison de luminosité pour chaque couleur (16 LED) Chaque fois que nous voulons une autre combinaison de couleurs, nous devons changer ce tableau.

Étape 5: Facilitez-vous la tâche

Facilitez-vous la tâche !
Facilitez-vous la tâche !
Facilitez-vous la tâche !
Facilitez-vous la tâche !

L'étape précédente est trop de travail pour faire une séquence simple… J'ai donc décidé de faire un programme, où nous indiquons les couleurs de chaque LED dans une étape de la séquence et nous obtenons les trois tableaux de l'étape. J'ai fait ce programme dans LabView en raison de contraintes de temps.

Étape 6: Premières expériences

Premières expériences
Premières expériences

Chargement de plusieurs étapes dans le microcontrôleur et nous obtenons quelque chose comme ceci: Désolé pour la mauvaise qualité des vidéos ! J'ai défini le nombre maximum de pas d'une séquence à 8, et limité le PWM à 20% de sauts. Cette décision est basée sur le type de contrôle que j'utilise et la quantité d'EEPROM dont dispose l'ATtiny2313. Dans ces expériences, j'ai essayé de voir quel type d'effets je pouvais produire. Je dois dire que je suis satisfait du résultat !

Étape 7: Contrôle en temps réel

Contrôle en temps réel
Contrôle en temps réel
Contrôle en temps réel
Contrôle en temps réel
Contrôle en temps réel
Contrôle en temps réel

Comme mentionné dans les étapes précédentes, je souhaite communiquer avec tous les microcontrôleurs contrôlant les LED de ma pièce. J'ai donc utilisé l'interface USART disponible dans ATtiny2313 et je l'ai connectée à mon ordinateur. J'ai également créé un programme dans LabView pour contrôler la barre de LED. Dans ce programme, je suis capable de dire au microcontrôleur combien de temps dure la séquence, la couleur de chaque LED et le temps entre les étapes d'une séquence. Dans la vidéo suivante, je vais montrer comment je peux changer la couleur des LED et définir des séquences.

Étape 8: Conclusions

Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion

Je pense avoir réussi cette première approche de mon projet. Je suis capable de contrôler 16 LED RGB avec peu de ressources et de contraintes. Il est possible de contrôler chaque LED séparément, en créant n'importe quelle séquence souhaitée.

Travail futur:

Si je reçois des commentaires positifs de la part des gens, je peux développer davantage cette idée et créer un kit électronique de bricolage complet, avec des cartes de circuits imprimés et des instructions de montage.

Pour ma prochaine version, je vais: - Remplacer le microcontrôleur par un avec ADC - Remplacer le MCP23016 par un autre type de sortie parallèle en série qui peut absorber plus de courant à partir des LED - Créer un logiciel open source pour communiquer avec le microcontrôleur et contrôler les LED -Développer la communication entre plusieurs microcontrôleurs.

Avez-vous une suggestion ou une question? Ou laissez un commentaire !

Finaliste du concours Let It Glow!

Conseillé: