Microcontroller Suggestions

Hey,
I am working on gathering my parts list together for a hexapod, however I am getting stuck with which micro controller to use. The requirements of my project are quite expansive and am wondering if I might be better off splitting up the tasks to several smaller controllers, but I’ll let you guys help me with that. As background I am mostly a software/programming guy and have only very basic knowledge of the hardware side of micro controllers - please keep that in mind. :laughing:

A key aspect of my project is to make the entire setup embedded, so that I don’t have to rely on another computer to do certain calculations. What makes the whole setup so confusing is the sheer number of I/O ports, senor inputs & special connection types required. The components which need to be interfaced are as fallows:

1x TTL Laser
1x I2C CMOS Camera
1x Futaba S148 Servo
6x Force Sensing Resistor
18x 645-MG Hitech Servo

The laser & camera will be mounted on the Futaba servo for laser range finding / environment mapping. The FSRs will be located on the feet, and the Hitech servos are self explanatory.
I am struggling with trying to figure out how to get these components to play nice with one another. Perhaps the most difficult component to mesh in is the CMOS Camera, which according to the spec sheet can be interfaced with an I2C connection.

Can anyone suggest a micro controller for this project? Would I better off splitting the design into parts? Eg: One micro controls the range finding and FSRs while another controls the IK calculations and interfaces with the servos? I’m thoroughly lost. :question: I hope someone can point me in the right direction. :smiley: Thanks in advance!

  • Peter

well, lately I’ve been looking at the propeller chip from parallax:

parallax.com/Default.aspx?tabid=407

After reading an article in robot magazine about a propeller-based boe bot, I became quite interested in it.

If you want to split your tasks into sub tasks, it might be worthwhile to look into this chip.

The article described the propeller equivalent to having 8 486DX@25MHz running in parallel…

Thanks for your reply Tom! :smiley: It looks like an awesome chip! I will most certainly look into using it in my project, perhaps even two?

  • Peter

I had a quick look at the spec sheet for the I2C CMOS Camera. It looks like the I2C bus is for control - you can set and check the internal control registers with I2C, but not get image data with it.

The force sensing resistor will provide you with an analog input - best to go with a controller that can handle that. The BasicAtom/AtomPro stamps are rather good and drop directly into the Lynx BotBoards.

Images from a 1.3mp camera are going to require a fair amount of bandwidth (approx. 1.3mb per image at 8 bits per pixel, 3.9mb if you go for 8 bits for each colour chanel) and quite a few cycles to crunch and analyze, which would require an embedded system with the memory and CPU power to handle it, (Gumstix and the like) that kind of data volume will not be manageable on a stamp or spin device.

If you’re dead set on a camera, you might also want to consider a camera that you can offload image processing to, like the CMUCam2, that shunts the image processing off to a slave device.

If you’re interested in ranging and mapping, you might be able to get away with a simpler sonar rangefinder, like the Parallax Ping (analog), Devantech SP04/08 (pulse width, I think) or MaxBotix EZ series (serial/analog/pulse width). These require very little CPU power to operate, so can be used with any stamp.

With a simple pan/scan approach and a sonar and/or IR sensor, you can do some decent 3d scanning/mapping (albeit slowly - limited by servo speed) using stamp controllers (whichever flavour you prefer).

Cheers and best of luck.