A little plastic skull reads a text message (a.k.a. SMS) received via GSM. The robotic voice, little LEDs in the eyes and a moving jaw make this even more creepy.
This Speaking Skull was first presented at Mobile Bar Camp 2013 in Dresden as part of our presentation about open source hardware.
In preparation of Halloween we figured, it meight be a good idea to present this little project here, too. Enjoy.
How to do this?
Let’s start with jaw movement. The plastic skull has a small servo to move the jaw. An Arduino controls this servo. Just make sure the jaw moves freely. So far nothing special, just a bit mechanic and another use of the Servo library.
The Arduino is supposed to move the jaw following the spoken text message. Given some audio signal this could be coupled into a voltage divider where the resulting voltage is measured by an analog input of the Arduino.
Now, how to get the audio signal? There is a very cool text to speech module one can buy. Connect this to the Arduino and all the controlling is reduced sending a String to a serial interface. In order to keep this serial interface separated from the one the USB connection is using, we opted for an Arduino Leonardo.
And how does the Leonardo know the String to send? Well, finally the GSM shield gets involved. Just make sure to bend the pin 2 away when plugging the GSM shield in the Leonardo.
Don’t forget the final touches. The LEDs in the eyes are bidirectional LEDs which glow red or green depending on the direchtion of the current. Connect an resistor in series and wire that to two Arduino pins. As long as both pins are equal (both low or both high), the LED is off. If one pin is low while the other is high, the LED glows red. When levels are reversed, the LED glows green.
We decided to have the „eyes“ glow red when speaking.
Of course you want the text to be heared, so add some active speakers to the setup. Preferably some USB-powered speakers. USB-powered means, you can connect them to the 5V of the Arduino.
Finally, you don’t want to actually send a text message each time you want to demonstrate the speaking skull. So add a simple switch to the setup. Each time the switch is pressed an predefined message is processed. A prototype shield holds EMIC2, voltage divider, 5V power to speakers and the switch.
List of parts:
- 1x Arduino Leonardo
- 1x Arduino GSM-Shield
- 1x Prototype Shield
- 1x EMIC2 – text to speech module
- 1x plastic skull
- 1x miniature servo
- 1x switch (print)
- 2x resistor 4,7k (voltage divider)
- 1x capacitor 100nF (coupling audio to voltage divider)
- 1x USB powered speakers
- 1x wooden board (200mm x 300 mm)
- 2x distance bolt and screws (to hold skull)
- 4x screw and distance roll (to hold Arduino Leonardo)
- 2x double sided tape (to hold speakers)
The source code is hosted at CodeBender, which we are proud to support.