Friday, February 27, 2009

Sensors purchase

Hey

Part of the sensors purchase is already at the lab. Its on the top of one of the green tables in a white box with my name.


H.

Wednesday, February 25, 2009

Wind Simulator Link

Here is the link Paul and I used for a wind simulator. Its fairly easy to upload a .bmp just read the instructions on the last tab. Let me know if you have any questions.

Friday, February 20, 2009

what about YOU?

Hey all,

We have published the new project posting yesterday! Hope that you have time to look at it and send comments!.

Enjoy

YOU is waiting for helping you in Tornados


Hi All,
Here is YOU the iprosthetics in 2009, all are welcome for feedback. Enjoy






'YOU' is an iProsthetics for Gustnado and Tornado:

Welcome to Kansas, the heart of Tornado Alley. 2008 was noted to be the deadliest year in terms of fatalities and loss of life since 1998 and the second most active in terms of touchdowns on record. 2009 brings with it the fear that 2008 might be topped, and the hope that it might not happen. Wichita is a growing metropolis, and was ranked 9th by CNN/Money in 2006, as one of the 10 best big cities to live in. In 2008, MSN named Wichita the best affordable city to live in. These statuses bestowed on Wichita have only served to increase the population in the greater metropolitan area, making it more susceptible to damage in the event of an F5 tornado.

On a beautiful warm April Saturday afternoon, Wichita is bustling. While it is overcast, people are spilling onto the streets, enjoying all that the city has to offer on the multiple designated “strips” around the city. Matinee shows are packed, al fresco diners line Little Italy, and the handicraft street vendors are making a killing. Suddenly, unbeknownst to most, there is a sudden chill in the air, and the wind has picked up…

'You' should know what is around you. So, 'You' is a device to protect you from Gustnados, Tornados and can easily be adapted for other natural disasters, like wildfires and lightning strikes! If 'You' is aware of the environmental changes and can send signals to the ambient lighting, and digital senses around you, then it will make you safer than you are now:

Essentially ‘YOU’ is an iProsthetic device in the environment around you, with leaves pointers, tree trunk clock pointer and a speaker, with a radio wave sensor that sends and receives data from the environment around it. The speaker will tell people what they have to do, while the iprosthetic tree leaves will direct people where to go.

YOU is an interactive multi prosthetic device consists of :

iprosthetic TREE LEAVES: is the leaf pointers in trees that will point to where you have to go and talk to you to tell you news and send you warnings.

iProsthetic EYE: is the eye that looks for disasters "mainly is the forecast station".

iProsthetic EARS: are the two receivers –one in buildings and street signals, and the other is in the iprosthetic leaves.

iProsthetic LIPs: are the three speakers, one that sends the data wirelessly from the base station to YOU prosthetic leaves, the second will informs you of the weather situation, and the third one will react whenever there is a tornado by activating the environment and telling you to keep shelter.


Wednesday, February 18, 2009

Todays Pic



Today's lab pic.

Clock (not Sundial)

Hey everyone,
One of my thoughts for our project was trying to get the motor to move like a clock, and then in the event of a tornado, it glows and points in the direction of the nearest shelter or in the general direction orthogonal to the motion of the tornado. That way the clock provides the time to passersby and then provides direction to safety in the event of an impending disaster.

Everyone's opinion on this modification will be greatly appreciated.
-Apoorva

Purchase for Project #2 - Please add everything by Sunday Feb 22


Hello all,

Like for the previous project, let's make a list of all the components we all think we might need in order to build Project #2.

Edit the post and add the links to the websites.

First, let's add 6 adaptors to connect the Wii Nunchuck into the arduino ($4 each). HERE

LET'S START:

Joe & Ivan:
- 2x Gas sensor (Air Quality Control Sensor, the last in the list, $6.90 each) HERE
- 1x Solid State Relay (4.95$) HERE

Guys, check out this website FUTURLEC because they have many sensors, kits and other components at a very reasonable price. Let's try to save on shipping and get the things from the least number of websites we can.

Also, the vibration sensors and the new Angle Rotating servos are in the lab. Next to the blue toolbox.

Apoorva & Tarek:
http://www.robsonco.com/Dinsmore/Untitled_7.html
We want the 1490 sensor. By using the fax order form, we should be able to avail of the student discount, which would get the cost of 1 sensor to $7.50. We would like 2 sensors, so the cost will be $15+ $5 shipping.
http://www.canakit.com/universal-fm-transmitter-with-mic-and-line-inputs-kit-ck108-uk108.html
The FM transmitter is $16.95 + $10 shipping because it is coming from Canada.

