Saturday, October 27, 2007

Week_6 & 7_Midterm_videos

Tim,James,Keith and I worked together with spiritual animals(our initial concept) which is called a meshpet during the 3 weeks of the midterm in our Collaborative Mesh Networking class.
We had a great time by learning lots of new things.
We have developed more slowly then others, but I believe that it was a good learning experience.

Week_6 & 7_Midterm_code

// Output
int potColorPin = 0; // Color
int potColorVal = 0; // value read from the Color pot

int potBlinkPin = 1;
int potBlinkVal = 0;
int blinkSpeed = 0;

int collectiveBlueLed = 6;
int collectiveGreenLed = 10;

int GreenIndLed = 3; // Controls the Green value for individual
int BlueIndLed = 5; // Controls the Blue value for individual
int HeartBeatLed = 9; // Displays Heart beat /////////////////// ENABLED ////////

// Program variables
int GreenColorVal = 0; //
int BlueColorVal = 0;

int colorValB = 0;
int colorValC = 0;
int colorValD = 0;
int colorValE = 0;

int blinkSpeedB = 0;
int blinkSpeedC = 0;
int blinkSpeedD = 0;
int blinkSpeedE = 0;

int DEBUG = 1; // Set to 1 to turn on debugging output

int i = 0; // Loop counter for indivitual values
int j = 0; // loop counter for incoming values
int wait = 50; // 50ms (.05 second) delay; shorten for faster fades

char inbyte = 0;
long beat; ////////////////////////////////
long timeCode; ///////////////////////////////////////

long colorReceive = 1;
long blinkReceive = 1; // 1 to prevent 0 being multiplied by 4..... safety feature

int collectiveGreen = 0;
int collectiveBlue = 0;
int collectiveSpeed = 0;


void setup() {

pinMode(GreenIndLed, OUTPUT); // sets the pins as output
pinMode(BlueIndLed, OUTPUT);
pinMode(HeartBeatLed, OUTPUT);
pinMode(potBlinkPin, INPUT);
pinMode(potColorPin, INPUT);

pinMode(collectiveBlueLed, OUTPUT);
pinMode(collectiveGreenLed, OUTPUT);

Serial.begin(9600); // ...set up the serial ouput in 0004 format

// if (DEBUG) { // If we want to see the pin values for debugging..//.

// }
}


void loop() {
potColorVal = analogRead(potColorPin); // read the potentiometer value at the input pin
// Premature Blinkage ASK ROB!
potBlinkVal = analogRead(potBlinkPin); // blink controlled by second pot
blinkSpeed = potBlinkVal +42; // +42 scale blink value 0 - 2000ish

if (potColorVal < 5) { // solves problem of no color at all by setting minimum possible as 5 ASK ROB!!!
potColorVal = 5;
}

//////////////////////////////////////////////////////

if (Serial.available() > 0 ) { // check that a byte has come in
char inByte = Serial.read(); // read the byte
if (inByte == '*') { // if this was the start byte
while (Serial.available() < 7) {
; // do nothing while waiting for all five bytes of information
}
beat = Serial.read(); // read the beat number
timeCode = Serial.read(); // read the first byte of the time code
timeCode = timeCode + (Serial.read() << 8); // read the second byte of the time code, shift it up and add to the existing number
timeCode = timeCode + (Serial.read() << 16); // read the third byte of the time code, shift it up and add to the existing number
timeCode = timeCode + (Serial.read() << 24); // read the fourth byte of the time code, shift it up and add to the existing number

Serial.flush(); // get rid of the carriage return and linefeed characters, to clear the input for the next beat
}

else if (inByte =='^') {
while (Serial.available() < 4) {
; // do nothing while waiting for all 2 bytes of information
}
colorReceive = Serial.read();
blinkReceive = Serial.read();

Serial.flush(); // get rid of the carriage return and linefeed characters, to clear the input for the next beat
}
}

/////// Send Serial to Fellow Meshie Pets based on initial value '$', colorVal, and blinkSpeed



////// Your beat

if (beat == 3){ // MUST CHANGE ACCORDINGLY: James 1, Tim 2, Youjeong 3, Keith 4
digitalWrite(HeartBeatLed, HIGH);
// potColorVal = colorValB;
// blinkSpeed = blinkSpeedB;

// send the PotColorValue and BlinkSpeed Value
}
else {
digitalWrite(HeartBeatLed, LOW);
}

///// Listen to each beat
if (beat == 1){
colorValB = colorReceive;
blinkSpeedB = blinkReceive;
/*
// incoming values pulled from meshpets assigned to local colorValB, blinkSpeedB
colorValB = GreenColorVal;
blinkSpeedB = blinkSpeed;

Serial.print('^'); // sends out the values to the group
Serial.print(colorValB, BYTE);
Serial.print(blinkSpeedB, BYTE);

beat = 0; /// beat is set to an unused value so that it is only sent usable
*/

}

else if (beat == 2){

colorValC = colorReceive;
blinkSpeedC = blinkReceive;


/* // incoming values pulled from meshpets assigned to local colorValB, blinkSpeedB
colorValC = GreenColorVal;
blinkSpeedC = blinkSpeed;

Serial.print('^'); // sends out the values to the group
Serial.print(colorValC, BYTE);
Serial.print(blinkSpeedC, BYTE);

beat = 0; /// beat is set to an unused value so that it is only sent usable once
*/
}

else if (beat == 3){
/* colorValD = colorReceive;
blinkSpeedD = blinkReceive;
*/
//incoming values pulled from meshpets assigned to local colorValB, blinkSpeedB
colorValD = GreenColorVal;
blinkSpeedD = blinkSpeed;

Serial.print('^'); // sends out the values to the group
Serial.print(colorValD, BYTE);
Serial.print(blinkSpeedD, BYTE);

Serial.print('^'); // sends out the values to the group
Serial.print(colorValD, BYTE);
Serial.print(blinkSpeedD, BYTE);

beat = 0; /// beat is set to an unused value so that it is only sent usable


}

else if (beat == 4){
colorValE = colorReceive;
blinkSpeedE = blinkReceive;

/*
// incoming values pulled from meshpets assigned to local colorValB, blinkSpeedB
colorValE = GreenColorVal;
blinkSpeedE = blinkSpeed;

Serial.print('^'); // sends out the values to the group
Serial.print(colorValE, BYTE);
Serial.print(blinkSpeedE, BYTE);

beat = 0; /// beat is set to an unused value so that it is only sent usable
*/

}

collectiveGreen = ( colorValB + colorValC + colorValD + colorValE) / 4;
collectiveBlue = 1023 - collectiveGreen;
collectiveSpeed = ( blinkSpeedB + blinkSpeedC + blinkSpeedD + blinkSpeedE) / 4;


if(j > collectiveSpeed*3) { // if i equals up to half of blink speed (scaled up 3 times) turn light on

analogWrite(collectiveGreenLed, collectiveGreen); // Write values to LED pins
analogWrite(collectiveBlueLed, collectiveBlue); // write blue value
}

else if(i < collectiveSpeed*3){ // if i equals upper half of blink speed (scaled up 3 times) turn light off
collectiveGreen = 0; // scales down GreenColorVal to 0 - 255 range
collectiveBlue = 0; // inverts correlation of blue and Green led

analogWrite(collectiveGreenLed, GreenColorVal); // Write values to LED pins
analogWrite(collectiveBlueLed, BlueColorVal);
}


j++; // j is the new delay controlled by the speed of the program currently:9600

if (j >= collectiveSpeed*6 ){ // resets j to 0
j = 0;
}


/////////////////////

if(i > blinkSpeed*3) { // if i equals up to half of blink speed (scaled up 3 times) turn light on
GreenColorVal = potColorVal/4; // scales down GreenColorVal to 0 - 255 range
BlueColorVal = 1023-GreenColorVal; // inverts correlation of blue and Green led

analogWrite(GreenIndLed, GreenColorVal); // Write values to LED pins
analogWrite(BlueIndLed, BlueColorVal); // write blue value
}

else if(i < blinkSpeed*3){ // if i equals upper half of blink speed (scaled up 3 times) turn light off
GreenColorVal =0; // scales down GreenColorVal to 0 - 255 range
BlueColorVal = 0; // inverts correlation of blue and Green led

analogWrite(GreenIndLed, GreenColorVal); // Write values to LED pins
analogWrite(BlueIndLed, BlueColorVal);
}


i++; // i is the new delay controlled by the speed of the program currently:9600

if (i >= blinkSpeed*6 ){ // resets i to 0
i = 0;
}

}

