zazie and rents
Jason and Mariani and Zazie are here. Horray!
Here is a picture of the family from Thanksgiving.
And check out Jason"s Blog.
daniel rozen
Ahh. The electronics class is over, and I still have so much of my work to post. In the mean time, check out this great article/interview on interactive art by Daniel Rozen, http://www.digicult.it/digimag/article.asp?id=578. It gets to the heart of the intent of the electronics class. And I found it by searching for something completely different. Ahh, the interweb.
Temp sensor
I received new temperature sensors in the mail late yesterday eve. Oh joy! today I managed to get one to work. The kind I got is called the LM35 from National Semiconductor. It's output number is in millivolts, which has to be converted to temperature for any kind of serial port publishing. The conversion to Celsius and then Fahrenheit is commented out for now. Also, I have created a formula for getting the millivolt reading to analogue write in the range for an led. I have not included an upper limit in the coding (past 255), but that would mean a reading of past 102 degrees F.
Here is the code I am using:
// Define the number of samples to keep track of. The higher the number,
// the more the readings will be smoothed, but the slower the output will
// respond to the input. Using a #define rather than a normal variable lets
// use this value to determine the size of the readings array.
#define NUMREADINGS 4
int readings[NUMREADINGS]; // the readings from the analog input
int index = 0; // the index of the current reading
int total = 0; // the running total
int average = 0; // the average
int temperature = 0;
int Ftemperature = 0; // to convert to Fahrenheit
int inputPin = 0;
int LedBlue = 9; // led connected to 9
int squarex = 0; // sets value of squarex
void setup()
{
Serial.begin(9600); // initialize serial communication with computer
for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0; // initialize all the readings to 0
pinMode(LedBlue, OUTPUT); // sets the pin as output
}
void loop()
{
total -= readings[index]; // subtract the last reading
readings[index] = analogRead(inputPin); // read from the sensor
total += readings[index]; // add the reading to the total
index = (index + 1); // advance to the next index
if (index >= NUMREADINGS) // if we're at the end of the array...
index = 0; // ...wrap around to the beginning
average = total / NUMREADINGS; // calculate the average
// temperature = (5.0 * average * 100.) /1023 ; //switches average read to celcius temp
// Ftemperature = (temperature * 1.8) + 32.0 ; //converts to Fahrenheit
// analogWrite (LedBlue, (Ftemperature - 70.0) * 10.2 );
squarex = (average-10) * (average-10) ;
analogWrite (LedBlue, (squarex / 100) * (squarex / 1000 ) );
Serial.println(average); // send it to the computer (as ASCII digits)
// Serial.println(Ftemperature); // send it to the computer (as ASCII digits)
}
Here is the code I am using:
// Define the number of samples to keep track of. The higher the number,
// the more the readings will be smoothed, but the slower the output will
// respond to the input. Using a #define rather than a normal variable lets
// use this value to determine the size of the readings array.
#define NUMREADINGS 4
int readings[NUMREADINGS]; // the readings from the analog input
int index = 0; // the index of the current reading
int total = 0; // the running total
int average = 0; // the average
int temperature = 0;
int Ftemperature = 0; // to convert to Fahrenheit
int inputPin = 0;
int LedBlue = 9; // led connected to 9
int squarex = 0; // sets value of squarex
void setup()
{
Serial.begin(9600); // initialize serial communication with computer
for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0; // initialize all the readings to 0
pinMode(LedBlue, OUTPUT); // sets the pin as output
}
void loop()
{
total -= readings[index]; // subtract the last reading
readings[index] = analogRead(inputPin); // read from the sensor
total += readings[index]; // add the reading to the total
index = (index + 1); // advance to the next index
if (index >= NUMREADINGS) // if we're at the end of the array...
index = 0; // ...wrap around to the beginning
average = total / NUMREADINGS; // calculate the average
// temperature = (5.0 * average * 100.) /1023 ; //switches average read to celcius temp
// Ftemperature = (temperature * 1.8) + 32.0 ; //converts to Fahrenheit
// analogWrite (LedBlue, (Ftemperature - 70.0) * 10.2 );
squarex = (average-10) * (average-10) ;
analogWrite (LedBlue, (squarex / 100) * (squarex / 1000 ) );
Serial.println(average); // send it to the computer (as ASCII digits)
// Serial.println(Ftemperature); // send it to the computer (as ASCII digits)
}
Sister Class
HEY YOU,
check out this sister class at CMU. They have many interesting projects under their collective belt. http://makingfurnitureinteractive.wordpress.com/about-2/
check out this sister class at CMU. They have many interesting projects under their collective belt. http://makingfurnitureinteractive.wordpress.com/about-2/
sensor wiki
Hey everyone, check this out, http://www.sensorwiki.org/index.php/Sensors . Since I don't know how to do hyperlinks, you may have to cut and paste.
Not Motoring
At some point a few weeks back, I tried to get a motor working. Controlling the motor through the Arduino proved difficult. Ok, for some of us, nearly impossible. Here is a pick of my setup - including a touch sensor. It's tough to not know if the problem is physical or computational (the equipment, not me).
Game Update
Blendie
Can you speak "blender"? Kelly Dobson can. Another fine moment for the creative elite. This s a funny example of the kinds of things we can now do. Hooray!
geek time
In case you have a burning urge to sense something,here is the "http://www.sensorwiki.org/index.php/Sensors"!
Game on.
Last week, we used the Arduino logic board in conjunction with our game. It is a simple solid state logic module, or something like that. We will be writing code to tell it what to expect from the world and what to do about it (inputs and outputs). It is all based on low voltage electrical signals.
What is cool about the board, and this type of simple (physical) computing, is that many things can be translated to electrical information for the board to decipher, and many more things for the board to control. For example, a sensor measures the temperature of the air, and relays specific levels of voltage to the board, wherein the board relays to, say, a fan to turn on. This is like this, so that will do that, and so on. The applications are endless once one can figure out the code!
So last week, my friend Eric helped me with my first coding of the Arduino board. We set it up so that a player of the game (same one) touches metal to metal, the led lights up and keeps count of how many times such an event has occurred. Once the player touches the loop to the maze 6 time, the game resets. Many thanks to Eric for getting me started in the world of C++.
Above, is the game with the logic board, and Eric at the studio.
The Game
Art Talk
For the second class, I held my (required) 5 minute "Art Talk". My talk was about the installation I saw at the Whitney in 2003, called Listening Post. Created by Ben Ruben with Mark Hansen, it was a field of phosphorescent screens working individually or in tandem and displaying scrolling words or phrases, while some of the words/phrases were spoken or sung by a synthetic voice. It was a enveloping environment, built around six different "movements" or visual/audio combinations. What really made the work intriguing was where the text was derived -- from hundreds of chat rooms in real time. So the work represented a kind of collective unconscious, at least for those within the Internet sphere. This work had a use for current electronics technology that was novel for me, and allowed me to see how decent art can be made with it.
(picture from NYT, I think)
Subscribe to:
Posts (Atom)