http://www.futurlec.com/Speakers.shtml
I'd also like 2 of the $0.75 speakers (the first ones on the page)

If need be, I don't mind buying either the compass or the fm transmitter myself...
-Apoorva


Henrique & Krishna:


Adam & Paul:


Try to decide the final components and add everything by this Sunday night, so we can order them on Monday morning.

Thanks,



Test post - to resolve email problem

sent 2/20, 3:41 pm.

Wii nunchuck Arduino adapter website

For Ivan and others interested in the hardware required to plug the Wii nunchuck into an Arduino, this website shows it pretty clearly:

http://www.tinker.it/en/Tutorials/WiiNunchuck

Could the person keeping the shopping list could buy a few of these adapters?

Paul.

Monday, February 16, 2009

Ecomorphic Design - UCL

http://www.vr.ucl.ac.uk/research/ecomorphic/

Here is another - v. cool

Dual Reality

http://www.media.mit.edu/resenv/dual_reality_lab/

Great - short - webpage speaking to something very close to what we're doing. The few reference materials linked to the page are also very good.

Project 2 Proposal - Adaptive Evacuation Route

Proposal:

Emergency situations may require evacuation of a building or outdoor area. However, the shortest evacuation route may not be the fastest or safest due to the presence of perils or other obstructions. Such impediments may not be readily visible to the population being evacuated. Further, the best route for each person may not be the same or may change dynamically.

We propose an array of communicating sensors. When sensors detect an obstruction or fail to communicate (due to being destroyed), the system enters an emergency mode. In this mode, active lighting fixtures pan each room or passage way (street or hall) to pervasively display directional queues denoting the safest route for people or vehicles to travel.

Processing by the system would include a cellular decomposition of the area so that safe paths are computed in real time and each light fixture given commands on which travel direction to suggest. Sensors status would denote which cells represent safe paths.

Example—Metropolitan Museum of Art
Nearest stairwell blocked. Cells broken down by gallery space. An alternate route is chosen through safe cells.



Example—Washington DC
Pennsylvania Avenue to I395 is blocked. Cells broken down roughly by sensor placement at major intersections. An alternate route is chosen through safe cells.

Saturday, February 14, 2009

Interactive Emergency System for Low Income Settlements

Henrique Houayek
Krishna Teja

Project Statement

A recent Federal Census (IPP 2009) has estimated that today there are more than a thousand slums in Rio de Janeiro. These have spread rapidly in the past forty years and are now a constant part of this Brazilian city landscape. Despite their number they remain a marginalized part of the city with lack of important infrastructure and susceptible to emergency situations.

Design Proposition

To help improve the infrastructure of these spaces this group proposes the creation of a mobile interactive robot that could float around the slum in a cable, sensing diverse
situations and reacting and communicating the population. Emergency Situations would be communicated via color signals, these could be:
• At night: sense movement of the inhabitants, turn a light on and follow that specific person all the way to their house.

• Signal population if there is any police and criminal conflict:
• Possible fire
• Earth Slides/ Heavy Rain

• Health issues



Po
ssible emergency situations








Robot would walk over cables suspended by poles in th
e area







(A) Yellow: Light to illuminate streets and pedestrians

(B) Green: Fire

(C) Blue: Conflict between police and criminal conflict
(D) Red: Heavy rain, Possible earth slides





Thursday, February 12, 2009

Project 2 Idea: Adaptive evacuation route

Although Adam and I are still exchanging ideas for project 2, I wanted to toss out an idea I've been thinking of and see what comments anyone might have.

The scenario would be some sort of localized urban disruption of traffic such as a fire, explosion, downed power line, etc. In this situation, traffic might be unaware of which routes out of the area might be optimal or even passable. One would not want to unwittingly turn down a road that led toward a blockage.

I propose an array of communicating sensors at street intersections in a city. If some significant number adjacent sensors were to become disabled (as by an explosion), then the system could go into emergency mode and automatically direct traffic away from the area. The system could consist of, for example, motorized laser pointers affixed to light poles. Each pointer would project a moving dot onto the street in front of vehicles so as to direct them in a safe direction to travel at each intersection.

This sort of technology might be readily extended to hallways in a skyscraper,
stadium or other structure where many exit paths might be available.

