Introduction: Toothbrush Machine
The Toothbrush Machine®: because knowing how to build something doesn't always mean you should.
Backstory
The other week I built a toothbrush machine as a part of a pilot for a kids show about electronics. And because I love shitty robots and wanted an excuse to make one for myself. I posted it on Reddit and some people requested a tutorial on it so here we go.
Step 1: Get the Parts
- A robot arm from MeArm
- A skateboard helmet. I used this one but there are probably cheaper alternatives out there that work just as well
- An Arduino UNO
- A servo shield from SainSmart
- A toothbrush of your fancy
I had all the stuff laying around but I think the parts would come to about $140 all together.
Step 2: Assemble the Robot Arm
First thing I did was to assemble the robot arm. MeArm has a pretty intricate but good tutorial on how to do this.
I skipped step 2 and 3 that takes you through assembling the base and 18, 19, 20 that makes the gripping claw at the end of the robot arm.
Step 3: Attach Toothbrush
Instead of having a claw at the end of the robot arm, we'll attach the toothbrush. I went trough some iterations to find the best way to do this (without getting any extra parts, because I'm lazy).
To attach the toothbrush to the robot arm I used the parts in the first image, which are all left-overs from the robot arm kit.
Take the biggest part and drill two holes in the toothbrush head that co-align with the two topmost holes. Use the pointy screws to fasten it.
Use two screw to attach the collar with the spacers between to the part attached to the toothbrush. Make sure that the longer spacer is facing away from the toothbrush. Then attach all of it to the robot arm with the three remaining screws.
Step 4: Prepare the Helmet
Make a hole in the front of the helmet the size of the servo motor. There are probably more elegant ways to do this but I used a drilling machine an drilled small holes along the outline of the servo motor and then used a knife to cut it out.
Then take the plate from the robot arm and drill holes in the helmet that co-align with the holes of the plate.
Mount the servo with the motor mount facing down and put the acrylic square on top of it. Use the two long screws and the two nuts in the two upper holes. I had to cut out some of the insulation of the helmet to be able to screw them in. Then take the two shorter screws and put them in the two lower holes. It's important that the head of these screws are on the inside of the helmet as they otherwise will be in the way for the robot arm to move.
Step 5: Mount Robot Arm on Helmet
Place the robot arm so that the servo horn on the bottom of the robot arm mounts on the servo motor attached to the helmet. Make sure that the robot arm is placed so that you can move the servo motor as much to the right as you can to the left.
Fasten it with one of the small black screws from the MeArm kit.
Step 6: Attach the Arduino
Now we need to attach the Arduino to the helmet. If you haven't already, mount the servo shield to the Arduino UNO.
I just put a broken hair tie between the Arduino and the servo shield and then pulled it through two of the holes of the helmet. Make sure that the USB-port of the Arduino is facing towards the back of the helmet.
Step 7: Connect the Servo Motors
Pull the cable for the bottom servo motor through the front hole that the Arduino is tied to and connect it to pin 7 of the servo shield. Then connect the lower arm servo to pin 6 and the upper arm to pin 8.
Step 8: Program It!
Here's the code I wrote for the helmet. Might need some calibration to work with your face. Because we're all unique, yada yada yada.
// Written by Simone Giertz #include <Servo.h> Servo servo[3]; // base, upper arm, lower arm static const int servoPin[3] = {7,8,6}; void setup() { Serial.begin(9600); for(int i=0; i<3; i++){ servo[i].attach(servoPin[i]); } // Fold the robot arm at the top of the helmet servo[0].write(90); // base servo[1].write(30); // upper arm servo[2].write(150); // lower arm } void loop() { // Wait five seconds before we start the toothbrushing delay(5000); // Put the arm in brushing position servo[1].write(180); servo[0].write(90); servo[2].write(70); delay(1000); // brush back and forth for(int i = 0; i<10; i++){ servo[2].write(60); delay(200); servo[2].write(120); delay(200); } // Fold the robot arm back up servo[0].write(90); servo[1].write(30); servo[2].write(150); }
22 Comments
7 years ago
hahaha great!
7 years ago
i tried 40000000000 times cannot do it !!!!!!!!!!!!!!
7 years ago
This reminds me of an invention from Wallace and Grommet. :)
8 years ago on Introduction
very very perfect job.
8 years ago on Introduction
8 years ago on Introduction
This is hilarious! Awesome idea!
8 years ago
Or you could just use your hand… just saying
8 years ago on Introduction
BTW I Googled "toothbrush helmet" to see if it is possible to buy one of these since I was curious to see how much it costs, and there were tons of articles about you
8 years ago on Step 8
MUST. HAVE. VIDEO. OF FINISHED. PRODUCT. AT. WORK!
Reply 8 years ago on Introduction
Aaaaah don't understand why the GIF doesn't work for some. Added a video in the description so you can have 8 seconds of toothbrushing bliss.
Reply 8 years ago on Introduction
Your dentist hates you now, It's fun for you to brush your teeth...
8 years ago on Introduction
Hahaha! Too funny!
8 years ago on Introduction
I just love that GIF. You and the helmet are one, in perfect synch. You should go on tour with that thing. Jimmy Fallon would love it. :-)
8 years ago on Introduction
Simple, effective, and wonderfully "shitty" This blows my machine out of the water ;)
8 years ago on Introduction
Hilarious! What a great way to excite kids about electronics.
8 years ago
video?
Reply 8 years ago on Introduction
Was the gif in the beginning not working? :( Here's a link: imgur.com/f9jiKwk
8 years ago
Amazing, you should put mirrors on the helmet to.
8 years ago
Awesome!! What A great Idea!
8 years ago on Introduction
Kids should wear this all day, programmed to brush 3 times a day?