An Internet Controlled 2020 Smusher
About the project
Let’s face it: 2020 was a terrible year and we’d love nothing more than to see it disappear.
Platforms: Raspberry Pi
Estimated time: 3 days
Items used in this project
|Popsicle stick||x 2|
|Blue, green, pink, black and white felt||x 1|
|Metal servo bracket||x 1|
|Raspberry Pi Camera Module||x 1|
|mg995 Servo||x 1|
|mg90s Servo||x 2|
|Google AIY Voice Kit (V1)||x 1|
|Raspberry Pi 3 Model B||x 1|
Hand tools and fabrication machines
|Strong glue||x 1|
|Sewing pins||x 1|
|Needle & thread||x 1|
|Fabric hole puncher||x 1|
|3D Printer (generic)||x 1|
|Prusa Slicer||x 1|
|Google Cloud Platform||x 1|
In case you can’t wait to say goodbye, here’s a link to the Internet Controlled 2020 Smusher on Remo.TV.Concept
As 2020 has been a horrible year, the first thing that came to mind was “kill it with fire!”. Although we love playing with fire and have great fire insurance, we both realised that using actual fire would not be the best idea. 2020 was bad enough without us mucking about with flammable stuff, so we opted for the next best thing: 3D printed fire!
The idea is to make the numbers “2020” out of playdough and satisfyingly smush them using the 3D printed fire. The object doing the smashing should be something that’s also had more than enough of the past year, so what about… planet earth?
By the way, we’re not the only ones saying goodbye to 2020! This project is part of a collaboration with Ian Charnas,Becky Stern,TechnoChic,HannahMakes and MakeItAndFakeIt, who are each telling 2020 to sod off in their own ways!
For the compilation video of the collaboration our smushing planet will be voice controlled, but to share the fun we’re making it internet controlled afterwards. We’ll describe how to do both in the steps below!Voice Controlled With the Google AIY Kit
To make our creation voice controlled, we’ll be using Google’s AIY Voice Kit (V1).
If you’re new to this kit, you can check out the setup and assembly right here.
We followed the steps outlined in the AIY Kit’s Maker’s Guide to create a custom voice user interface.
We’ll be using three servos to bring our project to life: two microservos to position the eyebrows and one regular servo with the fire on it to smush 2020.
If you’re new to using servos with a Raspberry Pi, there’s a great getting started guide right here.
To wire up the servos to the servo pins on the AIY Voice Hat, we followed this guide right here.
Hannah of the YouTube channel HannahMakes will send us a text message when it’s time to activate our contraption. By making our planet earth voice controlled, we can read out the text message to start the destruction of 2020.
As an extra tidbit of fun, we asked Hannah to record audio of her saying ““Ah, finally, let’s kill it with fire!”, “Could you say that again?”, “I didn’t quite catch that.” and “Bye bye 2020” to play through the speaker of the AIY Kit during the smushing, making it seem as though earth is speaking.
If you don’t feel like recording your own audio, you could also use the AIY’s text-to-speech functionality, as described in the “repeat after me” example.
The full code for this project is attached, and it does the following:
- The microphone continuously listens for voice input and transforms it from speech to text.
- If the phrase “bye bye twenty twenty” is detected, the eyebrows are put in the sceptic position and the “ah, finally” audio is played. After that, the eyebrows are put in the angry position and the “let’s kill it with fire” audio is played. Then the smushing servo sequence is activated, making the arm with the fire on it move up and down several times. Lastly, the eyebrows are put in the sad position and the “bye bye 2020” audio is played.
- If it detects speech that is not “bye bye twenty twenty”, it will put the eyebrow servos in the sad position and either play the “Could you say that again?” or the “I didn’t quite catch that” audio.
With all the more complicated hardware bits done, it’s time to move on to making a cute version of planet earth out of felt.
For the main part of the planet, we traced the circumference of a large bowl and cut it out of blue felt. To make the whole thing a bit sturdier, we cut another piece of felt to the same size and hand stitched them together.
We traced small round bottles to create the circles for the eyes, pupils and rosy cheeks. The mouth and eyebrows were freestyled out of black felt. For the land parts of earth, we cut eight similarly sized rectangles out of green felt and rounded off the edges.
With all the parts cut out, we placed everything on the main circle of the planet and pinned the parts down where they looked about right. One by one, we hand stitched all the pieces to the main planet using a double black thread, except for the eyebrows. We kept the eyebrows separate as we will be attaching them to our microservos later on.3D Printing
To create the 3D printed fire, we took the Google fire emoji and turned it into a 3D printable model. First, we traced an image of the emoji to create an SVG file with just the outlines of the fire. We used Adobe Illustrator to do this, but you could also use GIMP or other image manipulation software. Then, we followed these steps to convert the SVG file into a 3D model using Blender. We chose to do this in Blender to challenge ourselves and learn something new. Another great tool to do this with would be Tinkercad.
Once we were happy with our model, we 3D printed it using yellow and orange PLA. We’ve added the STL file of the fire to this step.
Small note, this model is absolutely tiny, best to scale it up with 50000%. Let's call it a feature...
To make our creation stand upright, we quickly whipped up an L shape in Tinkercad and 3D printed it in a pretty blue PETG. The STL file of the L shape is also attached.
Last but not least, we 3D printed a set of modified servo hubs to attach the eyebrows to, as the original hubs that came with the servos didn’t reach all the way through the felt and cardboard. The model file of the modified hub can also be found here.Assembly
Next up is assembling all the bits and pieces we created in the previous steps.
To complete the earth, we first had to go through the most horrifying task: making two holes in the felt above the eyes for the attachment of the eyebrows using a fabric hole puncher. Once this was complete, we cut a circle of the same size as the planet out of cardboard and made two eyebrow holes in the same spots. We then glued the felt planet to the cardboard to give it more stability when standing up and holding the weight of the microservos. Once the glue was dry, we glued the planet to the 3D printed L shape.
It’s time for some more gluing, this time to give earth a stunning set of brows! First, we positioned the two microservos and glued them to the back of the cardboard with the metal gears poking through the eyebrow holes. To make sure the positioning was spot on and the holes remained aligned, we carefully pressed on the 3D printed servo hubs during the drying of the glue. Once the servos were all set, we took off the hubs and stuck on the felt eyebrows using, you’ve guessed it, some more glue. With the glue dried, we set the position of the servos to neutral and popped on the eyebrows. Excellent!
Last but not least, it’s time to assemble the most vital part: the fire! We attached the servo to the metal servo bracket with two of the provided nuts and bolts. Then it was time for some guesstimation work: figuring out where to place the servo on the L shape and figuring out the length of the arm holding the 3D printed fire, so that the fire is hidden when it’s held up but you can see it when it comes down to smush the playdough. Our final configuration uses two popsicle sticks glued together with a hubcap at one end and the fire on the other. We placed the servo on the side of the L Shape where the fire peeks out, in our case on the right side.Internet Controlled With Remo.TV
Our little 2020 smusher turned out to be way more awesome than we ever imagined, so why should we keep the fun just ourselves?
We added a Raspberry Pi camera to our setup by following the Getting started with the Camera Module guide by Raspberry Pi.
Then we followed these steps outlined on Github to connect our smusher to Remo.TV, an open telerobotics platform designed for controlling and sharing control of robots online in real time. We added custom code to control the eyebrows and the fire, as described here on the Remo.TV wiki page. Our custom Remo.TV code is attached, and if you want to smush 2020 yourself, you can find it here on our server.Happy Smushing!
There we go, our 2020 smusher is finally complete!
Here’s to a smashing 2021!