I would appreciate any thoughts. Of course, this is half-baked and Adam and
I have a lot of talking yet to do.

Paul.

Wednesday, February 11, 2009

ITOI new news

New news : A Chinese or Japanese website have the ITOI in its front page and there is also thousands of comments. Do any one know that language which he can explain what it says?.

http://cynews.cyworld.com/service/news/shellview.asp?LinkID=12&ArticleID=2009020911044838210&w=cy

Really it is a strange phenomenon!.
Enjoy

Tuesday, February 10, 2009

Animal House


Abstract: The proposal for this project was to integrate an interactive puzzle into an environment in which it was placed. To begin the puzzle, a series of screens in the room would show animal scenes with a place for an animal puzzle piece to fit in. Once the habitat lights up, the child would have to find the animal shaped piece that matches the scene from a circulating tray located in the room. Once the correct animal and habitat match up, another scene lights up. When all scenes are completed correctly, a celebration of lights activates the room. As a demonstration, we chose a cow on a farm, an elephant in the jungle, a bird in the sky and a crab in the sea.

                      

 

Scenario

 

Hardware

 

2 Arduino Prototyping board

1 Arduino Motor Shield

4 Push button switches

4 LEDs (1 Orange, 1 Green, 1 Red, 1 Yellow)

1 Servo Motor

Wire

 

Code

Part 1: Sequential Puzzle Evaluator

 

int inPin[5]; // Setting the variable for the input from the 4 switches

int outPin[5]; // Seting the variable  for the output to the 4 LEDs

int val[5]; // State of the switch: either HIGH(pressed) or LOW(open)

int flag[5]; // Not used here, required for random number code.

 

int i, j, k, l, m, n; // Counter variables: only “I” and ”l” used here

long time; // Variable used to check current time

long debounce = 2000; // Debounce time to prevent noise from being read

 

void setup()

{

  inPin[1] = 2; // Input to pin 2 from switch 1

  inPin[2] = 4; // Input to pin 4 from switch 2

  inPin[3] = 6; // Input to pin 6 from switch 3

  inPin[4] = 8; // Input to pin 8 from switch 4

 

  outPin[1] = 10; // Output to pin 10 for LED 1 (Red)

  outPin[2] = 11; // Output to pin 11 for LED 2 (Orange)

  outPin[3] = 12; // Output to pin 12 for LED 3 (Green)

  outPin[4] = 13; // Output to pin 13 for LED 4 (Yellow)

 

 

// Setting up the modes of the input and output pins and initializing    // the status variable val.

 

  for (i=1;i<5; class="Apple-style-span" style=" ">++)

  {

    pinMode(inPin[i], INPUT);

    pinMode(outPin[i], OUTPUT);

    val[i] = 0;

  }

 a = random(5); // Not used here

  count = 0; // Not used here

}

 

// In this part of the code, we are always reading the status of the

// input switches. The program works sequentially, in that only the

// completion of the first task allows the second task to be reached.

// The first LED glows requiring the first switch to be pressed,

// resulting in successful completion of the first task), before the

// second LED glows and a similar pattern follows for the second, third // and fourth LED and switch pairs.

// After all four tasks are completed successfully, the program moves // into the celebration function where all the LEDs blink, before

// returning to the initial state of the program.

 

void loop()

