Changes

Jump to: navigation, search

Students/ScottJones

2,867 bytes added, 22:04, 18 March 2010
Final Project Documentation
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

Navigation menu