Meet my new webcam privacy friend, a motorized and 3D printed eyeball that sits atop my screen.
I’ve used stickers and post-its to cover my webcam for years, for peace of mind that my webcam is only accessible when I want. But it’s hard to remember to replace the sticker after each meeting, and I’ve been looking for an excuse to try building a simple robot companion.
Here’s how I made it.
For this project, you will need:
- Micro servo motor
- Servo motor extension wire (or make your own with ribbon cable and header pins)
- Trinket M0 microcontroller or your other favorite Arduino-compatible
- Momentary switch
- DS3231 Realtime clock module (RTC) (don’t forget to snip off the resistor in the corner)
- 3D printer (I used my Creality CR10s-pro)
- PLA filament in white, black, and two additional colors of your choice
- Solderless breadboard
- Prototyping wires
- USB cable
And if you optionally choose to solder your circuit:
Check out all my favorite electronics tools and supplies.
To keep up with what I’m working on, follow me on YouTube, Instagram, Twitter, Pinterest, and subscribe to my newsletter. As an Amazon Associate I earn from qualifying purchases you make using my affiliate links.
Circuit Diagram and Code
The circuit centers around a Trinket M0 microcontroller hooked up to a micro servo motor through a long extension cable. A momentary switch triggers the motor to move. I prototyped with just the pushbutton before adding a realtime clock module and a potentiometer to build the timeout feature.
The potentiometer brings in an analog reading which I’ve programmed to translate to a number of minutes, after which the eyelid is programmed to close and cover the webcam. I can still manually close it with the pushbutton.
The connections are as follows:
- Servo data to Trinket 3
- Servo power to USB
- Servo ground to GND
- Potentiometer ground to GND
- Potentiometer wiper to Trinket 4 (aka A4)
- Potentiometer power to USB
- Momentary switch between GND and Trinket 1
- DS3231 RTC GND to GND
- DS3231 RTC VCC to USB
- DS3231 RTC SDA to Trinket 0 (aka SDA)
- DS3231 RTC SCL to Trinket 2 (aka SCL)
After I had managed to get everything working on a solderless breadboard, I created a more permanent soldered version using pieces of proto board.
I stashed everything in this metal enclosure I’ve had kicking around. I put the pot and button on one board to fit on the interface side, and used wire to bridge over to another piece of board with the Trinket and realtime clock.
Design and 3D Print
I don’t have much experience creating robots with personalities, so I sought advice and encouragement from my friend Odd_Jay, an insanely imaginative robot maker in LA.
I designed the parts for this project using Tinkercad. You can remix the model by copying the design to your own Tinkercad account.https://www.tinkercad.com/embed/31xDWwn9Slm?editbtn=1
Disclosure: at the time of this writing, I’m an employee of Autodesk, which makes Tinkercad.
I’ve also attached the STL files to this step.
To 3D print the pieces, I sliced the models using Cura and print them out in various colors of PLA filament on my Creality CR10s-pro 3D printer.
- Eyeball: white PLA at 20% infill, with support
- Pupil: black PLA, it’s so small the infill setting doesn’t matter, no support
- Eyelid and swing arm: PLA in your color choice (I used purple) at 20% infill with no support
- Iris: PLA in your color choice (I used gold) at 20% infill with no support
I used CA glue to attach the iris and pupil to the eyeball, and the lever arm to the eyelid.
While I wish all webcams came with an automatic physical cover, I loved the excuse to customize my setup for my own needs.
In the future, I could see adding some ability to control it from the computer as well, like opening when you enable your camera in Zoom. Let me know how you would make it your own in the comments.