Finding the right micro control
edited October 2016 in Animatronics
Being new to the world of robotics and programming I wanted to reach out to the community to get some idea on what micro controller(s) would work best to execute my current project. In essence the project is an animatronic/robotic creature that will have 10 to 14 servos in the head controlling eyes/lids/eyebrows/etc. 5 to 7 servos controlling the breathing movements, and around 10 others for various parts like fingers and legs. With a possible total of 31 servo I find myself a bit lost as to which micro controller(s) to get. I plan to have the eyes servos "connected" to a camera that will run a Python program for facial recognition that will feed the servos via a micro controller and move the eyes to said position in space. I thought the Arduino Yun might be good, but I don't think it will have enough pins to run 31 servos. Instead I thought I could be running the three main parts on separate controllers; Eyes and face, breathing, and body movements. The breathing and body movements would run on a random loop. Although I think it'd be cool if all of them were on the same Python program hooked to the camera which would have the breathing become more rapid, or the creature becomes more fidgety when more people are around. (Could I have multi-controllers running on the same Python program? Overkill?) To mask the noise of the servos I wanted to have some bass speakers inside the creature that would have a deep purring like a cat. I know there are many controllers out there and was hoping to get some opinions on a starting point. I'm also not adverse to building a custom board if that's the best route. I've attached a photo of the sculpture in progress. Thanks a lot, Cheers!
Post edited by Blake Bradley on
One nice things about the Lynx is that you can bundle (group) servo movement together as well as set timing for these groups. Also there is some free software utilities you can download for it.
i.e. Over 3 seconds I want servo 1 to move 108 points, but servo 2 only move 50.
Additionally various software like the VSA will chat to the SSC-32 directly as well as handle audio visual integration.
However - if you are more comfortable with programming you can use an Arduino or Teensy 3.1 and have them chat to an 2 x Adafruit 16 Channel PWM controller
Hope this helps.
Not sure how far you have gone with this but you can use an R-Pi with either Simple-CV or Open-CV to chat to a web cam, and also use the Haar's constructs to recognize the facial features.
You can then have the R-Pi send a serial string to your controller telling it the sequence of servo's to move.
Of course - you might already be well past this stage
the total was about 28.00 USD. I like how the shield can be separately powered so it's not drawing from the micro controller.
I don't think I'll have any servos more powerful than this one http://hitecrcd.com/products/servos/sport-servos/analog-sport-servos/hs-645mg-high-torque-metal-gear-servo/product so, I'm trying to find a good power supply but am stuck there too. Maybe one of these?
Any of ideas? I prefer to have it run off a plug than batteries.
I'll play around with hooking the R-Pi to and camera and then to the the Funduino. Might be easier than using an android and Bluetooth. Here's a tutorial I found https://m.youtube.com/watch?v=1I4gHpctXbU
I would suggest checking out their products. I'm using one of their boards in my animatronic Skeksis project, and it's also the controller used in our current live course on character animatronics.
Blake - one very cheap and extremely powerful 5V supply is.. an old computer power supply. It has all of the safety features like anti short.. And you can get them for nothing.
Look on Youtube and Google on how to convert one as a 'bench supply' - it's only a loop between 2 pins. Best of all you can keep a couple around incase one dies. When they do die it is very rare that it will affect what it is driving.
Re the R-Pi. Wonderful you have found that lesson - Writing it in Python will enable you to have the face detection on the Pi, and then use a serial port to chat to the Arduino. That way you have the best of both worlds. With the Pi you can use it's internal camera or a webcam.. The internal camera will be a bit faster.
Reason that the Pi is not the best for servo control is that it is a multitasking Op system which may affect timing if it needs to do something else.
But an Arduino is a single tasking system and only does one task - but very well.
Another very interesting camera device is this. It's called a Pixy and it is a video camber with built in CPU that does most of the processing for you..
Re the servo's. Sorry - I generally don;t deal in large servos
Hopes this all helps
@David Boccabella Nice find on the 5V! I'll look into converting the bench supplie. The pixycam is really neat and looking forward to seeing how they program the facial recognition and tracking code. I might look into trying to design my own boards as well. It would be great to make exactly what is need for each project. Although it's also good to have somthing that can be taken out of old protects and repurposed to new ones. I'm going to look into the pros and cons of using Pi with cam vs. Just an Android phone with a camera. I have a feeling the Pi will be a cheaper route.