It’s been a while since I retired. Now I’ve gotten back into making/coding/creating. I decided to start where I left off with a small fun project. I wanted to use the radio communications feature of the Micro:bit to control a puppet. Or rather, have a puppet mimic my movements. Watch the video above.
Here’s the setup: There is a puppet which can move its arms and legs. I have four servo motors, one for each limb, control the puppet’s movements. I have a Micro:bit taped to each one of my limbs, measuring my movements which then communicate the data to the servo motors on the master Micro:bit. I use the Hummingbird:bit because it has the circuitry to control four servo motors. The Micro:bit can only natively control three servo motors. There is other hardware available to control more than three servo available for the Micro:bit. Do a Google.
- 5 Micro:bits (4 with battery packs)
- 4 Micro Servo motors
- 1 Hummingbird:bit w/ power supply
- 1 or more servo motor extension cable
- 1 puppet (check out Amazon) I had a Monk Makes Puppet kit laying around, so I used it.
Wiring and Build:
The wiring couldn’t be easier. Plug in the four servo motors to the connectors on the Hummingbird:bit. You can use a AC power supply or a battery pack to power both the Micro:bit and servo motors from the Hummingbird:bit.
The wood pieces were all hot glued together. The servo motors were also hot glued as well. The trickiest part is to make the “arms” for the servo motors to attach the string connecting the motors to the puppet’s limbs.
The Limb code is pretty straight forward. I have the code send and display the serial number of the Micro:bit, so the Puppet Master code knows which Micro:bit sent the data. I’m sending the the acceleration X data to track the movement. This method allows the code to be the same for each limb.
The “On Start” blocks for Puppet Master has “hard coded” serial numbers of the four “limb” Micro:bits. It also sets the four servo motors to the 0 or home position, which has each limb down.
The “Forever” blocks just map the possible high/low values that could be sent by the “limbs” and maps the values into the 0 to 180 range for the servo motors.
When I was teaching, I wanted to do a project with a fourth grade class. They students would make puppets in art class with the art teacher. The students would write a story for the puppets to act out. And the students would be wired to the Micro:bits to act out the play! WOULD HAVE BEEN FUN.
Let me know if you have any questions or comments.