Alex Lin, Harsh Kedia, Ophelie Tousignant
Abstract
Our project focused mainly on the use of motion and sound to initiate contact and connect to the visitors in an effort to inspire interest and curiosity regarding the functionality and reactions of the project. Overall, however, this project found that the motions, whether due to the frosted acrylic vitrines, or the dynamism of the space context, were too subtle to attract extended interactions with visitors. The ultimate question that the project attempted to resolve was how a project could navigate its surroundings to successfully capture and maintain the attention of children.
Objectives
Our goal for this project was to provoke a sense of delight/wonder in a young audience by creating origami-based creatures that interact with the child through the use of a simple, repeatable, mechanical system that reacts to the child’s presence with sensors.
We wanted to design a modular mechanical system both for efficiency of manufacturing and because the fragility of the paper we chose to use for the origami structure forced us to consider the possibility of having to replace the origami on the system. By choosing a similar system for each creature, we hoped to keep the option of replacing the creature open, should it be necessary.
We also wanted to give our creatures a personality and movement that corresponds to the motion of the origami structures created in order to give a natural feel to each creature, and allow the children to understand them as emotional/alive. This would allow the children to establish a different relationship with each creature, and develop a curiosity towards their reactions to their presence.
Implementation + Outcomes
We chose to give each creature different action settings that correspond to how an animal might behave in its natural state. A flight/fight response was established for each creature, and activated based on the location of the audience. For example, if a child were to stand in front of sensor #1 or #3, the creature would respond with a programmed “fight” mode, and if a child were to stand in front of sensor #2 or #4, the creature would respond with a programmed “flight” mode. Each reaction was tailored to each creature based on the construction of the origami.
The creatures were then placed in a triangle with sensor #1 facing inwards. This would allow for a moment in the center of the triangle when all creatures could react to the presence of a person. Three other moments would also be created outside of the triangle, where two creatures might react to the presence of a person.
A “happy” mode was also implemented as a default noise and movement in order to attract an audience. This effectively established an area of the room for the creatures, and allowed them to be noticed despite their small size and the distractions surrounding them, although they were still perhaps less noticeable than we had hoped they would be. The presence of a loud TV and the appeal of a giant stuffed cow often distracted the children from the three small creatures nearby. Our project was most noticed when the museum was busiest, since children would notice the creatures and start playing with them after realizing that the other exhibits were occupied.
We deviated slightly from the original goals in a couple of significant ways. One was in the creation of a non-reacting creature, and the other in the placement of vitrines over the creatures. These decisions were made based on our previous visit to the children’s museum, when we noted that parents and children alike were confused as to the purpose of the creature whenever sensors failed to prompt a reaction.
A reaction failure due to unreliable sensors prompted both children and parents to pull on the creature in order to provoke some sort of reaction. We placed vitrines on the creatures in order to communicate the fragility of the mechanism, and prevent a violent reaction from the audience. We found that the slightly foggy physical barrier between the children and the creature seemed to incite two different unexpected reactions from the younger audience: either the child would read the flat surface as a drum and commence a musical endeavor, or the child would be further frustrated by the barrier between them and the creature and attempt to rip it off. The barrier still succeeded as a protective signal, however, because the parents understood the meaning of the surface and thus, for the most part, prevented their child from destroying the project. Ideally, we would have found a solution that signaled parents while still allowing for the children to clearly view the creatures and touch them gently.
The non-reacting creature was created because of the nature of the origami. Throughout this project, we had been trying to establish a behavior that was line with how the origami for the project naturally folded. After our first museum visit we chose to locate our project in the empathy room, which has a general wildlife and kindness theme, and this desire to give the creatures a natural movement became more pertinent.
The non-reacting creature is larger and more planar. It reminded us of a slow moving animal, and although we had created a code that established a fight/flight reaction specifically for the slow movement of that creature, we decided that the nature of the origami made any reaction on the part of the creature to its surroundings seem forced. As a result, we established a code that made the creature move as if it were breathing naturally, regardless of the position of its audience. We thought that this sort of naturally slow but fascinating movement made by a mechanical system might cater and hold the parents’ attention.
What we found was that due to the fogginess of the vitrine the movement could only be seen if one paid close attention, something perhaps more difficult to come by for a place filled with children running and exploring a space. This prompted visitors to get frustrated at the creature since they would usually approach the creature after having already interacted with another one, they would have a mounting desire to understand the reaction that this new creature might have to their presence, and leave disappointed after realizing that this one doesn’t react.
At some point during the final project reveal a child accidentally broke the vitrine and one side of it fell off. This allowed the movement from that creature to be more visible from that open side. The next child to notice the creature sat down on the open side, and stared at the moving creature for minutes.
We removed the vitrine in its entirety afterwards, and found that adults and children alike appreciated the movement of the creature. Parents chose to explain it as a “lung” to their children, who would in turn examine it more closely to see the movement. A museum staff member came to talk to us, and also seemed fascinated by the creature, so much so that she chose to sit a child down in front of it and explain the concept of biology-inspired mechanical creatures to him.
Although more impatient children or adults tended to get frustrated by the slow movement (one child even yelled “Mommy, why is that one not doing anything?”), this creature was a success for the more observant audiences.
In fact, our general project seemed cater most to the more patient audiences. The organization of the sensors gave the project 4 blind spots, one per side, where the sensors couldn’t detect the movement of people nearby. For this reason, the creature sometimes didn’t react to the presence of a child running by it, or failed to recognize a smaller kid as they stood right in the middle of the blind spot. This meant that children who didn’t move around the box to try to find out what this creature was about wouldn’t see it’s reaction, and became bored. Furthermore, at times, the children would ignore the triggered movements and continue on their way. Even so, children who actively sought to find out what was creating the motion of the object through observation also found that the creature reacted to their presence, since they inevitably had to move in front of a sensor. Children who were curious, but more keen on a tactile approach to discovery would often deconstruct, or attempt to deconstruct, the project with their enthusiasm. In a way, this was the biggest failure of this project: it didn’t cater to enough people. The creatures were too fragile for tactile learners and the sensor placement and response time wasn’t perfected enough for younger or more active children. In an environment with many blunt, large scale exhibits like the forest VR experience and the large stuffed animals, our project severely lacked the scale and the clear dynamism to fully engage the children.
Contribution
Each team member had general outlined tasks in the project proposal, which were:
Alex: Origami
Ophelie: Behavioral Encoding
Harsh: Mechanics
We deviated from them a bit, and the final tasks were divided more specifically in this way:
Alex: Origami and mechanics — folded origami, wired arduino/breadboard, cut and put together box for mechanical housing, troubleshooting of mechanical system
Harsh: Mechanics and code — designed/drew/cut/put together box for mechanical housing, troubleshooting of mechanical system, troubleshooting of electronics, helped with code structuring
Ophelie: Code and behavioral logic — code structuring, established creature behaviors/spatial organization of creatures, encoded behavior
These are the general task outlines, each person spent most time working within these categories, but each person also helped to varying degrees with all other parts of the project.
Inspiration:
Madeline Gannon
References:
https://www.youtube.com/watch?v=aul0SzPVsls
https://www.youtube.com/watch?time_continue=1&v=YQA2QWebvlc
https://www.pinterest.com/pin/562950022156976275/
Creatures
All of the Foldable Creatures
The Cute
The Sporatic
The Lazy
Interactions
Interest
Parent-Child Interaction
Museum Lesson
Girl Interacting with the Space
Technical Documentation:
Technical Drawings
Main Arduino Circut
Secondary LiPO-LED Circut
CODE
#include <Servo.h> #include "note_table.h" const int SERVO_PIN = 5; #define echoPin1 9 #define trigPin1 7 #define echoPin2 11 #define trigPin2 10 #define echoPin3 4 #define trigPin3 3 #define echoPin4 2 #define trigPin4 6 long duration1, distance1; long duration2, distance2; long duration3, distance3; long duration4, distance4; long triggerDist = 30; long fightDist = 40; int play = 0; int curNote = 0; int curMov = 0; //const int ledPin = 12; Servo wiggling_servo; int speakerPin = 12; // notes in the melody: int melody[] = { NOTE_DS4, NOTE_FS4, NOTE_GS4, NOTE_CS5, NOTE_DS5, NOTE_CS5, NOTE_AS4, NOTE_GS4, NOTE_AS4, NOTE_GS4, NOTE_FS4, NOTE_DS4 }; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 }; // notes in the melody: int melody2[] = { NOTE_B0, NOTE_D8 }; int melody3[] = { NOTE_E3, NOTE_E3, NOTE_E3, NOTE_C3, NOTE_D3, NOTE_D3, NOTE_D3, NOTE_B3, NOTE_B3, NOTE_E3, NOTE_E3, NOTE_E3, NOTE_F3, NOTE_F3, NOTE_F3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_A4, NOTE_E3, NOTE_E3, NOTE_E3, NOTE_F3, NOTE_F3, NOTE_F3 }; int noteDurations2[] = { 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4 }; /* ******************************************************************** . SETUP ************************************************** */ void setup() { Serial.begin(9600); wiggling_servo.attach(SERVO_PIN); pinMode(trigPin1, OUTPUT); pinMode(trigPin2, OUTPUT); pinMode(trigPin3, OUTPUT); pinMode(trigPin4, OUTPUT); pinMode(echoPin1, INPUT); pinMode(echoPin2, INPUT); pinMode(echoPin3, INPUT); pinMode(echoPin4, INPUT); pinMode(speakerPin, OUTPUT); } /*********************************************** HELPER FUNCTIONS ************************************************/ void linear_move(int start, int end, float speed) { const int interval = 20; float step = speed * 0.001 * interval; float angle = start; do { wiggling_servo.write(angle); // update the servo output delay(interval); // pause for the sampling interval if (end >= start) { angle += step; // movement in the positive direction if (angle > end) angle = end; } else { angle -= step; // movement in the negative direction if (angle < end) angle = end; } } while (angle != end); // Update the servo with the exact endpoint before returning. wiggling_servo.write(end); } void checkSonar() { digitalWrite(trigPin1, LOW); digitalWrite(trigPin2, LOW); digitalWrite(trigPin3, LOW); digitalWrite(trigPin4, LOW); delayMicroseconds(2); digitalWrite(trigPin1, HIGH); digitalWrite(trigPin2, HIGH); digitalWrite(trigPin3, HIGH); digitalWrite(trigPin4, HIGH); delayMicroseconds(10); digitalWrite(trigPin1, LOW); duration1 = pulseIn(echoPin1, HIGH); digitalWrite(trigPin2, LOW); duration2 = pulseIn(echoPin2, HIGH); digitalWrite(trigPin3, LOW); duration3 = pulseIn(echoPin3, HIGH); digitalWrite(trigPin4, LOW); duration4 = pulseIn(echoPin4, HIGH); distance1 = duration1 / 58.2; distance2 = duration2 / 58.2; distance3 = duration3 / 58.2; distance4 = duration4 / 58.2; Serial.println(distance1); Serial.println(distance2); Serial.println(distance3); Serial.println(distance4); if (distance1 < triggerDist || distance2 < triggerDist || distance3 < triggerDist || distance4 < triggerDist) { play = 0; //flight } if (distance1 > fightDist && distance2 > fightDist && distance3 > fightDist && distance4 > fightDist) { play = 2; //happy } if (distance1 > triggerDist && distance2 > triggerDist && distance4 > triggerDist && distance3 > triggerDist) { if (distance1 < fightDist || distance2 < fightDist || distance3 < fightDist || distance4 < fightDist) { play = 1; //angry } } } void happyMelody(int thisNote) { int noteDuration = 1000 / noteDurations[thisNote]; tone(8, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } void happyMove(int thisMov) { if (thisMov == 1) { linear_move (50, 100, 100); } else { linear_move (100, 50, 100); } } void scared() { for (int i = 0; i < 2; i++) { int noteDuration = 1000 / noteDurations[i]; tone(8, melody2[i], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } linear_move (180, 0, 1000); delay(1000); linear_move(0, 60, 30); delay(1000); linear_move(60, 80, 40); delay(1000); linear_move (80, 100, 20); } void angry() { for (int i = 0; i < 4; i++) { int noteDuration = 1000 / noteDurations2[i]; tone(8, melody3[i], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } linear_move (160, 40, 1000); linear_move (40, 180, 1000); } /*********************************** MAIN CODE ************************************/ void loop() { checkSonar(); if (play == 2) { Serial.println("happy"); if (curNote == 11) { curNote = 0; } if (curMov == 2) { curMov = 0; } curNote += 1; curMov += 1; happyMelody(curNote); happyMove(curMov); } if (play == 0) { Serial.println("scared"); scared(); } if (play == 1) { Serial.println("angry"); angry(); } }]]>
]]>
Although I faced some difficulties with the volume of the piece being too quiet and, what I found most valuable about this demo experience was seeing that the way that both the children and adults interacted with the piece was correct to how the project is meant to function. The instrument was set up in the Make Shop in the doorway, and the colors and general aesthetic of the piece fit well, especially with the hanging scarves of the supports above. Some people would walk through the doorway, causing the ribbons to move with them. This motion would cause the IR sensors to trigger an audio response. (these were unfortunately incorrectly soldered, so they were non-functional at the time, but despite this it was good to see that the motion was the same). Some people would stop and pull on the ribbons triggering the audio response. This was too quiet for people to hear unless they were positioned in the right spot, but both kids and some adults seemed to find the motion and click of the ribbons satisfying enough to continue interacting with is for a bit despite the apparent lack of response. Some parents stayed around with it to try to figure out what it was “supposed to do” coming up with many different ideas before realizing that they were triggering a faint audio response. Kids just appeared to enjoy, tugging, pulling, and dragging the ribbons with them. It was good to see that nobody tried to hang from the ribbons themselves and the system was durable enough that it outlasted the aggressive tugging and did not break!
Need to have for next rendition:
Speaker that is not reliant on Bluetooth, but plugs in directly to aux, and make sure that the sound is loud enough to function in the high volume space.
Minicomputer to hook up so I don’t need to use my laptop (optional)
Correctly soldered IR Sensors.
Final Project Plan
For the final project I want to expand the number of ribbons being used. Totaling about 50 ribbons (for now), half of them triggered by pulling, half of them triggered by IR motion. This will create an interactive audio space.
My first points of focus will be on creating the structure to build the ribbon and sensor system on.
I will be building the support for the ribbon in the SOA DH woodshop and assembling the electrical and ribbon structures in the PhysComp lab.
From there, expanding my goal is to complete two rows of ribbon sensors per week.
I will need to record more marimba noises for tones and for the ambient soundscape.
I would like to get a 4 way inward facing speaker setup functioning (optional, but would be really cool) (two speakers at the very least).
To Do:
Need to order more switches and IR sensors
Need to purchase more ribbon
Raid woodshop (and potentially ideate spaces) for more wood
Record sounds
Look into how many speakers I am able to set up.
Unknowns:
I will need to figure out how to run 50 outputs form a single Arduino, and may need an external power source for this.
I may want to have two different types of ribbon to distinguish between pull or ir sensors (?)
Pattern to set up the pull v. IR triggers in
]]>11/15/17
A. What technical limitations did you discover during the visit?
While at the museum, we discovered that our current combination of fan and flow straightener does not allow the plane to fly well. Flight occurred, but it was relatively weak flight and children were not able to see the true effects of ‘turning’ the plane left and right.
B. In what ways did children and adults find a moment of delight in your project?
When children realized that they were truly able to move the plane up and down, they were immediately excited. They enjoyed seeing their input on the joystick turn into physical output. Adults were excited by the same thing, but even more excited by arduino and wires being visible. To the kids, it was just a thing that happened and was cool. But to the adults, it was amazing to see the physical wiring and board components produce some result from their kids input.
C. What aspects of the observed interactions were surprising to you?
Although the plane was not flying well, the children still enjoyed the exhibit very much. Because some of the children were so young, they were not able to fully grasp the idea of flight via a wind tunnel. They were, however, able to understand that they were causing the motion of the plane.
D. What are additional or different interaction features which would help visitors perceive more of the delight, magic, function, or purpose?
The addition of colorful light effects will most certainly increase the children’s attraction to our installation. We also believe that an autopilot mode will help visitors to enjoy the exhibit more. When untouched for a certain period of time, the plane will begin to fly a pattern on its own. A plane that is already in motion will be much more attractive to children than one that is just sitting static in the tunnel.
E. How does this visit change your vision of the fully realized project?
We no longer are seeking to have children build and test their own planes. We misjudged the age and capabilities of the average visitor. Because of this, we also determined that we will not use IR sensors to monitor the quality of flight.
F. Summary video clip and supporting photos.
2. Revision Plan
A. What will it take to resolve known technical limitations?
We are going to remake the flow straightener so that there is less resistance. We hope to do this via several laser cut sheets layered to create larger tubes. We are also going to change the turning control from the motion of the fan to direct rotation of the plane. We plan to move the servo-controlled rotating base inside the wind tunnel, and we are going to mount the existing plane mount to the rotating base. This will allow children to directly change the height and rotation of the plane. In order to create an ‘autopilot’ mode, we will need to add code that will control the plane while in this mode.
B. How does the fundamental experience need to be modified?
Most children at the museum are too young to make their own functioning plane so we will have a pre-made plane or set of planes that the children can then fly. Instead of focusing on the creation of the plane, the experience will focus on the joy of controlling the plane. The control of the plane captured the children’s attention and created excitement at the museum. We plan to change the control system for the motion of the plane which will make the children’s input easier to observe. The experience has been shifted from creating and testing a plane’s design to a paper airplane flight simulator.
C. What new capability will you add beyond the initial objectives?
We also plan to add lights and an ‘autopilot’ mode to increase visual appeal. The ‘autopilot’ mode will allow for movement even when the wind tunnel is not being used. We are also going to switch to more direct plane control as this seemed to capture the children’s attention.
3. Schedule: https://docs.google.com/a/andrew.cmu.edu/spreadsheets/d/1NIYZ6UjwCsyXJIFSUd4YIChFI9qe8L3xVX5hZD4VVHo/edit?usp=sharing
]]>
To my surprise, parents actually thought my project to be very interesting and cool. Kids, however, at their young age had difficulty understanding the prompt, which was to type in a phrase from Morse Code on the button provided. I often times had to demo the project to the kids, and even still they preferred just pressing the button randomly instead. When I helped one child through the demo, though, the parents often lit up with joy.
I think that an additional feature I could have added was an LED Display that would guide the children through each character so it was more visual for them. I would also definitely like to add a musical feature and possibly turn the letters into pictures.
This visit makes me understand that little children have difficulty understanding the concept of language, and I must either find a new way to teach kids Morse Code or change the idea of my project.
I believe I will come upon new technical difficulties as I go further in my project, as I plan on having an LED Display support the foundation of my original project. The experience will hopefully be broadened by a more visual display. The capabilities I will add in my finished project will be wide ranging with regards to lights, sounds and sensors from children, as I may use the movement of children to trigger a response.
Analysis
What technical limitations did you discover during the visit?
Our visit showed us that the crank mechanism and the elastics holding up the base of the building were too fragile.
In what ways did children and adults find a moment of delight in your project?
Both children and adults were attracted by the brightly colored straws and connectors. Despite the crank being broken early on, many families still came to the table to build and play.
What aspects of the observed interactions were surprising to you?
We were surprised as to how many adults were interested in playing with the straws and connectors. When families came to the table, the adults were having just as much fun playing as the children were.
What are additional or different interaction features which would help visitors perceive more of the delight, magic, function, or purpose?
A brighter, more visible, and more exciting LED display would help visitors understand the vibrations they are causing in the table and encourage them to create stronger earthquakes.
How does this visit change your vision of the fully realized project?
We have a better understanding of the different ways children initially interact with our table. They are much stronger and physically involved than we had previously expected.
Revision Plan
What will it take to resolve known technical limitations?
We will have consider redesigning our crank mechanism to handle the wear and tear of child play. We will also have to reinforce the elastics holding the vibrating platform (putting a lower bound to the platform so kids can connect the base easier).
How does the fundamental experience need to be modified?
We learned that the pieces were able to slip through the 1 inch gap around the vibrating platform, so we need to modify the table to minimize straw loss.
What new capability will you add beyond the initial objectives?
We are going to add a more engaging LED seismometer display. Ideally, it will be a more interesting array of LEDs rather than a linear color range.
Revision Plan
Documentation
Progress Report
During the most recent installation and visit to the Children’s Museum, our creature encountered serious interaction robustness issues in regard to sheer survivability when interacted with. On multiple occasions, the origami piece was pulled completely out of the system, thus rendering the project useless. Even so, on multiple occasions children and adults were able to experience a moment of delight in the project whether dealing with interest, fear, or wonder. While fear and wonder caused harmless interactions, interest often ultimately led to the children beheading the project in an attempt to better understand how the project works. Of these interactions, the most surprising was that the children experienced fear when interacting with our project and were actively shying away from the project, although ironically in the sense that the creature itself was designed to be “shy” and “fearful”. From this visit, it was clear that, firstly, a separation between the user and the project would be necessary to prevent frequent accidents and breakage of the project. Secondly, it was also clear that the single creature alone, while interesting to some, others were uninterested, perhaps hinting that a more diverse field of unique creatures with different movements could become a more compelling visual experience that could augment the duration and level of interaction possible. Lastly, the level of complexity regarding the behavior of the creature was also clearly lacking and was having issues capturing and engaging the museum-goers for extended periods of time. Following this visit, our vision of the project has morphed into a group of different creatures generating a field that reacts uniquely depending on one’s location and how many creatures can sense them. By layering multiple creatures within a space, it is possible to generate higher levels of complexity and combined behavior even using relatively simple code. In conclusion, by adding more complexity into more creatures, it is then hopefully possible to generate more interest and delight regarding the project.
In regards to technical limitations, we are planning on adding an acrylic barrier to prevent museum-goers from dismantling the project in an attempt to better understand the project and satisfy their curiosity. Another issue that was brought up was the lack of more compelling light which may also be solved by using higher output LEDs and other techniques of lighting. Besides these issues, only through making can we better understand and ascertain mechanical issues that may come up with the other two creatures, although our group expects significantly less resistance than our first creature given our prior experience. In terms of the fundamental experience, there are no significant changes to be made other than the increase in the creatures, the generation and positioning of a field of creatures, and hopefully the augmentation of the complexity of the code to enhance the behavioral experience. In regards to changes compared to our initial objectives, our group had relatively ambitious goals from the beginning so it just comes down to executing the plan and making the three creatures, then improving the code. As the three creatures will be finished mechanically on different time scales, it will be possible to fold, make, then code in succession to increase efficiency.
VIDEO DOCUMENTATION:
Creature in Action
Child Scared of Creature
Short Moment Of Delight
Almost Pulled it Out
He killed it…
]]>