Hello all - for about 5 years I have been playing with controlling a commercial toy monkey head with an Arduino processor.
Here is a link to the original factory controlled product project intro
and a link to the 2nd part controlled by an Arduino
The project didn’t change much until I purchased a MOVI speech recognizer / speech synthesizer and decided to update the ol’ monkey head.
The system design I developed has 4 Arduino processors:
#1 (IOT Processor) is an Arduino WiFi Rev 2 providing IOT access to the monkey head via a WiFi connection to IFTTT. IFTTT connects Google Assistant to the Adafruit MQTT service. The Arduino WiFi can then fetch commands from Google Assistant from MQTT. This processor is serial interface connected to
#2 (Speech Processor) which is an Arduino Mega 2560 which serves as the MOVI’s processor host. It creates commands via voice rec from an external microphone for local access and commands from the Internet via Google Assistant. The command sets are the same for both Google Assistant and MOVI voice rec. This processor is serial interface connected to
#3 (Control Processor) which is an Arduino Mega 2560 which serves as the Monkey Head’s ‘brain’. It receives all spoken commands from #2 but also develops commands for the head based on a local real time clock and temperature sensor(date, temperature and time with hourly spoken talking clock), an ambient light sensor (who turned out the lights?), PIR motion detectors to track any humans in the area and a multifunction kill switch to provide back up to spoken commands and to acquire control in case of runaway conditions (its cool though - the teeth are plastic). Music and sound effects are sourced here from a WAVE Shield which leaves the MOVI free for its primary tasks. This processor is serial interface connected to
#4 (Motor Processor) which is an Arduino Mega 2560 which serves as the Monkey Head’s motor nervous system.
A note about motors here. The original monkey head utilized powerful DC Servo Motors which could make sudden and violent movements of the head at the cost of a lot of power. These DC motors used plastic gear assemblies to couple to the head. Over the last 5 years the gears wore out and I replaced all DC Servo motors with PWM servos used in the hobby RC field. These are not as powerful, fast or power hungry but they are cheap and universally obtainable.
This processor receives commands from the Control Processor to move the head left, right, up, down, control eyebrows, eyeballs, eye lids and the mouth. The mouth servo uses a homemade opto-coupler consisting of a LED connected to the 20 watt amp that provides the head’s voice audio power. This LED is optically coupled to a photoresistor which the motor processor translates into relative mouth positions based on the monkey’s voice volume. I’ll follow up with a demo video at some point when I can clean up around here.
cheers - Mike