Seeking advice on Microcontroller to control servos, solenoids, and camera

Hello All,

I am working on a project that consists of the following components and I would greatly appreciate some advice:

3 Servos (all 3 are same and specs are listed below)
4 Solenoids (all 4 are same and specs are listed below)
1 camera (for low quality snapshots, not video)

I am looking for a microcontroller that controls the above eight components and also communicates with a wireless router to receive instructions and provide status. I am a complete newbie on microcontrollers and I would greatly appreciate advice pointing me in the right direction (e.g. ideal microcontroller type, software tools, etc) so I can read up on the manuals.

Thanks,
Flick

================================================================================================================
SERVO DETAILS

HITEC HS-311
http://www.servocity.com/html/hs-311_standard.html
Control System: +Pulse Width Control 1500usec Neutral
Required Pulse: 3-5 Volt Peak to Peak Square Wave
Operating Voltage: 4.8-6.0 Volts
Operating Temperature Range: -20 to +60 Degree C
Operating Speed (4.8V): 0.19sec/60° at no load
Operating Speed (6.0V): 0.15sec/60° at no load
Stall Torque (4.8V): 42 oz/in (3.0 kg/cm)
Stall Torque (6.0V): 49 oz/in (4.5 kg/cm)
Current Drain (4.8V): 7.4mA/idle, 160mA no load operating
Current Drain (6.0V): 7.7mA/idle, 180mA no load operating
Dead Band Width: 5usec
Operating Angle: 45° one side pulse traveling 450usec
Direction: Multi-directional
Motor Type: Cored Metal Brush
Potentiometer Drive: 4 Slider/Direct Drive
Bearing Type: Top Resin Bushing
Gear Type: Nylon
360 Modifiable: Yes
Connector Wire Length: 11.81" (300mm)
Weight 1.52oz (43g)

================================================================================================================
SOLENOID DETAILS

https://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_262263_-1
http://download.siliconexpert.com/pdfs/2009/11/4/3/38/46/272/jamco_/manual/262263.pdf
Open-Frame Pull Solenoid
Nominal voltage 12VDC
Coil resist. 36 ohms (±10%)
Power consump 4.0W
Holding force 1.10 lbs.
Stroke 0.24
Size 1.5"L x 1.0" x 0.8"Dia.
Shaft Dia 0.310
Weight 0.21 lbs.
Size (inch) 1.5 x 1.0 x 0.8
Type Open frame-pull
Shaft Dia (in) 0.31
Stroke 0.24
Weight (lbs.) 0.21

Well - you should be able to easily control all of that with a standard Arduino Uno; you will need some form of a driver (transistor, etc) for the solenoids, of course. The servos could be driven with the Arduino "directly" (using the Servo library), or you could use some form of a servo controller (I am partial to Pololu's products, but others exist as well). Using a servo controller will allow you to offload that processing to the controller; depending on your code, this may or may not be an issue.

Your camera is an "unknown", as you don't tell us what it is; if it is simply a simple digital point-n-shoot that you intend to control the shutter button with the microcontroller, then it too can be controlled via a transistor, or a relay. You need to tell us what this part will be; suffice to say that the Arduino will -not- be able to store an image to itself, let alone a series of images. If your "camera" is some kind of JPEG serial camera module, you might be able to stream the data from the camera, thru the Arduino, and to an SD card, or via the router to a PC or something, but that's about it.

The Arduino can easily communicate with the router; you can either hack the router to communicate with the Arduino via serial (if you are using something like a WRT54G linux router), or you can get an ethernet shield to connect to the router and communicate via the network.

I don't see any problem with using a regular Arduino, unless your code is complex - then you may have problems fitting it in the 32K (but believe me, that's a lot of code space if you are a good programmer), or you may have issues RAM-wise (with only 2K on the 328); if you go the route of the Arduino, I would start with the Uno, and see where you get to. If, as your skills and code progresses, you find yourself running into code space or RAM limits (and you'll know), then going for a Sanguino or Mega controller (both Arduino as well), will allow you an easy upgrade path, should you need it.

Thanks for the detailed reply, really appreciate it.