I am a newbie and confused on animatronics with Arduino- guidance appreciated

Hi everyone. I'm new to robotics and programming with the arduino. This weekend I was planning to begin build of an animatronic robot puppet head. Because I am new to Arduino I am seeking advice from experienced users as to best direction for this project. Here are the robot's desired actions:

1) head turn and tilt 2) neck turn 3) eyebrows rotate 4) jaw open/close 5) distance sensor to activate when someone is close 6) voice recording from audio file (not speech read) 7) lip sync to .wav file 8) a few gears have 360 rotation 9) blinking lights

So you can see pretty ambitious project but here is my dilemma. I'm new to arduino and finding it's very limited when programming this many levels of interaction simultaneously. It seems that Arduino programming only wants to do 1 action at a time, or am I approaching it wrong? (actually my wife is doing the programming and that is her complaint).

I found a Raspberry Pi kit that does basically everything I'm looking to do: http://www.hummingbirdkit.com/learning/tutorials/example-robots#dragon

But before I invest in a new platform I wonder if any of you experienced Arduino users can give me more insight to using Arduino for this project or if Raspberry is the best way to go? I've looked at many online projects but none are thorough in explaining the entire build step by step.

Any help is greatly appreciated!

Below has some material worth looking at for ideas and info. Are you planning to use servos to move parts?


@Mingra, please do not cross-post. Other thread deleted. Replies go here.

It seems that Arduino programming only wants to do 1 action at a time, or am I approaching it wrong?

“Finite state machine” and “blink without delay” are the search terms of interest. “Blink without delay” is a very simple example of a “finite state machine”.

The Arduino is a fairly limited environment, due to the amount of memory involved. However, it can probably do most of what you want, though the audio parts may be tricky.

It also does not provide infrastructure support for doing multiple things, such as threads on processors with higher level OS'es. You can do this yourself, as it has the building blocks. This example, written by Nick Gammon shows the basic method of doing this: http://www.gammon.com.au/blink

Now, a device like a raspberry pi has problems in dealing with real time things that the Arduino can do (motors, servo control, etc.). So you might want to think about splitting the robot into a brain microprocessor (i.e. the pi), and a bunch of smaller microprocessors, that just do one thing. I.e. you might want one that controls the servos for the head turn and tilt. This makes it simple to debug, in that you don't have to worry about the interactions. However, you probably don't want to get separate development boards for each sub-processor. Instead you would get one development board (such as an Uno), and then setup that up a programmer for the remote boards. You can get the same chip in the Uno for $3-5, and add a few extra parts and make your processor for each part. http://www.dipmicro.com/store/CPU-ARD328P

If your needs are simpler than the Uno's, there at ATtiny85 boards that are smaller and cheaper. I just bought some raw ATtiny85 boards at $1.40 each (10 chips for $14) to run some blinky lights. I use my Arduino Uno to program them. Note, for your needs, they don't support the standard servo library due to the internal hardware on the ATtiny85, but there is a tinyServo library that does most things. If you don't want to deal with programming a raw board, you might want to look at Digispark, available directly from digistump, or at Microcenters: http://digistump.com/category/1. The Adafruit trinket and gemma also use ATtiny85, though I find it a touch easier to program the digispark.

However, I suggest trying to start slow, rather than trying to do everything at once.

ZoomCat- Using servos for the jaw, head and eyebrows. Decided to use 2 motors to run a few gears (they are for cosmetic purposes, not functionality). We bought an audio shield with SD card input today which will hopefully allow using our recorded voice. Looking into a few options now for the lip syncing.

Will look into the chips. Thanks for the feedback and keep them coming please!

I would state that you would want to try to use something like an Arduino Uno and not an ATtiny85 chip when "getting it going".