Si vous regardez beaucoup de films sur votre PC ou votre centre mé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 installer un système d'éclairage étonnant qui reflète ce qui est à l'écran; si la vidéo est une scène de nuit bleue, les lumières seront bleues; quand un feu orange flamboie, vos lumières aussi. Bienvenue dans le monde de l'éclairage RGB ambiant.
Composants
- Bande lumineuse RVB - Il s'agit d'une bande de 5 mètres de LED RVB qui peuvent être achetés sur eBay et expédiés de Hong Kong pour moins de 20 £ chacun. Si vous achetez dans les magasins d'électronique, vous payerez au mètre et une bobine de 5m coûtera trois ou quatre fois plus cher, alors achetez en ligne. Ces types de bandes LED peuvent être changés en n'importe quelle couleur, mais seulement en une seule fois - ils ne peuvent pas être ajustés individuellement.
- Alimentation 12 V - La puissance (ampage) requise dépend du nombre de bandes de LED que vous connecterez. Chaque mètre tire environ 0, 6 ampères, 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 liée ci-dessus, et des alimentations séparées peuvent être achetées pour environ 10 £ si vous ne pouvez pas en trouver une ailleurs.
- 3 transistors MOSFET N - vous pouvez 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 - en connectant les bandes directement à l'Arduino, il frire avec la quantité de courant qu'ils tirent. 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 Arduino et que pouvez-vous faire avec? Qu'est-ce que Arduino et que pouvez-vous faire avec? L'Arduino est un petit appareil électronique remarquable, mais si vous n'en avez jamais utilisé auparavant, que sont-ils exactement, et que pouvez-vous faire avec un? 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 y a une variété de clones que vous pouvez acheter si vous ne pouvez pas se permettre un officiel.
Le coût total était donc autour de £ 40 sans compter l'Arduino.
introduction
Le projet se compose de deux parties. Tout d'abord, nous allons créer un circuit Arduino de base qui écoute les commandes de l'ordinateur, et définit les LED RVB à une couleur appropriée. La seconde consiste à utiliser une nouvelle application appelée Processing et Java du côté de l'ordinateur - pour déterminer les couleurs actuellement affichées à l'écran, les calculer en moyenne et les afficher sur le port de communication série auquel l'Arduino peut réagir.
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 de LED devrait être fournie avec une prise 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 effectivement être coupées à ces points de cuivre (tous les 3 LED sur ceux que j'ai), donc si vous voulez couper les bandes aux coins de votre téléviseur, vous pouvez le faire en toute sécurité - vous ne devez pas utiliser l'ensemble 5m, vous en aurez peut-être encore pour un projet futur. Connectez le positif 12v directement à l'alimentation externe.
Les MOSFET ont trois broches; porte, drain, et 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 terre de l'Arduino, et à la masse de l'alimentation, pendant que la source se connecte aux canaux de la bande LED.
Lorsque vous avez terminé le circuit, téléchargez et exécutez ce code de test (à l'origine de LadyAda, broches modifiées). Vous devriez voir votre bande de LED tourbillonner à travers une variété de couleurs.
Partie 2: Traitement
Télécharger Traitement et exécution. Vous pourriez être surpris de constater qu'il ressemble presque exactement à l'environnement de développement Arduino; C'est parce que l'environnement Arduino était basé dessus, bien qu'ils aient tous les 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 le temps de regarder par-dessus. Fondamentalement, il utilise une classe Java appelée Robot pour faire une capture d'écran toutes les 10ms ; il sélectionne ensuite chaque pixel impair et fait la moyenne de la couleur totale. Si la performance est un problème pour vous, augmentez la variable skipValue à 3 ou 4 pour ignorer plus de pixels - l'effet global devrait être le même mais il s'exécutera plus vite car il examine moins de pixels. Enfin, j'ai ajouté un filtre qui permet de saturer la couleur en augmentant le maximum et en diminuant les valeurs RVB minimales trouvées (sans cela, j'ai trouvé les couleurs trop blanches).
Lancez 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 ce que votre Arduino est branché. Dans mon cas sur un Mac, la connexion USB est le port 4. Changer le numéro dans cette ligne pour le port correct:
port = new Série (this, Serial.list () [4], 9600); // régler le débit en bauds
Enregistrer et relancer; vous devriez voir apparaître une petite fenêtre - cela représente la couleur moyenne de tout ce qui est à l'écran. Lancez une application de peinture ou quelque chose avec des couleurs fortes pour le tester, sinon il va probablement afficher une nuance de gris sombre. Arrêtez l'application lorsque vous avez fini de tester car nous avons besoin de l'accès au port série pour programmer l'Arduino.
Enfin, chargez ce code sur votre Arduino. Au lieu d'envoyer des couleurs aléatoires à la bande de LED, ce code lit les valeurs du port série (sur lequel le traitement est envoyé). C'est assez facile à comprendre, la seule partie difficile peut être l'utilisation d'un marqueur dans les données de série:
if (Serial.available()>=4) { if(Serial.read() == 0xff){ red = Serial.read(); green= Serial.read(); blue = Serial.read(); } }
Cela garantit que nous lisons les bonnes valeurs d'octets - l'application 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 le bleu, etc.
Une fois le code Arduino téléchargé (il ne devrait pas y avoir de sortie sur la bande de LED initialement), vous pouvez charger et exécuter l'application de traitement; immédiatement, vous devriez voir votre lumière ambiante fonctionner.
Voici une démo vidéo de comment cela a fonctionné pour moi avec un clip vidéo trippy 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 des pixels LED individuels, il est beaucoup moins cher et beaucoup plus lumineux. Le seul inconvénient est que tout doit être exécuté sur votre ordinateur Media Center - il ne fonctionnera pas avec la diffusion télévisée 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.