Dans cet article, nous considérerons quelques effets très utiles pour l'intérieur qui peuvent être créés à l'aide d'une bande LED. Nous parlerons également des algorithmes, de la façon dont les calculs mathématiques permettent aux LED de créer l'illusion de chaleur et de confort, à savoir une flamme, une véritable flamme numérique.
Tous les codes source qui seront analysés plus tard peuvent télécharger depuis la page du projet auteur (AlexGyver).
Voyons d'abord e composant. Pour toi fais-le toi-même faire une telle beauté à la maison Les composants suivants sont requis:
- Pilote pour bande RVB;
- Ruban RVB;
- Alimentation 12V pour bande RVB;
- Arduin® Nano.
Chacun de vous peut télécharger et télécharger le firmware et obtenir votre foyer numérique. Nous contrôlerons les bandes LED du microcontrôleur, dans cet exemple Arduino Nano.
Commençons par la dimension zéro la plus simple - un point (ou une bande entière de points).
Il s'agit de la bande LED RGB la plus ordinaire, alimentée par une tension de 12V et dotée d'un contrôle à trois canaux pour chaque couleur.
En utilisant le signal PWM (nous l'avons en 8 bits), vous pouvez régler la luminosité de chaque couleur, et ainsi obtenir 16,7 millions de couleurs et de nuances. Mais nous nous intéressons au feu, ou plutôt à son imitation. Pour simuler une flamme, il a été décidé de travailler dans l'espace colorimétrique hsv (couleur, saturation, luminosité).
Ces 3 paramètres vous permettent d'obtenir 255 nuances de base, plus chaque nuance pour faire 255 gradations de saturation, c'est-à-dire se mélange avec la couleur blanche. Eh bien, le troisième paramètre est la luminosité, dans un langage simple - un mélange d'ombre et de couleur noire.
Il existe plusieurs algorithmes pour convertir d'un espace hsv pratique en RVB, utilisez simplement l'un d'entre eux.
Ensuite, vous devez spécifier le comportement du feu. Supposons que la force de la flamme soit une certaine quantité, qui dans la valeur minimale donne aux LED une couleur rouge saturée et une faible luminosité, et dans la valeur maximale donne une couleur blanc-jaune et une couleur vive maximale.
Pour obtenir l'effet de flamme, nous devons faire de cette valeur des mouvements oscillatoires aléatoires, les mouvements doivent être aléatoires, mais en même temps assez lisses, c'est-à-dire quelque chose de similaire à une lumière tremblante. Suite à cette valeur, respectivement, la couleur et la luminosité de la flamme le long du gradient changeront.
L'auteur propose de résoudre ce problème de la manière suivante: il existe un algorithme de filtrage très simple, une moyenne mobile, qui transforme une forte variation de valeur en un processus fluide, un seul coefficient et un calcul assez simple.
L'idée est la suivante: il faut, disons 5 fois par seconde, définir une nouvelle position aléatoire pour la valeur du feu, et quelque part environ 50 fois par seconde pour filtrer cette valeur, en la modifiant progressivement. En conséquence, un tel processus aléatoire est formé.
Dans un exemple concret, tout fonctionne comme prévu.
Maintenant, il est nécessaire de traduire notre valeur en couleur de la flamme selon la loi mentionnée ci-dessus, et d'obtenir un feu unidimensionnel.
La bande LED ainsi programmée peut être cachée, par exemple, par la plinthe ou par une partie saillante. En outre, un tel ruban peut fournir un éclairage de fond, il semble assez intéressant et inhabituel.
De plus, la bande peut être envoyée au sol à une courte distance, et ainsi obtenir également un effet plutôt intéressant.
Et bien sûr, un morceau de ruban adhésif peut être utilisé pour éclairer une cheminée ou la simuler. Et si vous supprimez la couleur vive du jaune à l'orange, vous obtenez une imitation de charbons fumants.
Étant donné que nous avons du ruban RVB, nous pouvons créer n'importe quelle couleur de feu par lui-même. Vous voulez du vert mort - si facilement!
Nous avons besoin d'un feu magiquement bleu - pas de problème!
Ensuite, installez le programme et les pilotes, comme indiqué dans les instructions sur page du projet, téléchargez et exécutez le firmware.
Au tout début, il y a tous les paramètres nécessaires. Avec leur aide, vous pouvez personnaliser entièrement le feu pour vous-même, à savoir: la couleur, le comportement, etc.
En fait, c'était le moyen le plus simple de «brûler» la bande LED. Voyons maintenant des exemples plus intéressants. Pour d'autres travaux, vous aurez besoin adresse led bande.
Cette bande vous permet de contrôler individuellement chacune de ses LED et chacune comprend l'une des 16,7 millions de nuances de couleur.
Tout est connecté très simplement, selon ce schéma:
Aucun pilote n'est nécessaire, mais une résistance est recommandée. Vous pouvez vous en passer, mais il y a un risque d'épuisement de la première LED, et si cela se produit, les prochaines ne fonctionneront pas non plus.
Avec un éclairage direct, par exemple, sous le canapé, vous obtenez un excellent canapé infernal avec l'effet de charbons fumants.
De plus, une telle bande peut être insérée dans un profil léger et l'utilisation comme élément indépendant de l'intérieur.
Cela semble assez bon, d'accord, mais essayons toujours de créer des flammes distinctes.
Nous laisserons l'algorithme de la même manière. Nous divisons la bande en zones de différentes largeurs, chaque zone aura son propre processus aléatoire. Pour rendre ce processus encore plus semblable à une vraie flamme, nous remplirons les zones des bords au centre, augmentant progressivement notre valeur aléatoire à sa valeur actuelle. Toujours dans le processus de «gravure», la taille des zones devrait également changer de façon aléatoire.
Voici à quoi cela ressemble:
Examinons maintenant un autre processus aléatoire intéressant appelé bruit Perlin, que Ken Perlin a mis au point en 1983.
Le bruit de Perlin vous permet de créer une distribution lissée aléatoire de la magnitude dans n'importe quel nombre de dimensions. Le célèbre filtre cloud de Photoshop est un exemple de bruit Perlin bidimensionnel.
Mais le bruit tridimensionnel de Perlin permet de générer, par exemple, un paysage montagneux, et de le générer très aléatoirement et à l'infini, et en même temps pratiquement sans créer de charge sur les composants informatiques, puisque l'algorithme y est peu coûteux en calcul.
Le plan d'action est le suivant: nous créons d'abord une région bidimensionnelle de bruit Perlin et nous la déplacerons d'une certaine manière, balayant la ligne de pixels et la sortant vers les LED.
L'algorithme tel que mentionné ci-dessus n'est pas très compliqué et Arduino traiter calmement avec lui.Le résultat est un effet très cool, aussi lisse que possible, aléatoire et déjà très similaire à la vraie flamme avec un éclairage final.
Avec un éclairage direct, cela ressemble à ceci:
Mais tous ces algorithmes étaient des incendies pour une bande. Et qu'en est-il de coller le ruban en zigzag et d'essayer de faire un feu bidimensionnel sur la matrice?
Ces matrices peuvent être achetées auprès des Chinois. Au-dessus de la matrice, nous plaçons un diffuseur et un verre teinté de film automobile, c'est-à-dire un véritable écran ultra-basse résolution.
Au fait, cela semble assez réaliste. Voir la vidéo originale de l'auteur pour plus de détails:
C’est tout. Merci de votre attention. A très bientôt!