Lumières ambiantes d’ordinateur - en utilisant un Arduino avec bande de NeoPixel (1 / 1 étapes)

Etape 1: Le Code

La vraie viande et OS de ce projet est le code qui permet l’éclairage ambiant. Un temps, que j’ai trouvé un code par Rajarshi Roy qui a pris des valeurs RVB moyenne d’une capture d’écran de l’écran de l’ordinateur (à l’aide de traitement) pour être utilisé avec une rgb led. Ensuite, j’ai modifié le code pour analyser la capture d’écran dans 10 sections (192 x 1080 de résolution). Une fois que j’ai eu la valeur moyenne de chaque section, j’étais alors en mesure de sortie les valeurs à l’arduino et puis pour la bande de NeoPixel. Puisqu’il y a 30 led s à travailler, j’ai attribué 3 conduit de représenter chaque partie de l’écran.

J’ai expérimenté avec des sections plus, mais pas plus que 10 causé trop d’utilisation de l’UC.

Peu de temps après, j’ai décidé de mettre en œuvre TouchOSC dans le programme pour permettre un contrôle iPhone. Ce code n’est pas inclus dans ce instructable, cependant si vous écrivez-moi (cgmalantonio je vous enverrai volontiers le code. Ce code permet une bascule sur les lumières ambiantes, ainsi que les curseurs RGB et un pavé tactile XY pour générer encore plus de couleurs.

Eh bien, permet de commencer !

Tout d’abord, nous avons le code Arduino, celui-ci est compétent pour prendre les valeurs RVB de l’esquisse de traitement et la sortie de ces valeurs à la bande de NeoPixel.

--------------------------------------------------------------------------------------------
--------------------------------Arduino Sketch----------------------------------------
--------------------------------------------------------------------------------------------

Ambi : AmbientNeoPixel Arduino Sketch
Créé par : Cory Malantonio

#include < Adafruit_NeoPixel.h >
#define PIN 6
Bande de Adafruit_NeoPixel = Adafruit_NeoPixel (60, PIN, NEO_GRB + NEO_KHZ800) ;

int r [11] ; Tableau pour chaque valeur de couleur
int g [11] ;
int b [11] ;

void setup() {}
Serial.Begin(9600) ;
Strip.Begin() ; préparation de la neopixel
Strip.Show() ;
}

void loop() {}

Si (Serial.available() > = 31) {}
Si (Serial.read() == 0xff) {}
pour (int x = 1, x < 11, x ++) {}
r [x] = Serial.read() ; lire les valeurs de transformation
g [x] = Serial.read() ; nous les avons envoyés dans le même ordre
b [x] = Serial.read() ;

r [x] = contraindre (r [x], 0, 255) ; juste au cas où n’importe quel glissement de valeurs loin
g [x] = contraindre (g [x], 0, 255) ;
b [x] = contraindre (b [x], 0, 255) ;

}
}
}

int Xval = 1 ; compter jusqu'à 30
int Yval = 2 ; pendant le chargement des valeurs RVB
int Zval = 3 ; dans 3 led est à la fois

pour (int z = 1; z < 11; z ++) {}

strip.setPixelColor (Xval, r [z], g [z], b[z]) ;
strip.setPixelColor (Yval, r [z], g [z], b[z]) ;
strip.setPixelColor (Zval, r [z], g [z], b[z]) ;

XVal = Xval + 3 ;
Yval = Yval + 3 ;
Zval = Zval + 3 ;
}

Strip.Show() ; sortie à la neopixel
Delay(20) ; pour la sécurité
}

--------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------

