Arduino Animatronic Head
Maybe you've heard the story of Philip K Dick animatronic head made by David Hanson for $50.000 If you don't you can follow his link
This simple, and sort of kitsch animatronic head was made with parts found on the trash and was intended as a recursive tribute (to a deceased talented local writer with admiration for Phil K. Dick and interest in the animatronic head incident)
Supplies
- Arduino Nano
- 3 SG90 Servos
- DfPlayer mini
- microSD card
- 4ohm 3 watts speaker
Mannequin head and doll eyes
Head Setup
Using a Dremmel or a saw cut the head in 2. Then cut holes in eyes and mouth.
Circuits and Audio
- Connect SG90 servos to 5V external power jack and D9, D8, D7
- Connect DfPlayer mini to 5V external power, to Speaker and D10/D11. Connect also Busy pin to D6. This pin will be used to determine when mp3 audio reproduction ends
Regarding audios. Record your animatronic voices using 001.mp3 002.mp3, etc and place all those files into microSD, inside a /01 folder placed in root.
3d Printed Skeleton and Mouth
- Download 3d parts from https://www.thingiverse.com/thing:4833147
- Print them with PLA
- Put eyes servo and mouth servo into the skeleton
- Paint teeth white
- Glue upper teeth row into the head
- Glue down teeth row into a servo arm
- Place the skeleton in the head. You can use screws or glue
Code Upload
- Download the animatronic .ino code from here
- Connect Arduino Nano to the computer using USB cable
- Using Arduino IDE upload the .ino code to Arduino Nano
Operation and Final Notes
- Remember to put your audios files into the microSD card using 01/001.mp3 002.mp3, etc
- Remember also to edit .ino code, int howManyAudios=81+1; (in this case 81, the +1 is used since the random function is higher exclusive)
The head will move the eyes and play first audio as the setup. Then it will play audios in random order.
When the head is speaking, the mouth will be moved using random openings.
Where to go from here
You can add a PIR sensor or distance sensor so audios will only be played when a presence is detected.
You can also add a good servo to move the entire head to the sides.