{

  val[1] = digitalRead(inPin[1]);

  val[2] = digitalRead(inPin[2]);

  val[3] = digitalRead(inPin[3]);

  val[4] = digitalRead(inPin[4]);

 

// the “millis() – time > debounce” part of the attempts to ensure that

// a noise signal is not incorrectly for a successful completion of a // task. millis() is an Arduino function that provides elapsed time.

 

  if((val[1]==LOW) && (millis() - time > debounce))

  {

    digitalWrite(outPin[1],HIGH); // LED 1 glows

    digitalWrite(outPin[2],LOW); // LED 2 is off

    digitalWrite(outPin[3],LOW); // LED 3 is off

    digitalWrite(outPin[4],LOW); // LED 4 is off

    time = millis();// timestamp for this scenario occuring

  }

  if((val[1]==HIGH) && (millis() - time > debounce))

  {

      // val[1]==HIGH means first switch is pressed, now move to 2nd

      // puzzle.

    if(val[2]==LOW && (millis() - time > debounce))

    {

      digitalWrite(outPin[1],LOW); // LED 1 is off

      digitalWrite(outPin[2],HIGH); // LED 2 glows

      digitalWrite(outPin[3],LOW); // LED 3 is off

      digitalWrite(outPin[4],LOW); // LED 4 is off

      time = millis();

    }

    if((val[2]==HIGH) && (millis() - time > debounce))

    {

      if(val[3]==LOW && (millis() - time > debounce))

      {

        digitalWrite(outPin[1],LOW);

        digitalWrite(outPin[2],LOW);

        digitalWrite(outPin[3],HIGH);

        digitalWrite(outPin[4],LOW);

        time = millis();

      }

      if((val[3]==HIGH) && (millis() - time> debounce))

      {

        if(val[4]==LOW && (millis() - time > debounce))

        {

          digitalWrite(outPin[1],LOW);

          digitalWrite(outPin[2],LOW);

          digitalWrite(outPin[3],LOW);

          digitalWrite(outPin[4],HIGH);

          time = millis();

        }

        if((val[4]==HIGH) && (millis() - time > debounce))

        {

          digitalWrite(outPin[1],LOW);

          digitalWrite(outPin[2],LOW);

          digitalWrite(outPin[3],LOW);

          digitalWrite(outPin[4],LOW);

          celebration();

        }

      }

    }

  }

}

 

// The simple blink code provided in the Arduino examples is applied

// in the celebration code to get all the LEDs to blink 5 times.

 

void celebration()

{

  for(l=1;l<5;l++)

  {

    digitalWrite(outPin[1],HIGH);

    digitalWrite(outPin[2],HIGH);

    digitalWrite(outPin[3],HIGH);

    digitalWrite(outPin[4],HIGH);

    delay(500);

    digitalWrite(outPin[1],LOW);

    digitalWrite(outPin[2],LOW);

    digitalWrite(outPin[3],LOW);

    digitalWrite(outPin[4],LOW);

    delay(500);

  }

  digitalWrite(outPin[1],LOW);

  digitalWrite(outPin[2],LOW);

  digitalWrite(outPin[3],LOW);

  digitalWrite(outPin[4],LOW);

  delay(10000);

}

 

Part 2: Tray Rotator

 

#include >

 

Servo tray;

 

int pos = 0;

 

void setup()

{

  tray.attach(9);

 } 

 

void loop()

{

  for(pos = 0; pos <>

  {                                  

    tray.write(pos);

    delay(150);

  }

}

 

 

Issues

One issue that could not completely be resolved at the time of submission of the project was that of noise from the pushbutton switches. This turned out to be crucial for the system to work properly. Attempts were made to resolve this issue using software, but they all were unsuccessful. As pointed out by Ivan, a simple snubber circuit could be applied to possibly solve this issue using hardware, which was considered, but from simple observation, it was difficult to see how given that a change of state from LOW (button not pressed) to HIGH (button pressed) was occurring and even passing the software noise filter.

 

On occasion, it was also noticed that a change of state was registered simply be moving a finger in the vicinity of the switch without making contact with any part of the circuit. That said, we think it would be only fair to try the snubber circuit before declaring the problem as insurmountable.

 

Finally, we would like to use this situation as an example to warn users in this course about the danger of relying solely on the tiny pushbutton toggle switches as a sensor.





                          

Monday, February 9, 2009

changes to the video

Hi all,
Here is another link to the video, as Ivan suggests that it is better not to put names or Clemson name on the video, I had changed that! Enjoy.
http://www.youtube.com/watch?v=BHXOtuksy0k

New on ITOI 2009

Hi all,
We have got a lot of viewers and many honors for our video in you tube!. I had talked with Dr. James Witte concerning how we can get a statistical understanding of whether if it is just a play or it attracts people to comment, and he suggests to change the title to be "Interactive Device 2009" and see how many viewers will watch and comment on that " I think it will be very low!". Anyway, here is the new link to the uploaded video on You Tube try to see the difference and if you have any suggestions, I highly appreciate any comments. Enjoy:)
http://www.youtube.com/watch?v=SIS7AudJ6bE

Thursday, February 5, 2009

Interactive Flower



Abstract:

This project presents an interactive flower which aims to cultivate children’s creativity by affording an hands on interactive experience which teaches basic notions of flower natural cycle. Initially the child is attracted to the shape, color and lights of the flower. He or she gets puzzle pieces which are forms of three ingredients needed to make the flower bloom: seeds, sun, and rain. As each ingredient is added, an optical sensor detects its placement. Each placement causes the flower to expand by a fraction of its total open configuration. When all three pieces have been place, the flower will have fully bloomed. As each piece is removed, the flower will close by the same fraction. When all pieces have are removed the flower be in its wilted configuration, awaiting another user.