Voici l’esquisse de traitement,
la seule véritable ajustement que vous aurez à faire sera la ligne
port = nouvelle série (ce, Serial.list() [#], 9600 ;

Le # se réfère au numéro de périphérique usb, que l’arduino est bien branché.
Je suggère d’essayer les 0, puis 1, puis 2, etc jusqu'à ce que vous trouviez celui que vous utilisez.

--------------------------------------------------------------------------------------------
--------------------------------Processing Sketch-----------------------------------
--------------------------------------------------------------------------------------------
Edit : J’ai reçu un e-mail grand, poser des questions sur la modification de la résolution sur le croquis de traitement.
Depuis lors, j’ai changé l’esquisse de traitement avec un plus apte à modifier (sans avoir à plonger dans le code).
--------------------------------------------------------------------------------------------

/ * Ambi2 : AmbientNeoPixel traitement Sketch
** Créé par : Cory Malantonio
** ambiArray est basé sur une conception par Rajarshi Roy
*/

Import cc.arduino.* ;
java.awt.Robot d’importation ;
java.awt.AWTException d’importation ;
import java.awt.event.InputEvent ;
java.awt.image.BufferedImage d’importation ;
java.awt.Rectangle d’importation ;
java.awt.Dimension d’importation ;
Import processing.serial.* ;

---La valeur résolution ici---/ /
resX int = 1920 ;
int resY = 1080 ;
//-------------------------------//

int sectW = resX / 10 ;  Grosseur de boudin pour les 10 sections
int SectRx = sectW / 4 ; Résolution de section pour x
int SectRy = resY / 4 ;  Résolution de section pour y

Port série ;
Robot GrabRGBval ;

void setup()
{
port = nouvelle série (ce, Serial.list() [2], 9600) ;
Serial.List() [#], # = numéro de périphérique usb

Essayez
{
GrabRGBval = new Robot() ;
}
catch (AWTException e)
{
println ("Robot classe non pris en charge par votre système!") ;
Exit() ;
}

taille (200, 200) ;
Background(0) ;
noFill() ;
}

void draw()
{
int pixel ;

float [] rA = nouveau float [11] ;
float [] gA = nouveau float [11] ;
bA de float [] = new Char [11] ;
int [] reso = new int [11] ;

pour (int Ar = 1 ; AR < 11 ; AR++) {//load les résolutions dans le tableau
RESO [Ar] = sectW * Ar ;              192 est 1/10 de la résolution 1920
}

flotteur r = 0 ;
flotteur g = 0 ;
float b = 0 ;
RESO [0] = 0 ;

Capture d’écran de BufferedImage = GrabRGBval.createScreenCapture (new Rectangle (new Dimension (resX, resY))) ;

pour (int LED = 1 ; CONDUIT < 11 ; LED++) {}
int x = 0 ;
int y = 0 ;

tranches de tableau RESO au 10ème de la résolution de 1920, en commençant par 0
pour (x = reso [del-1]; x < reso [LED]; x = x + 4) {//"x + 4" saute pixels
pour (y = 0; y < resY; y = y + 4) {/ / pour l’aider à courir plus vite
Pixel = screenshot.getRGB (x, y) ;
r = r+(int) (255 & (pixel >> 16)) ;
g = g+(int) (255 & (pixel >> 8)) ;
b = b+(int) (255 & (pixel)) ;
}
}

r=r/(SectRx*SectRy) ; 48 est 1/4ème chaque 10ème de l’écran. Avant nous sommes sauter pixels
g=g/(SectRx*SectRy) ; Nous nous retrouvons avec 1/4 les pixels.
b=b/(SectRx*SectRy) ; 270 est 1/4 de la résolution 1080
rA [LED] = r ;
gA [LED] = g ;
bA [LED] = b ;

}

port.Write(0xFF) ; écrire le marqueur, arduino est la recherche de ce
pour (int Br = 1 ; BR < 11 ; BR++) {}
port.Write((Byte)(RA[br])) ;
port.Write((Byte)(GA[br])) ;
port.Write((Byte)(BA[br])) ;
}

Delay(10) ; délai pour la sécurité

pour (int cône = 1; cône < 11 ; cône ++) {}
Fill(0) ;
accident vasculaire cérébral (rA [conique], gA [conique], bA[cOne]) ;
Rect ((cOne-1) * 20, 0, cône * 20, 200) ;
remplissage (rA [conique], gA [conique], bA[cOne]) ;
Rect ((cOne-1) * 20, 0, cône * 20, 200) ;
}
}

Articles Liés

Installer des lumières Cathode froide ordinateur en voiture

Installer des lumières Cathode froide ordinateur en voiture

nombreux accessoires tels que des ventilateurs et lumières que vous pouvez mettre dans votre ordinateur peuvent aussi être mis dans votre voiture car ils coulent 12v.C'est mon premier intructable et sera sur la façon d'installer un kit de lumière de
Empilable lumières ambiantes RGB LED Cube

Empilable lumières ambiantes RGB LED Cube

dans cette Instuctable je vais vous montrer comment fabriquer vos propres piles empilable RGB LED Cube s'allume.Ils fournissent portable RVB un éclairage d'ambiance à n'importe quel environnement. Leur conception compacte permet une multitude d'appli
Programme un chapelet de lumières de Noël à clignoter le code morse avec Arduino & Snap Circuits