Week_6 & 7_Midterm_pictures


Meshpet_representative
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9mxt6xvq0lmrNbOUNs8qXveq92UZ13s_Iik4lVXQB9LSGLwRM0O60VSa2QolXNVme6IhIWIY_D4krmdxT2G61LlQNhgHfQACnuYiSrE5cizTjXS3Jd8hlo2r8UmbKIzGqfX-QfSbV32w/s1600-h/Meshpet_representative.jpg">

Monday, October 1, 2007

Week 03_Rock Paper Scissors






I am working with James now. We are struggling with the code, but it's fun to know step by step. ^^ Of course, we got some help from others.
First of all, we set up each arduino board and set the same PAN ID(feed:james'??)
We also set up another bread board for one switch and one LED to see how it works,
and then tried to apply the switch on Xbee board. Each radio works fine but at the same time when we send information by pushing the button, it is kind of messed up..
We don't know why..
I feel like I might need a tutor for programming help.

Monday, September 24, 2007

Week 02 & 03 Glow that LED





I set up two arduino boards and then Keith and I worked together last Saturday.
We tried several times to make them communicate by blinking.
In order to do this, I had to download new arduino version. It was so fun to see the LED blinking.

Week01_Find & Fix




This is a warm up project which is called interactive warm-up scarf.
I like this idea.
I found kind of problem in ITP. Sometimes it' too cold to study here because the air conditioning is too strong. I am not the only one that feels this way.
So, I started to make a warm up device for ITP students just like me.
My scarf has two functions.
one is stretching function to stretch arms and neck
you can stretch your arms and neck like this, and also it has one more function.
It also heats up by a battery.
Inside this scarf, there is battery heating device with a contact switch.
when you put pressure on the contact switch, the scarf heats up.
When you release the pressure on the switch, it becomes cold.
Most challenging thing during this work was getting the scarf to heat up.
I looked forward heating devices such as heating pad like a electric blanket and portable heat cushions and also camping heating packs but they were not easily wearable.
I was looking for something small, thin and light. also it needed to be more interactive.
So, I made my own contact switch and I found some sample from old classmate.
so that I was able to make this interactive warm up scarf.

I want to develope this scarf with wireless Zeebee so that it's more practical and interactive in wearable design. for example, I want to make gloves. if you squeeze your left hand, just the gloves heat up. if you squeeze your right hand, the scarf heats up...something like that.
so, I want to follow that kind of concept for this project.

spandeks like material