The prototype developed would be part of a larger environment containing dozens of different of interactive flowers, maybe even different species of flora and fauna. Together they develop different interconnected puzzles where the children could learn basic nature concepts.




First scenario developed to study a more environmental experience with the flower. Proximity sensors would be embedded into the floor to sense and react to childrens’ movements.




(A) Flower is in rest mode

(B) First piece of the puzzle is set, the sun, its petals gently open

(C) Second piece of the puzzle is set, the water, its petals open a bit more

(D) Third piece of the puzzle is set, the seeds, completing the cycle and opening the flower.

(E) Flower in its complete open state


Hardware Used:

• Arduino Duemilanove board
• Adafruit Motor/Stepper/Servo Shield for Arduino
• Futaba servo motor
• Photo resistors (1.5 k – 50 k) (3)
• Pullup resistors (6.8 k) (3)
• Wooden base
• Articulated arm lamp (as flower stem)
• Lego Mindstorms components (for flower mechanism and motor mount)
• Chipboard cutouts for outer coverings and decoration



Source Code:

// -------------------------------------------------------
// Filename: ECE983_Proj1.pde
// Course: ECE893 - Architectural Robotics
// Team members: Henrique Houayek, Paul Yanik
//
// Description:
// This design activates a model flower to open (bloom)
// and close based on interactions with a child operator.
// As the child completes a 3-step puzzle, the flower
// opens in stages until it has fully "bloomed." As
// pieces are removed from the flower closes in stages;
// reversing the flower's progress back to a closed
// configuration.
// -------------------------------------------------------
#include
ServoTimer1 servo1;

// -------------------------------------------------------
// Variable Declarations
// -------------------------------------------------------
int inPins[3]; // Array containing the input pin numbers.
int sun = 0; // Array positions for each pin number.
int rain = 1;
int soil = 2;

int count = 0; // Variable containing the number of inputs which are
// HIGH - indicating a placed puzzle piece.

int last_count = 0; // Variable containing the number of inputs which were
// HIGH on the last interation of the operation loop.

int val = 0; // Variable containing the value of each input (HIGH or LOW)
// as each input is read.

int servoPin = 10; // Output pin number for servo motor 1.

int angle = 50; // The angular change in position for the servo motor
// as each puzzle piece is placed.

// -------------------------------------------------------
// IO Pin Setup
// -------------------------------------------------------
void setup()
{
servo1.attach(10);

// Assign pin numbers
inPins[sun] = 14;
inPins[rain] = 15;
inPins[soil] = 16;

// Set up pins as input or output
for (int j=0; j<=2; j++) {
pinMode(inPins[j], INPUT);
}

// Open a serial link for onscreen variable monitoring.
Serial.begin(9600);
}

// -------------------------------------------------------
// Loop for Runtime Operation
// -------------------------------------------------------
void loop()
{
// Read all inputs and count how many are HIGH
count = 0;
for (int q=0; q<=2; q++) {
val = digitalRead(inPins[q]);
if (val == HIGH) {
count += 1;
}
}
// Display the number of HIGH inputs on the screen
Serial.println(count);

// Set the servo angle based on the number of placed
// puzzle pieces as determined by HIGH inputs

if (last_count < count) // Indicates that new pieces have been placed.
{
// Open the flower to a total angle equal to 'angle' degrees
// for every placed puzzle piece.
for (int r=(last_count*angle); r<=(count*angle); r++)
{
servo1.write(r);
delay(40);
}
} else
{
if (last_count > count) // Indicates that pieces have been removed.
{
// Close the flower to a total angle equal to 'angle' degrees
// for every placed puzzle piece.
for (int r=(last_count*angle); r>=(count*angle); r--)
{
servo1.write(r);
delay(40);
}
}
}

// Store the number of HIGH inputs for comparison in the next
// loop iteration.
last_count = count;

}


Video



robot published!

hey guys - i was showing my friends the interactive toilet in studio, and I thought I would submit it to engadget to see if they would possibly post it. I just checked the site and its on the main page! check it out



I neglected to tell you guys that when i sent it in i sent in the abstract of the basic idea and that it was completed in 2 weeks and under 20 bucks...they neglected to put that in the article :)