Changes

Students/ScottJones

3,770 bytes added, 22:04, 18 March 2010
Final Project Documentation
http://farm3.static.flickr.com/2713/4330304167_9635b8582d.jpg
 
 
== Final ==
For my final project I am proposing a proximity controlled light display. This will involve an infrared proximity sensor connected through the arduino to a high powered RGB LED light. The distance to the sensor will control the color of the light being displayed. Since I am using a high power LED, I plan on projecting the light against a wall so the entire wall is illuminated. I will most likely set up the sensor so that when you walk closer or farther away, the color of the light will change.
 
The thought behind this piece is the idea of proximity and personal space. Depending on the color at certain proximities, the color will either be inviting or not, prompting the viewer to proceed closer or further away. I need to put some more thought into how I will display the piece once it is built and try to figure out a way I can use this technology to create more of a discussion.
 
 
== Final Project Documentation ==
 
'''"External, visible results increase proportionately to your distance from the perfect state" - Wols, Aphorisms (1944)'''
 
http://farm5.static.flickr.com/4047/4444084682_364d899b4e.jpg
 
http://farm5.static.flickr.com/4018/4443313003_778cd0da69.jpg
 
http://farm3.static.flickr.com/2793/4444084328_3b9c45a40e.jpg
 
http://farm5.static.flickr.com/4022/4443312703_f1014774d7.jpg
 
http://farm5.static.flickr.com/4036/4444084136_5da2a09069.jpg
 
http://farm3.static.flickr.com/2781/4443312611_684383a38c.jpg
 
Video: http://www.flickr.com/photos/scottwj/4443367599/
 
'''Construction:'''
 
http://farm3.static.flickr.com/2803/4444112586_49a13b8764.jpg
 
----
Source Code:
 
int potpin = 2; // Switch connected to digital pin 2
 
int rpin = 8;
int gpin = 9;
int bpin = 10;
float h;
int h_int;
int r=0, g=0, b=0;
 
int val=0;
 
void h2rgb(float h, int &R, int &G, int &B);
 
void setup() // run once, when the sketch starts
{
Serial.begin(9600); // set up Serial library at 9600 bps
}
 
 
void loop() // run over and over again
{
val=analogRead(potpin); // Read the pin and display the value
//Serial.println(val);
h = ((float)val)/532;
h_int = (int) 360*h;
h2rgb(h,r,g,b);
Serial.print("Potentiometer value: ");
Serial.print(val);
Serial.print(" = Hue of ");
Serial.print(h_int);
Serial.print("degrees. In RGB this is: ");
Serial.print(r);
Serial.print(" ");
Serial.print(g);
Serial.print(" ");
Serial.println(b);
 
analogWrite(rpin, r);
analogWrite(gpin, g);
analogWrite(bpin, b);
}
 
void h2rgb(float H, int& R, int& G, int& B) {
 
int var_i;
float S=1, V=1, var_1, var_2, var_3, var_h, var_r, var_g, var_b;
 
if ( S == 0 ) //HSV values = 0 ÷ 1
{
R = V * 255;
G = V * 255;
B = V * 255;
}
else
{
var_h = H * 6;
if ( var_h == 6 ) var_h = 0; //H must be < 1
var_i = int( var_h ) ; //Or ... var_i = floor( var_h )
var_1 = V * ( 1 - S );
var_2 = V * ( 1 - S * ( var_h - var_i ) );
var_3 = V * ( 1 - S * ( 1 - ( var_h - var_i ) ) );
 
if ( var_i == 0 ) {
var_r = V ;
var_g = var_3 ;
var_b = var_1 ;
}
else if ( var_i == 1 ) {
var_r = var_2 ;
var_g = V ;
var_b = var_1 ;
}
else if ( var_i == 2 ) {
var_r = var_1 ;
var_g = V ;
var_b = var_3 ;
}
else if ( var_i == 3 ) {
var_r = var_1 ;
var_g = var_2 ;
var_b = V ;
}
else if ( var_i == 4 ) {
var_r = var_3 ;
var_g = var_1 ;
var_b = V ;
}
else {
var_r = V ;
var_g = var_1 ;
var_b = var_2 ;
}
 
R = (1-var_r) * 255; //RGB results = 0 ÷ 255
G = (1-var_g) * 255;
B = (1-var_b) * 255;
}
}
14
edits