2023 Group 11 – White Rabbit Top Hat
Group Members
Our brief was to make a ‘user-interactive theatrical prop’ that an actor can use to interject life into the scene and engage with the audience. Using an Arduino micro-controller, sensors and actuators, we wanted to design and make a wearable prop that could be used to better convey an emotion or action on stage.
Project Planning
Maker Manual
Materials used:
- A broken umbrella
- A baby jumpsuit/second hand fluffy material of your choice
- A top hat
- String
- Wooden dow
Tools used:
- Glue gun
- Stanley knife
- Wire cutters
- Wood file
Recycled components:
- The umbrella (utilising from a broken/unusable product)
- The top hat (found second hand)
- The material used for the ears – was a baby jumpsuit found in a charity shop
Circuit components needed:
- Wires x 20
- Micro servo SG90-HV x2
- 6V cell x1
- Push-button x4
- 220 ohm resistor x4
- Arduino and breadboard x1
Arduino breadboard layout:
Building Instructions
Making the bunny ear mechanism
- – Locate hinge mechanism from umbrella (this can be seen in the picture above).
- – Using wire cutters cut the mechanism so you have two pieces of metal connected by the hinge between them.
- – Where the hinge is there should be a small hole which you can tie string through. This enables the hinge to be pulled via the string.
- – Then get a wooden dowel and cut it to roughly 1 inch long.
- – Use a file to make a notch in the dowel (slightly larger than the width of the string) and secure it at the bottom of the mechanism (with hot glue or duct tape). The string connected at the hinge should be behind the dowel, so the system acts as pulley.
- – Now add two bits of card roughly 1.5 inches thick and 1 inch in height above and below the hinge. This will act as the frame which will retain the shape of the bunny ear underneath the fabric.
- – Cut out 2 bunny ear shaped patterns that match the size of the mechanism and width of the cardboard.
- – Glue these two bits of bunny ear together and fit it over the mechanism like a sleeve.
- – Repeat this process again for the other ear.
Attaching the bunny ear to hat
- – Cut a hole for the bunny ear to be pushed into the rim of the hat to maintain its position.
- – Now with the bit of cardboard acting as the ear frame, cut along the ear where it would protrude sideways so that it can be seen.
- – Cut on the hat where this cardboard lines up against it, and then slip the cardboard into the hat.
- – Inside the hat cut along the seam of the cardboard and secure it with duct tape or glue.
- – Do the same process for the other ear.
Attaching servo to bunny ear mechanism
- – Locate the servo and attach the string from the bunny ear to the pivot.
- – Make sure the string is pulled taught to allow for the string to move the hinge when pulled.
- – Where the string is taught, mark the location of the servo and cut out a rectangle that matches the size of the servo (slightly smaller to ensure a secure fit).
- – Place the servo inside the hole so that it stays in place.
- – Brace the servo with duct tape so It doesn’t get pulled out under the tension of the string.
- – Apply same process for the other servo/ear.
Building the circuit
- Follow the breadboard layout shown above and attach the wires, buttons, and resistors to their correlating position on the breadboard (avoid connecting the servo wires to the board yet).
Attaching circuit to hat
- – When the Arduino board is all connected attach it to the back of the hat with duct tape.
- – Then get the cell and position it on the top of the hat and also fasten it with duct tape.
- – Connect the Arduino board to a computer with a cable and run the code provided below then disconnect the cable.
- – Connect the cell to the Arduino board.
- – Pierce two holes in the hat for the servo wires to come out from and then connect these wires to the bread board (the wires are colour coded so match them to the correlating colour).
The Code
//creates two servo objects for the ear controls
#include <Servo.h>
Servo rightEar;
Servo leftEar;
//variables to save positions of servos
int pos = 0;
int leftPos = 0;
int rightPos = 0;
//button pin numbers
int defButt = 2;
int surpButt = 3;
int sadButt = 4;
int confButt = 5;
//code setup
void setup(){
//opens the serial line for testing
Serial.begin(9600);
//connects the servos to their pin
rightEar.attach(9);
leftEar.attach(10);
//button pin setup
pinMode(defButt, INPUT);
pinMode(surpButt, INPUT);
pinMode(sadButt, INPUT);
pinMode(confButt, INPUT);
}
//main code loop
void loop() {
//if statement setups, depending on the button pressed
//each button correlates to an emotion
if(digitalRead(defButt) == LOW){
// Serial.println(“DEFAULT”);
defaultEmote();
}
if(digitalRead(surpButt) == LOW){
//Serial.println(“SURPRISED”);
surprised();
}
if(digitalRead(sadButt) == LOW){
// Serial.println(“SAD”);
sad();
}
if(digitalRead(confButt) == LOW){
// Serial.println(“CONFUSED”);
confused();
}
}
//the “default” position which the actor would set the ears to
void defaultEmote(){
//the servo angle that pulls the ears raised
pos = 145;
//writing that angle to the servos so they move to the correct angle
leftEar.write(pos);
rightEar.write(pos);
}
//fully raised ears, showing surprise
void surprised(){
pos = 270;
leftEar.write(pos);
rightEar.write(pos);
}
//ears all the way down, showing sadness
void sad(){
pos = 50;
leftEar.write(pos);
rightEar.write(pos);
}
//one ear goes up and the other down in a small cycle, showing confusion
void confused(){
//separate angles for left and right ear
int rightPos = 0;
int leftPos = 270;
//for loop that cycles one ear up and down twice as a small animation
for(int i = 0; i < 2; i++){
leftEar.write(rightPos);
rightEar.write(leftPos);
//pause between ear changes
delay(1500);
leftEar.write(leftPos);
rightEar.write(rightPos);
delay(1500);
}
}
Design And Making Process
When deciding what we wanted to make for out theater prop we all recalled pantomimes, stories and comic book cliches which would be familiar and wildly recognised as well as fun and interactive. We thought of birds circling ones head when being dizzy or knocked out, a glowing, beating or broken heart, a mask that would have LEDs or moving parts, a ratatouille movie inspired chef hat, and an iconic Alice in wonderland top hat. We all got excited by the idea of decorating a mad hatter/white rabbit prop and having folding bunny ears that would correspond with the emotion of the actor on stage.
Our first idea for the mechanism was to have four servos, two per ear. The ones on the base of the hat would move the hat left and right, while the ones in the middle of the ear would fold up-and-down.
Creating And Testing The Mechanism
When looking at the servos which we wanted to use, and considering the weight of them, the power that would be needed by the base servo and the internal supporting structure of the ear to stand up right with the second servo would be reasonably large and unpractical. We therefore adapted the design shown in the sketch above to have one servo to control the entire ear.
This is what pushed us to start considering a different mechanism using strings and pulleys. We looked into different hinges and found that the folding system of an umbrella worked very well with our desired mechanism.
We attached the string from this mechanism to a servo and with simple code were able to test that the mechanism would work when combined with Arduino.
We moved onto adding the ear material to the mechanism skeleton. After prototyping with scrap fabric we were confident that the servo had enough power to support the added weight, and therefore moved onto using a fluffy white material, which we recycled from baby jumpsuit found in a charity shop, to begin making.
We found that the bunny ear sock lost its shape with only the thin metal mechanism inside and so we incorporated a cardboard skeleton to retain the ear form despite movement.
How we connected the mechanism to the top hat
As well as the bunny ear material, we were also able to find a top hat from a charity shop. Here is Carl modelling it for us.
First, we marked on the brim of the hat where we wanted to position each ear and made a small hole to poke the metal skeleton of the mechanism into. At this point, we also added a small wooden dow with a notch in it at the bottom of the metal ear component to regulate the movement of the string when it was being pulled.
Next, we added the material component of the ear and braced it to the side of the top har to add further support and to make sure the ear wouldn’t be pulled by the force of the servo, since if the ear moved it would compromise the tension of the string operating the pulley. We did this by cutting a slit through the material, revealing the cardboard frame we had implemented earlier, and, using a Stanley knife, cut through the hat to thread this cardboard into the main body of the hat where we then secured it with gorilla tape.
Once the ear was firmly attached to the hat, we connected the servo to the Arduino board and marked where we should secure it to the hat in order to best ensure complete and reliable movement of the ear. We then cut the shape of the servo out of the hat with the Stanley knife and fitted the servo inside.
The tension of the string connecting the servo and the ear was the most important factor regarding the mechanism performing to how we wanted. We experimented to find the best string length which, when at full extension, did not have a force large enough to break the servo. Even when the pivoting limb of the servo did not pop off under the tension of the string, the main body of the servo would begin to be pulled out of the hat and even distort the shape of the hat. When wearing it, the contracting hat would apply pressure to the user and so we considering different techniques of bracing the hat in order to maintain its shape and to make it more comfortable.
At first we tried using criss-crossing wooden dowels inside the hat to add some internal support to the hat, not only did it fail to solve the issue with the servo, but the dowels itself were distorting the geometry of the hat and made it sit uncomfortably and awkwardly on the head. Since having a self contained prop which the actor can actually wear on stage was biggest priority while making we did not use the criss-crossing dowels. Instead we tried securing the servo differently to the hat. We glued the servo to be adjacent to the hat instead of perpendicular, allowing there to be a balancing force against the tension of the string. This stopped the servo being pulled as much as it had been before, however it did not remove all issues with the servo pivot popping off under extreme tension, and so we had to be careful not to overuse the mechanism at one go and increase the delay of the servo moving.
Attaching the arduino board and the battery to the hat
Since we wanted to make this prop self-contained, we removed our laptops as the power source and replaced it with a battery pack. To do this we had to solder the connecting cables between the cell and the arduino board to elongate the wire so it could reach .
We used gorilla tape to secure the breadboard at the back of the hat so that it wouldn’t be seen from the front and placed the battery pack on the top. Ideally we would have wanted to hide the breadboard and the battery pack so create an overall sleeker design, but due to the lack of time and the size of the hat we were working with we were limited with how we could conceal these components, and is something we would change in a future iteration.
Mapping the buttons to the emotions
Once everything was attached to the hat we focussed our attention on adding signifiers on the buttons to match the corresponding emotions. We considered the position, colour and symbol on each button to enhance the intuitive interaction of the sensors.
Consideration of Position:
Assuming most users will be right handed, we placed the default, most used button furthest to the right in order for it to be in easiest reach for the user behind their head. We then ranked the emotions according to what we assumed would be most to least used emotion from right to left. The most left button, furthest out of reach would then be the least used while the most used button will be easiest to access.
Consideration of Colour:
Mapping colour and emotion can be reasonably controversial. Having ‘sad’ as blue was the most obvious choice. We decided on yellow for ‘surprised’ as it is a bright, strong colour for a sudden and strong emotional response. For ‘confused’ we chose green, and for ‘default’ we chose black.
Consideration of Symbols:
We did not assign default a symbol. Surprised had an exclamation mark, ‘!’. Confused was a question mark ‘?’, and sad was ‘:(‘.
Summary of testing conducted
When testing the hinge mechanism, we played with different powers of servo to accommodate the strength needed to pull the string. We had a very large servo initially but then opted for the smaller servo that comes in the Arduino kit as its reduced size allowed for the hat to be worn more comfortably whilst still providing the power we required.
Additionally, the tension of the string between the ear and servo was changed so that the hinge could be fully extended and closed. Furthermore, with the different emotions we gave different angles of rotation to display different emotions more clearly.
Shortcomings
Our aim with this project was to make the hat wearable as well as expressive for it to be a functional theatre prop. While we were able to do this, the arduino board including all the wires remain exposed and so take away from the fully automated, ‘Wizard of Oz’ magic which can be impressive. The user has to reach to the back of the hat in order to initiate a change in the ear movement, this action may hinder their performance and be a distraction to the audience. Ideally we would want wires that could run down the actor’s sleeve to buttons where the ears can be quietly controlled in their hand. Since the buttons are also out of sight from the user, even though the buttons are labelled, they would have to memorise the positioning of each emotion, and since these emotions have no natural cognitive mapping this would require memory work and could be a point of failure.
The ears of the bunny are also not completely straight and angle inwards. This was to do with the positioning of the ear against the hat. When the ‘confused’ function would be activated the ears would sometimes clash and prevent movement.
Also over time the servos began to get weaker and struggled to pull the mechanism efficient. A potential solution to this would be using more robust, powerful servos. This could be implemented into a next iteration where the hat would be bigger and we would have more space to conceal a bigger servo.
You must be logged in to post a comment.