Andrew Chang's IAT 320 Blog
Project Bloom making waves

It has only been two days since we uploaded our video to Vimeo, and already someone on FashioningTech.com, which we regularly used as a source for inspiration, has discovered our project and made a blog entry about it -

    http://www.fashioningtech.com/profiles/blogs/bloom-the-emotional-side-of

Hard work does pay off!!

It is unfortunate that she forgot to mention Priscilla’s name in the credits as Priscilla has put more effort into this project than anyone else. She managed the team gracefully. Without her, there was simply no way we could have completed this project in time.

Project Bloom - Final Result

After close to one month of hard work, Bloom, our project, has finally been completed. It has been a long, hard, but rewarding journey.

wearable worn by Carol Tu, photo taken by Andrew Chang

The Final Presentation Slides (designed by Priscilla Lee):

http://www.sfu.ca/~pml6/IAT320/bloom_slides_final.pdf

The Research Paper in ACM format (written by Priscilla Lee & Yeieun Jang):

http://www.sfu.ca/~pml6/IAT320/Bloom_ANurturingEmbrace.pdf

The Final Documentation Video (directed and edited by Carol Tu & Andrew Chang):

http://vimeo.com/22598682

Coding

With the Arduino codes, since the methods which detect different positive and violent touches already work, I focus on:

1.      developing a method that will successfully move the servo motor without inducing delay time in the system.

2.      creating codes which make the servo rotates and thus the flower opens more smoothly

3.      constructing codes that will gradually light up the spore LEDs even when large increments of values are passed on to the variables in charge of the LEDs

4.      developing codes that closes the flower and dims the spore LEDs after the prolonged absence of positive touches

 

—1—

Since most of my codes utilize the millis() method and compare the time differences between active and inactive sensors, any delay time in the system would render my codes useless. This turned out to be the major obstacle I encountered during sketch 2 project. After a brief sit-down with our TA, Aaron, the solution was apparently very simple, sending a command to move the motor only when a set time period has passed. All it took was 3 lines of codes.

 

After my spending hours and hours searching for answers, our TA solved the problem in 5 minutes. That is the difference between the inexperienced and the experienced.


—2—

I accidentally found the way to make the flower open smoothly when conversing with a classmate, Kelvin Wong, on our project progress. He informed me that in order to make the motor rotate smoothly I need to command the motor to move at 1-degree increments. I took his advice and create the following codes.

Now, instead of ordering the servo to move 20 or 30 degrees at once, I always order the servo to move at 1-degree increments, allowing smoother rotation that better represents the gradual blossoming of the flower.

—3—

In order to have the spore lit up and died down gradually instead of in large incremental jumps, I order the LED to increase or decrease its brightness by 1 increment every 10 milliseconds. The creation of this method was inspired by the previous 2 codes (—1— & —2—).


—4—

Lastly, for the flower to close after a prolonged absence of positive touches, I compared between the time when no sensor is activated to the last time when any sensor was activated. If the time difference is greater than the time I set (in this case, 100 seconds) the variable that controls the degree of the flower opening starts to decrease by 1 every 20 milliseconds.

In the flowerOpen() method, I then order the servo to close the flower gradually by 1-degree increments.

The same technique also applies the died-down of spore LEDs.




[Flash 10 is required to watch video]

Bloom: Mechanics of the Flower   

(videographed by Carol Tu; directed, demonstrated, and edited by Andrew Chang)

Spores

Our initial intention was to use fiber optic cables to build the vines that spread out from the flower; however, after some experimentation with optic fiber cables we found that the light provided by LEDs were just too dim to make the vines visible in daylight. We thus went on to explore alternative ways to represent the spreading of positive emotional energy. At last the team decided on using green LEDs under paper-made leaves as spores.

Yeieun, our main wearable designer, was then able to come up with several designs for the spores.

    Design Sketches by Yeieun Jang

Finally, after taking visibility, aesthetics, and materials at hand, we decided on one of the design by Yeieun.

photo taken by Alex Akopyan

The image above shows our experimentation with greed LED under leaves made of ornamental paper.

Flower Prototyping

Today the team commenced on flower prototyping. We cut, folded, manipulated, and glued different papers into different shapes and put them on top of the Miura-Ori fold to decide the appearance of the flower. At first Alex and I spent quite an amount of time thinking and sketching the look we want to achieve. But it is Priscilla who reminded us that prototyping is more about hands-on experience rather than mental visualization. We then followed her advice and were able to come up with different prototypes much quicker.

Here are some of the prototypes we came up with:

photo and slide arranged by Priscilla Lee

photo taken by Alex Akopyan

In the end the team chose the prototype that was simple yet elegant.

photos taken and compiled by Priscilla Lee

With the ornamental paper Pricilla purchased from Paper-Ya on Granville Island, we were able to create a delicate and elegant flower that varies in its appearance throughout different stages of blossoming.


Project Idea Finalized

After a few discussions with our instructors and among the team members, taking the time constraint, the team’s technical capabilities, and our ideas’ degree of embodiment into account, we decided to continue with our Sketch 2 project.

However, our team decided to expand the scope of our last project. As one of the main designer, Yeieun made a suggestion to the team to create a system, in which the flower will be at the center, with vines of fiber optic cables as the peripherals.