Programme un chapelet de lumières de Noël à clignoter le code morse avec Arduino & Snap Circuits

c'est un projet de mon fils Dylan (9) et j'ai mis ensemble en utilisant une platine Arduino, un ensemble de Circuit Snap et un chapelet de lumières de Noël.Ce que vous devez :Un Arduino : Un Arduino est un ordinateur sur un circuit unique que vous po
Rendent un Photon fleur que lumières vers le haut quand vous l’eau avec le jus de citron

Rendent un Photon fleur que lumières vers le haut quand vous l’eau avec le jus de citron

avez-vous déjà fait une batterie d'un citron ? Si vous piquez un fil de cuivre dans un citron et piquez un clou galvanisé à côté de lui, vous pouvez mesurer avec un voltmètre qui le citron produit entre 0,5 et 1 volt. Le cuivre est la « cathode », ou
Utiliser un Arduino avec un contrôleur de N64

Utiliser un Arduino avec un contrôleur de N64

il y a des tutoriels là-bas pour utiliser une manette NES avec un Arduino, mais en utilisant la plus compliquée de N64 controller et son joystick analogique a un attrait certain. Si vous avez un Arduino autour et que vous ne voulez pas acheter un Ada
Commandée par ordinateur de lumières de Noël avec lumière-O-Rama

Commandée par ordinateur de lumières de Noël avec lumière-O-Rama

Bienvenue sur mon guide étape par étape sur comment faire une étonnante démonstration de lumière de Noël ! Je vous guidera à travers toutes les étapes de la planification à l'appui sur start. Let's get started !Étape 1: Intro et penser à l'avenirTout
La lumière ambiante interactif

La lumière ambiante interactif

c'est mon premier instructable !S'il vous plaît garder avec moi alors que j'ai du mal à écrire un anglais correct. N'hésitez pas à me corriger !J'ai commencé ce projet juste après le concours « Eclairez il » a commencé. Je souhaite que j'avais fait b
Contrôler les lumières RVB de Android avec Arduino & Bluetooth LE (BLE)

Contrôler les lumières RVB de Android avec Arduino & Bluetooth LE (BLE)

j'ai vu beaucoup de projets de Kickstarter mettant en vedette la nouvelle norme Bluetooth 4.0 Low Energy et clones Arduino à venir sur le marché, a permis un certain nombre de Bluetooth LE (BLE) mais nombre de ces projets semblent encore être quelque
Motion activé des lumières de Noël

Motion activé des lumières de Noël

Dans ce Instructable, je vais vous montrer comment faire vos cadeaux de Noël phares s'allument quand il y a quelqu'un dans la salle en utilisant un Arduino, module de relais et un détecteur de mouvement PIR.J'ai fait cela parce que je voulais les lum
Christine de bâtiment (avec les lumières et le son!)

Christine de bâtiment (avec les lumières et le son!)

L'Halloween sur le thème nous notre parti autour des histoires de Stephen King et nous avons décidé que pleine grandeur Plymouth Fury de « Christine » ferait un excellent point focal. La route facile peut-être impliquer communiquant avec un club de v
Lumières d’ascenseur sans l’ascenseur

Lumières d’ascenseur sans l’ascenseur

fondIl y a quelques années, toutes les gouvernes de profondeur dans un immeuble de locaux ont été refaits. Un de mes amis a vu toutes les pièces qui ont été jetés et obtenu la permission de quémander. Nous avons cherché et trouvé plusieurs points d'i
Lumières de Noël Musical Arduino alimenté

Lumières de Noël Musical Arduino alimenté

après explorant le site Instructables, j'ai trouvé quelques projets qui ont atteint un sommet de mon intérêt et ceux qui m'amènent à la réflexion, j'ai pu faire quelques lumières de Noël musicales. Plupart de ce que j'ai passé mon temps sur provenait
Lumières et une peinture de l’urbanité

Lumières et une peinture de l’urbanité

Donc ce projet intègre l'art et la technologie. Ce Instructable montre comment coudre des LEDs et neopixels en toile et peindre une urbanité qui lie l'utilisation de lumières.Étape 1: Instructions complètesLa première chose est tout d'abord, les maté
Comment faire des Cherry Blossom lumières

Comment faire des Cherry Blossom lumières

j'aime la façon dont les cerisiers en dehors de mon immeuble fleurissent allègrement chaque printemps.  J'ai voulu apporter la beauté de ces fleurs de la cerise à l'intérieur donc j'ai fait certaines de mouchoir en papier et pour les rendre encore pl