Friday, February 27, 2009
Sensors purchase
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
Friday, February 20, 2009
what about YOU?
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

'YOU' is an iProsthetics for Gustnado and Tornado:
Welcome to
On a beautiful warm April Saturday afternoon,
'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.
Thursday, February 19, 2009
Application and Design at it's finest!!!
http://jalopnik.com/5135415/wheres-this-bridge-awesome-cantilevered-drawbridge
Wednesday, February 18, 2009
Clock (not Sundial)
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
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
Wii nunchuck Arduino adapter website
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
Dual Reality
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
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.

Sunday, February 15, 2009
Saturday, February 14, 2009
Interactive Emergency System for Low Income Settlements
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

Possible emergency situations

Robot would walk over cables suspended by poles in the 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
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
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
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
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