The image below shows some of her designs.

Sketch by Yeieun

We also complete assigning each team member’s roles in the project.

Final Project - Brianstorm

Final Project Team Members (Team PAACY):

After a few brainstorming sessions, here is a list of our ideas:

1. Continue with our sketch 2 project “Intimate Touch”

    Since we were not able to successfully implement a working flower onto the shirt, we have the option to continue with this project.

2. Floating Fabric Canvas

   

The idea is to suspend a piece of fabric in the air that acts as a free form canvas, shape-shifting according to the user’s gesture. The user will interact with the canvas wearing two gloves. The servo motors attached to the fabric (connected with transparent wires) will manipulate the fabric according to the values passed on to them by the accelerometers installed on the gloves. We realized that this is quite an ambitious project and may be too difficult to complete in 3 weeks.

3. Hanging Mobile (with Origami Magic Balls)

Sketch by Yeieun Jang

The Hanging Mobile is an interactive art installation that expands on the concept of a mobile and attempts to explore the idea of curiosity in both children and adults, and their relationships.

Mobile is a everyday decorative toy that people hang on top of a infant bed. It rotates slowly and elicits the curiosity of babies, encouraging them to interact with it.

The Hanging Mobile expands on this idea and infuses the mobile itself with a personality. Instead of targeting babies, the Hanging Mobile will be an art installation that not only draws curious crowd to interact with it but also acts as a curious entity.

In its idle state, the mobile rotates slowly. When someone enters its territory, it will become curious and turn to face the visitor. If the person stays in its territory or slowly approaches the mobile, it will shake back and forth to draw the person’s attention. Once the visitor gets close enough and touches one of the origami balls, that ball will puff up. However, if the visitor approaches it too fast, the mobile will enter an alarmed state, freezes itself, and all of its origami balls will puff up.

4. Sword Fighting Game

The players will wear wearable that has embedded soft circuit that will only be activated by the tips of swords we make. The Arduino boards on the wearable will be programmed to calculate the scores and display it through Processing and a projector on a wall.

5. Laser Tag

The players will wear vests that have embedded infrared sensors. The hand-made guns will be equipped with infrared lights that only activate when triggered. The Arduino boards on the wearable will be programmed to calculate the scores and display it through Processing and a projector on a wall.

6. The Observing Box

The Observing Box is a box with Chess-like grids in the front. Inside the box there will be a movable LED light. Once the box detects human presence in front of it. The LED light shall follow the person’s movement.

With these ideas in mind, we shall have a discussion with our instructors and decide on one.

Team Meeting 7 & 8: Meetings Till The Presentations

We pulled two all nighters on Saturday and Sunday.

We had real difficulties coming up with a flower design that enables a servo motor to both open and close the flower. We tried to follow Greg’s advice by using the nature of spandex to help the flower open. Sadly, the elasticity of the spandex we bought was not strong enough to help the flower open. At 3 o’clock in the morning, we came up with an alternative design that works mechanically, but we had to compromise on the aesthetics. The flower became less personal and was not a very good representation of the user.

I also ran into serious problems with the codes. It turned out that I made a huge mistake not figuring out how to code for a servo motor first before moving on to the sensors. Because my sensor codes requires the correct recording of negative time (when none of the sensors are touched) and positive time (when a sensor is touched), any delay time in the program would ruin the inner working of my codes. Coincidentally, all servo motors require delay time that allows the motor to move, thus render my codes useless.

In the end, because I could not make the servo motor rotate appropriately, we were not able to successfully implement the mechanics into the wearable. Also, it was difficult to make the flower successfully stand on the user’s shoulder. 

We put real efforts into this project, had all the individual parts working, but we were not able to put all the parts together successfully. 

This will not happen again in our final project.


I hope I will be able to make appropriate changes to the codes in the future to make the servo motor functional.

Team Meeting 4, 5, 6: Programing & Flower Prototyping

In the fourth meeting, we decided to divide the tasks among the team members.

Priscilla is in charge of sewing and flower prototypes.

Carol is in charge of the presentation slides and research.

I am in charge of the circuitry, programming, and force sensors.


I started by dividing the necessary functions of the codes into different methods.

-A method that detects violence against the user

-A method that detects patting

-A method that detects hugging

-A method that detects stroking

-A method that opens the flower

-A method that closes the flower

After talking to Greg on Wednesday, we decided to place four sensors on the back of the wearable.

detection of different friendly gestures:

patting - not differentiated

hugging - differentiated by location and firmness

stroking - differentiated by location

Obstacles I encountered:

-The Arduino board we borrowed from the library (Arduino NG w/ ATmega8) only allowed 7.168 kilobytes of codes. This constrain forced me to decrease the number of gestures the board detects (originally, stroking is differentiated by both location and strength and patting is differentiated by location).

- The sketch size limit of the Arduino board also made me change my codes so that only one person can interact with the user at one time.

How: I have a variable set up that stores the time (in milliseconds) when none of the sensors are activated and compare it with the time when any of the sensors is activated. Thus if there is more than 1 person that interacts with the user, Arduino would not be able to recognize the gestures.