The goal of this build is to make an animatronic Winnie-the-Pooh powered by a Raspberry Pi. This is my first experiment into any form of electronics and robotics, so it is likely to be an interesting learning curve.
PiBear (Pooh Bear) should respond to button presses to his hands, feet and tummy by moving his head, opening his mouth and playing an appropriate Winnie-the-Pooh sound clip. The idea was inspired by my 3 year old’s love of all things Winnie-the-Pooh.
The Winnie-the-Pooh in question is identical to my son’s favorite stuffed toy. So you can imagine he would be more than a little concerned if he were to find the partially built PiBear with all his stuffing removed.
The build was originally being based around a Raspberry Pi B+. It is now being powered by a Pi Zero. Soldering the 40 pin GPIO connector was the first bit of work that had to be completed.
When deciding to switch to to the cheaper and smaller Pi Zero (so I could use the B+ for something else) I failed to realise there was no analog audio output. Thankfully, with the help of this article on how to route audio output to the GPIO pins I was able to get the Pi Zero to play WAV files, albeit very quietly. This involved building a small circuit (first on the breadboard) and then finally on a small board, all soldered together. Not the best soldering, though not too bad for a beginner.
A pan-tilt bracket, powered by two servos is being used to move PiBear’s head, up/down and sideways. The long piece of wood at the top of the pan-tilt bracket being placed in PiBear’s nose in order to move the soft toy’s exterior.
The shorter piece of wood attached to the third servo, at the head of the pan-tilt bracket is used to control the mouth movement. The end of this piece of wood is placed in the lower jaw of PiBear in order to move the mouth up and down, giving the impression of talking when sound is playing via the speaker that will, eventually, be placed in his tummy.
All the buttons are currently assembled on a breadboard whilst I test out the Python code and add functionality to the build. The servos are all controlled by Simon Monk’s ServoSix controller board, which has made it possible for me to control the five servos that this build requires with remarkable ease.
So the issues to resolve next are:
- Get audio output and the ServoSix to play nicely together. This should be possible by changing the ServoSix to use PCM rather than PWM… testing will prove whether this is indeed the case.
- Improve the torque of the servo motors. They currently struggle to move the slightly well stuffed head of PiBear. Reducing the amount of stuffing may help, in addition new metal micro servos (TowerPro MG90S) have been ordered as direct replacements for the current plastic (TowerPro SG90) ones.
- Improve the volume of the sound output.
- Add buttons to PiBear’s feet & add servos to move the arms.