Publicité
Si vous regardez beaucoup de films sur votre PC ou votre centre multimédia, je suis sûr que vous avez fait face au dilemme de l'éclairage; éteignez-vous complètement toutes les lumières? Les gardez-vous à fond? Ou utilisez-vous un gradateur pour garder une lueur jaune terne quelque part? Eh bien, ne souffrez plus.
Pour moins de 100 $, vous pouvez configurer un système d'éclairage incroyable qui va refléter ce qui est à l'écran; si la vidéo est une scène de nuit bleue, les lumières seront bleues; lorsqu'un feu orange clignote, vos lumières aussi. Bienvenue dans le monde de l'éclairage RVB ambiant.
Composants
- Bande lumineuse RVB - c'est une bande de 5 mètres de LED RGB qui peut être achetée sur eBay et expédiée de Hong Kong pour moins de 20 £ chacune. Si vous achetez dans des magasins d'électronique, vous paierez au mètre et une bobine de 5 m coûtera trois ou quatre fois plus, alors achetez en ligne. Ce type de bandes LED peut être changé en n'importe quelle couleur, mais seulement en une seule fois - elles ne peuvent pas être ajustées individuellement.
- Alimentation 12 V - la puissance (ampage) requise dépend du nombre de bandes de LED que vous allez connecter. Chaque mètre consomme environ 0,6 ampère, mais cela dépend de la densité de vos LED, alors assurez-vous de vérifier votre bande de LED particulière. 3A serait suffisant pour la bande de 5 m que j'ai connectée ci-dessus, et des blocs d'alimentation séparés peuvent être achetés pour environ 10 £ si vous ne pouvez pas en acheter un ailleurs.
- 3 x Transistors MOSFET N - vous pouvez probablement trouver moins cher, mais j'ai acheté un pack de 6 (type STP16NF06FP) pour environ 10 £. Ceux-ci sont utilisés pour isoler le courant de l'Arduino - connecter les bandes directement à l'Arduino le ferait frire avec la quantité de courant qu'ils consomment. Vous avez besoin d'un transistor MOSFET par canal de couleur LED, pour le rouge, le vert et le bleu.
- Arduino Qu'est-ce que l'Arduino et que pouvez-vous en faire?L'Arduino est un remarquable petit appareil électronique, mais si vous n'en avez jamais utilisé auparavant, quels sont-ils exactement et que pouvez-vous en faire? Lire la suite - Je n'ai pas inclus le coût de cet article, car il est supposé que vous en avez déjà un, et il existe une variété de clones que vous pouvez acheter si vous ne pouvez pas vous en procurer un officiel.
Le coût total était donc d'environ £40 sans compter l'Arduino.
introduction
Le projet se compose de deux parties. Nous allons d'abord créer un circuit Arduino de base qui écoute les commandes de l'ordinateur et règle les LED RVB sur une couleur appropriée. La seconde consiste à utiliser une nouvelle application appelée En traitement et Java côté ordinateur - pour déterminer les couleurs qui sont actuellement à l'écran, les faire la moyenne et les envoyer au port de communication série pour que l'Arduino réagisse.
Partie 1: Circuit et Arduino
Le circuit que nous utilisons est très simple, comme vous pouvez le voir sur le schéma ci-dessous. La bande LED doit être fournie avec une fiche mâle à une extrémité que vous pouvez placer directement dans la planche à pain.
Votre bande LED peut varier, mais si vous regardez attentivement, vous verrez 12v, R, G, B écrit sur les rails quelque part. Ces bandes peuvent en fait être coupées à ces points de cuivre (toutes les 3 LED sur celles que j'ai), donc si vous voulez couper les bandes à dans les coins de votre téléviseur, vous pouvez le faire en toute sécurité - vous n'avez pas besoin d'utiliser les 5 mètres non plus, il vous en restera peut-être pour un avenir projet. Connectez le positif 12v directement à l'alimentation externe.
Les MOSFET ont trois broches; porte, drainer, et la source. La porte est comme le commutateur électronique que l'Arduino contrôlera. Ceci détermine alors le courant circulant entre la source et le drain. Le drain de chaque MOSFET doit être connecté à la masse de l'Arduino et à la masse de l'alimentation, tandis que la source se connecte aux canaux de la bande LED.
Une fois le circuit terminé, téléchargez et exécutez ce code de test (originaire de LadyAda, broches modifiées). Vous devriez voir votre bande LED tourbillonner à travers une variété de couleurs.
Partie 2: Traitement
Télécharger En traitement et courir. Vous pourriez être surpris de le trouver presque exactement comme l'environnement de développement Arduino; c'est parce que l'environnement Arduino était basé sur lui, bien qu'ils remplissent tous deux des fonctions différentes. Prenez ce code – à l'origine par Silicon Republic mais fortement modifié par moi pour rendre les paramètres de taille d'écran automatiques et avec une meilleure représentation des couleurs - et prenez un moment pour le regarder. Fondamentalement, il utilise une classe Java appelée Robot faire une capture d'écran tous les 10ms; il sélectionne ensuite chaque pixel impair et fait la moyenne de la couleur totale. Si les performances vous posent problème, augmentez la skipValue variable à 3 ou 4 pour ignorer plus de pixels - l'effet global devrait être le même, mais il s'exécutera plus rapidement car il examine moins de pixels. Enfin, j'ai ajouté un filtre qui aide à saturer la couleur en augmentant le maximum et en diminuant les valeurs RGB minimales trouvées (sans cela, j'ai trouvé les couleurs trop blanches).
Exécutez l'application; la première fois, vous obtiendrez probablement une erreur en essayant d'accéder au mauvais port série.
Vérifiez la fenêtre de débogage pour une liste des ports série actuels et notez le numéro à côté de quoi votre Arduino est branché. Dans mon cas sur un Mac, la connexion USB est le port 4. Modifiez le numéro de cette ligne sur le bon port:
port = nouveau Serial (this, Serial.list () [4], 9600); // définir le débit en bauds
Enregistrez et réexécutez; vous devriez voir une petite fenêtre s'ouvrir - cela représente la couleur moyenne de tout à l'écran. Lancez une application de peinture ou quelque chose avec des couleurs vives pour la tester, sinon elle affichera probablement juste une nuance de gris trouble. Arrêtez l'application lorsque vous avez terminé les tests car nous avons besoin de l'accès au port série pour programmer l'Arduino.
Enfin, charger ce code sur votre Arduino. Au lieu d'envoyer des couleurs aléatoires à la bande LED, ce code lit les valeurs du port série (vers lequel le traitement est émis). C'est assez facile à comprendre, la seule partie difficile peut être l'utilisation d'un marqueur dans les données série:
if (Serial.available ()> = 4) { if (Serial.read () == 0xff) { rouge = Serial.read (); vert = Serial.read (); bleu = Serial.read (); } }
Cela garantit que nous lisons les valeurs d'octets correctes - l'application de traitement génère un marqueur comme un «point d'arrêt» entre chaque ensemble de valeurs afin que l'Arduino ne se désynchronise pas et pense que la valeur verte est pour bleu etc.
Une fois le code Arduino téléchargé (il ne devrait pas y avoir de sortie sur la bande LED initialement), vous pouvez alors charger et exécuter l'application de traitement; immédiatement, vous devriez voir votre lumière ambiante fonctionner.
Voici une démonstration vidéo de la façon dont cela a fonctionné pour moi avec un clip vidéo aléatoire.
Qu'est-ce que tu penses?! Bien qu'il ne soit pas aussi impressionnant que quelque chose qui analyse chaque partie de l'écran et utilise pixels LED individuels, c'est beaucoup moins cher et beaucoup plus lumineux. Le seul inconvénient est que tout doit être exécuté sur votre ordinateur Media Center - cela ne fonctionnera pas avec la diffusion TV régulière ou votre Xbox 360, par exemple. Si vous avez des problèmes, des questions ou des suggestions, n'hésitez pas à demander; ou peut-être un lien vers une vidéo de votre configuration terminée.
James est titulaire d'un BSc en intelligence artificielle et est certifié CompTIA A + et Network +. Il est le développeur principal de MakeUseOf et passe son temps libre à jouer au paintball VR et aux jeux de société. Il construit des PC depuis qu'il est enfant.