Sunday, February 28, 2010

New behaviour for blob

video

Ive done this by using a counter (increment) in the code. So the programmed counts how long the switch is on and sends output accordingly.

ARDUINO CODE

// set pin numbers:
const int buttonPin = 7; // the number of the reedswitch pin

int buttonState = 0; // variable for reading the pushbutton status
int pin2 = 2;
int pin3 = 3;
int pin4 = 4;
int pin5 = 5;

int i = 0; // the counter

void setup() {
// initialize the reedswitch pin as an input:
pinMode(buttonPin, INPUT);

// initialize the LED pin as an output:
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
Serial.begin(9600);
}

void loop(){
// read the state of the reedswitch value:
buttonState = digitalRead(buttonPin);

// check if the reedswitch is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {

i++; // increase the counter by 1
Serial.println(i);

if ( i < 4){ // if the couter is more than 4
digitalWrite(pin2,HIGH);
delay(1000);
digitalWrite(pin4,HIGH);
delay(1000);}

else if ( i < 9){ // if the couter is more than 9

digitalWrite(pin2, HIGH);
delay(timer);
digitalWrite(pin2, LOW);
delay(timer);

digitalWrite(pin4, HIGH);
delay(timer);
digitalWrite(pin4, LOW);
delay(timer);

digitalWrite(pin3, HIGH);
delay(timer);
digitalWrite(pin3, LOW);
delay(timer);

digitalWrite(pin5, HIGH);
delay(timer);
digitalWrite(pin5, LOW);
delay(timer);

digitalWrite(pin5, HIGH);
delay(timer);
digitalWrite(pin5, LOW);
delay(timer);


digitalWrite(pin2, HIGH);
delay(timer);
digitalWrite(pin2, LOW);
delay(timer);

digitalWrite(pin4, HIGH);
delay(timer);
digitalWrite(pin4, LOW);
delay(timer);

digitalWrite(pin3, HIGH);
delay(timer);
digitalWrite(pin3, LOW);
delay(timer);

digitalWrite(pin5, HIGH);
delay(timer);
digitalWrite(pin5, LOW);
delay(timer);


digitalWrite(pin5, HIGH);
delay(timer);
digitalWrite(pin5, LOW);
delay(timer);

digitalWrite(pin3, HIGH);
delay(timer);
digitalWrite(pin3, LOW);
delay(timer);

digitalWrite(pin4, HIGH);
delay(timer);
digitalWrite(pin4, LOW);
delay(timer);}

else if ( i > 10){ // if the couter is more than 10, blob is dead

digitalWrite(pin2, LOW);
digitalWrite(pin4, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin5, LOW);}

}

else {

i=0;
// turn LED off:
digitalWrite(pin2, LOW);
digitalWrite(pin4, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin5, LOW);

Serial.println(i);

}
}

Wednesday, February 24, 2010

User test

I showed the toy neighbour of mine. He is 5 years old. He didnt know what puppets were. So I explained the concept to him. It took him a while to get used to the gestures but once he got the hang of it he really got into it.

He'd narrate stories and then we'd act it out. He wanted as many people involved in the game as possible. The stories varied. Settings changed- water, forest, space. There were friends, enemies, strategies, magic, a doctor and an operation. Also and interesting backstory for fig- he said since fig is a plant he has to spend a 100 days in the mud and only then can he go play with his friends.

He found Blob a little difficultto handle so he didnt want to be blob. But since he like the character, he asked me to be blob to keep him in the game. At the end he figured out his own easy wasy of using Blob.
He enjoyed being the characters he found easy to use. He wasnt so interested in the electronics.

I also showed the toys 2 other kids who are brother (5 yrs) and sister (3 years). They weren't so verbal. The boy kept running of with fig cause they both loved that you had to blow out the tentacle. He ran away with it so he wouldnt have to share it with his sister. She tried out most of the puppets and was able to slowly pick up the gestures.

I have a hunch girls will be better at the gestures. I'll i know after some more tests, lets see how it turns out :)


Sunday, February 21, 2010

Interaction Prototype

With the earlier prototype I had tested the basic concept of Grub i.e. a set of monsters that each other. I know need to test two aspects of the toy:

1) How well the characters work as hand puppets?
2) How kids react to behavior of the embedded electronics?

1) HAND PUPPETS
In order to test this I have created very rough fabric prototypes of each character. I also have done this to see what kids understand of the form of each character and how they use them.
Shrimp with a finger pocket under its belly.


Fig opening its dull covering to show off bright inner petals.





Saber with finger spaces for pincers and velcro lice on its feet.


Blob with finger pockets on either side and in its eye socket/ neck. And a velcro patch on its bottom for eating lice. yummy!

2)ELECTRONICS
I have created a sock character to see how kids will react to blob lighting up. And hope to hear through the test what kinds of behaviour they would like it exhibit (fear, death etc.)

video
Yayeee! It actually works!

The Technicals

So I had a difficult 1 and half weeks working on the technology. Cause one silly little mistake and it just wont work. It drove me crazy but seems to be ready for a first test. Phew!

In order to the test the technology I decided to create my own arduino board(micro-controller). This turns out cheaper, smaller and sturdy enough to test.
So..

1) I made an arduino on a breadboard using the ITP Tutorial
(and ofcourse the first thing you do when its ready is get an LED to blink)

2) Attach the reed switch circuit to the breadboard Arduino

3) Solder everything onto a perf board.
Freeware like eagle lite is available to help you layout your circuit. But since I didn't feel like working with another software I drew it out with pencil and paper. And yes i guess this only makes sense for a relatively simple circuit.