[Robotics and Kinetic Media] Semester Project

For the semester project, I wanted to deal with the idea of manipulation. Manipulation is one of the family issues I wanted to address for my FYP. I thought of using puppetry as I was inspired by Wolfson’s Giant Fast-Moving Puppet. Since the movement of puppets are controlled by human. It is to show a metaphorical example of manipulation.

I was thinking of using voice recognition sensor to move the puppets with servos. However the complexity of it would require me to do continuous testing and it may not detect the keywords as smoothly. I decided to use either a PIR sensor or a distance sensor to trigger the servo sensors to move the puppet.

I sketched out the puppet to visualise how I wanted it to look like. I also had to plan out how to sew the different parts so that when I join them together it would move like a puppet. The next thing was to think of the materials I wanted to use to create a puppet.

After researching on the types of materials required to create a doll puppet, I decided to go with brown felt fabric for the body parts and black yarn for the hair. The doll clothes was just normal fabric with a touch of Peranakan style which represented Singapore context.

I cut out the different parts of the puppet parts on a transparency so that when cutting out on the felt fabric it would be easier to trace out.

The sewing of the doll was the hardest as I had to re sew quite a number of times to make the thread less visible and tight so as the cushion inside would not come out. 

Attaching the different parts of the doll together with thread. (below)

The first round of sewing was just making the doll as it is without having any joints that would allow it to move freely.

I sketched out how the doll will look like with joints so that I can visualise it.

I was thinking what kind of material would allow the joints of the doll to make it move like human joints. After consulting a few people I decided to go with keychains.

However the downside of using keychains is that after multiple testing with just servo motors, the thread would come off resulting in a few keychains hanging loose from the body parts. The head of the doll did not move as I wanted when I was using the keychain. I decided to use buttons as joints. The effect was what I wanted where the doll’s head moved left and right more loosely.

The sewing of the doll’s clothes was a challenged. I had to measure out the height of the doll and attaching 4 separate pieces together. I did not want the frills of the cloth to affect the movement of the dolls and had to try out different sewing methods before finding the best way to prevent the threads from coming off.

I needed to test out the movement of the doll physically before adding in the mechanics. It was to see how much it would move and how long the strings needed to be before the limps can move up and down.

I tested out the mechanics using a small servo motor to see whether it was able to pull an object up. There were a lot of challenges because when I was holding the servo with the object, it kept moving around. I attached the string to an ice cream stick and cut a hole which was longer and wider than the stick. This enabled me to have the servo be placed in a fixed position and replicate the same thing three more times.

I tested out the ultrasonic sensor as it’s own and see how far of a distance I wanted it for people to interact. After testing, I had to figure out how to combine both the distance sensor and servo motors together. At first I used buttons to control the servo motors and then changed it to the distance sensor instead. It worked well with 1 servo motor and continued to add more of them. It was then I realised that there was not enough power to control 4 big servos. I added a battery to the power instead of using an arduino. It worked as intended.

After that, I attached the doll to the servo motors. I had to measure out the box where the doll was being placed in so that the doll can move.

I was testing out the servo motors and distance sensors to see how much the doll will move. I wanted to see how close a person have to be to the doll before it will move. I had to make quite a number of changes before I got the ideal distance I wanted. 

Final Coding

People interacting with the doll

Final Video:

It was interesting to see how different people reacted to the doll as I did not expect the doll to scare some of them. I was wondering why some of them got a shock and asked them about it. Some mentioned that they did not know it will move when they were close to the sensor. Others was afraid because when their friends were trying out, the sound from the servo motors made them jumped.

[Robotics and Kinetic Media] Temperamental Chopsticks

Brainstorming process:

During the brainstorming process of creating a behbot, I was thinking of how to create 2 different movements to represent 2 different emotions. For the 1st sketch, I was thinking of the clock mechanism movement (grandfather clock) which gives people 2 kinds of emotions. When the minute hand of the clock goes fast which makes one anxious and if it goes slow it will cause one to be irritated.

I was thinking of how to implement the pull and push motion for the clock mechanism to work. I was thinking to have the servos move to the right at the same time with strings attached to the stick and the servos. As to how to attach the strings to make it look like a pendulum movement of the grandfather clock, I have no clue. Hence, I thought of the 2nd idea which was easier to implement.

Sketch 1 (image below):

For 2nd sketch, I thought of drumsticks after hearing someone playing drums. The speed of the sticks could represent 2 different emotions. I was thinking that if the sticks move faster it could represent angry while slow movement could represent fear or sad. 

I was thinking how I could replicate the movement of the drumsticks when someone is playing the drums through the use of servos. The servos just needed to move from 0 degrees to 90 degrees. 1 of the movement should be fast and strong while the other is slow and not too strong. 

Sketch 2 (image below):

Mockup (physical): 

Since I wanted to have a material that is similar to drumsticks, I decided to use chopsticks. I tried to mimic the movement and moving it at different speed to see if they have the effect I wanted. After testing and being satisfied with the outcome, the next steps I need to think about was how am I going to attach the chopsticks to the servos.


The first testing was with one servo. I wanted the servo to move from 0 degrees to 90 degrees instead of the usual 180 degrees. The servo went the way I wanted without the button pressing. Next, I had to implement the button to change the speed of the servo. After 1 servo with the button works, I added the other servo to see if 1 button could control 2 servos. 

After the servos worked, I attached the chopstick to 1 servo since there will be added weight needed to move the servo. The servo moved slightly slower which I had expected. Not only that, the strings tying the servo and chopstick becomes more loose as it turns. I realised that I had to make a ‘X’ figure in the middle to make it tighter. The strings did not become so loose as compared to the previous time. I used the same method on the other servo and chopstick.


For the final, I decided to make a stand to hold the servos. The panel on each side seems like hands holding on to the sticks and hitting the middle part (some sort of a drum).


The part which is the most challenging is coding the button pressed to change the speed. It is easy to verbalise it out but when it comes to adding 2 delays I have a problem with implementing it. After much testing, I managed to figure it out. When pressed once the servos will move at a fast pace and when the button is pressed the 2nd time, the servos move at a slower pace.

The other challenge is figuring out the position of the servos. I wanted to make them hit at a different timing instead of being simultaneously. I had to change the white part a few times before getting it to the position I wanted.

Final documentation:

[Robotics & Kinetic Media] Semester Project Proposal 1


To create a puppet (metaphor of a person) which will move the limbs based on manipulative commands. It is to raise the awareness of one kind of verbal abuse, manipulation.




Key challenges:

Voice detection to move the limbs (servor motors)

Specific commands to create different actions


Things to take note of:

Hiding of the mechanics which may cause overheating

FYP: Sketch of room layout

Visualising the space of FYP at an angle and trying out the colour scheme to see if it gives a comfortable, homely environment for the audiences to explore.


Adding speakers to the room layout to see where the speakers should be placed.

Next steps: Record sounds and test them out, think of the different family issues that I want to raise in the home context.