Physical Computing — Project 2

Making It!: “A Celebratory Graduation Cap”

Elizabeth Estefan
7 min readApr 20, 2022

The Assignment

For this assignment, we were tasked with creating a project with one advanced electronic component and either a 3D printed or laser cut piece. We were given the option to choose from one of three topics: “Let’s Start a Band” with a sound interface, “Carnival Games” as some sort of toy, game or gag, or “Helpful/Helpless Robots” accomplishing (or at least attempting) a daily task.

In keeping with my previous project of a blushing lovestruck robot, I wanted to continue the robot theme. And I knew I wanted something humorous and warmhearted as well.

The Making Of

Different silly ideas came to mind like a robot that kicked itself or anyone near it. And other ideas were meant as pick-me-ups. With all the stressors in this last semester of grad school, I thought how about a mood-elevating robot, one’s own personal cheerleader.

Mind mapping ideas for my robot.

One of my favorite ideas was a huggable robot where one could hug the robot using separate miniature fabric finger puppet hands (or one's own hands) which would include some sort of proximity sensors that then set off the robot with sound or other response(s) when hugged.

A few sketches of useful/useless robots. (r-l) hugging robot, kick you in the pants robot and spread the dirt robot.
Preliminary sketch of the confetti robot.

I pitched the sketched ideas to my professor, and the confetti tossing robot was the winner, but with a twist. With graduation around the corner (now only three weeks away), he proposed I make a graduation cap that tosses the confetti in your face. Genious! A celebratory commencement cap!

It was all starting to feel very “Inspector Gadget!” How do you spell FUN?!

Google search result for “Inspector Gadget Hat.”

Mind Map Take 2

I looked a little deeper into the project with the help of mapping to see more clearly the scope of the project including potential materials and tools to be used for construction and the audience it would be serving. It also allowed me to think of various incarnations of the robot.

Ming Mapping for a Confetti Tossing Robot

The graduation hat continued to be the winner.

Construction

Once the concept was in place, it was time to think about construction. How might the arm sit atop the graduation cap? Would the arm move position and swing down to toss the confetti? Would the confetti fly into one’s face or simply drop on the floor?

Rough sketches for the construction by Prof. Zevensuy Rodriguez during our development discussions.

The drawing on the left, shows the robot arm holding a confetti-filled container with the arm moved by a servo motor down towards what would be the wearer’s face. The confetti might drop to the ground in this version. But the weight of the moving arm threatened instability with the excess weight and force. The hat would likely topple over without a rig to hold it in place and balance the weight.

The drawing on the right, which resulted after further discussion, uses a fixed arm with a servo motor atop to move a container (in this case bucket-shaped) filled with confetti. The idea includes a string attached to the servo motor horn and the bucket at the other end which then tilts the bucket up and down between 0–180 degrees to allow the confetti to drop out.

Ideally, the confetti would fly into the wearer’s face, but that might be something for the next interaction. For now, getting these preliminary actions working was primary.

Components, Making and Materials

For the requirements, as I previously mentioned, my advanced electronic component was a servo motor used for rotation, and the making was laser-cut wood used for the arm.

I used Adobe Illustrator to design the wood arm which included two sides and slats for stability. The slats also served as a stand for the servo.

For the construction, along with a spare graduation cap, I used approximately 1/8" wood, a toner cartridge cap for the confetti bucket held in place with tiny screws and nuts, string, packing tape as a temporary hold and a lot of industrial-strength hot glue.

Images of the preliminary prototype.

Issues with construction

There were a few issues with construction.

The first was the permanently affixed servo motor. I was excited to get this built, and glued on the servo motor before testing it. That was a big mistake. I know better, but still, there I went. When I finally had the code running, the servo just would not move. After testing several servos both 180s and 360s along with a visit to a local hobby shop Crown Hobbies, long story short, I had glued on a 360 motor but needed a 180. And it appears I just didn’t have enough power to run it and some other 180s. I lucked out with a hobby plane servo that ran with the code. If you look closely at the pics, you can see two servos. The hot glue was so strong, that it would not let go of the first servo.

The servo horn was too short which meant the string attached to the bucket was too short. And that meant a limited range of motion which did not allow the bucket to sit upright at the start or to drop far enough for the confetti to fall out.

The construction was front-heavy. I made the arm several inches longer with this in mind in hopes to counter this, but the arm across the top was still not long enough. The cap stays in place when you put it on, but it does tilt slightly forward. On the model in the pics (one of my yoga mats), it tilts even further forward. I used a small blue ball to add a little weight on the back for the photo shoot.

The Code

The robot was brought to life with the use of an Adafruit microcontroller and python code. I modified code that I found in a video tutorial on youtube that helped me connect the microcontroller buttons A and B to control the servo rotation to make the confetti button move up and down. I was elated. There is not a lot online about controlling servos with Adafriut CircuitPhython and even less (if anything at all) about including a breadboard (I didn’t find anything).

View of the code in the Mu Editor.

Issues with Code

The main issue was finding the code that would allow me to control the servo as needed with the use of buttons. Initially, I tested code without the need for buttons. When the servo did not move as I mentioned earlier, I thought it might be the code. But printing to the serial in the Mu Editor showed no error, just smooth-running code.

Let There Be Confetti?

Um, well, sort of, but not exactly.

Preliminary Prototype.

Well, it was not quite the confetti tossing experience I had hoped to achieve, but it was a start.

Next Iteration

This initial prototype didn’t quite reach its potential. But in the next iteration, I plan to make modifications that will hopefully correct some of the issues and possibly improve the experience that this lacking now. Improvements I hope to include, or at least some if not all, are listed below.

  • Extend the servo horn (possibly a 3D printed piece to glue onto the existing horn) to allow for a longer string. A longer string in theory would allow the bucket more range of movement to allow a greater upright starting position and the dropped down-facing position. This would mean a real confetti drop.
  • Recut the arms sized longer to sit across the full length of the graduation cap in hopes of better balancing the cap and reducing the forward tilt. Additionally, cuts for screws and other adjustments can be included this time.
  • Add some weight to the back of the cap.
  • Turn the servo motor to face sideways. This might allow the horn to move better with the bucket.
  • Possibly build or 3D print an encasing for the servo, so the servo can be replaced if it stops functioning. Beware of industrial hot glue! It’s great but…

Here are a couple of other potential additions if time allows.

  • Add a motorized mini fan to the tail of the bucket to blow the confetti in the wearer’s face.
  • Affix streamers inside the bucket to allow for repeated fun without needing to reload confetti or sweep up a mess.

Stay tuned for the next iteration in a couple of weeks…

--

--