hey,
so that's quite a list of requirements there.
so i'm just starting out with AVRs. (the ATmega2560 is an AVR.) so far i'm getting on well with them.
i have only used the ATmega8 so far but all the AVRs have essentially the same core so are largely interchangeable. just pick the one with the features you want.
this site is a good place to start with AVRs:
http://www.avrfreaks.net/ (you have to register to get to a lot of parts of this site.)
the range of features on the AVR controllers is great. they also run at amazingly fast speeds compaired to other microcontrollers. (they take far less clock cycles per instruction than most microcontrollers.)
the C compiler for these guys is free but there's not a huge amount of on-line information out there for them so i'm finding the learning curve more challenging than i did with other microcontrollers i have used.
(anyone else got any recommendations for good starting points for learning about AVRs?)
so Microchip's PICs are the other option to look at.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=74they have been around a lot longer than AVRs so there's a lot of example code on the internet on how to program these guys.
if you want to just download someone else's sample code rather than write your own then these guys are the way to go.
they have the disadvantage of needing a more complicated (ie. expensive) programmer and if you want to program in something other than machine code you will have to buy a separate programming language (although PIC machine code is fairly simple to learn).
in my opinion (and this is probably going to get a few people defending their choice of micro) either PICs or AVRs are your 2 best options for what you want to do.
pick a microcontroller with a UART if you want easy communication with a PC serial port. (a UART is basically a logic level serial port.)
then with a little extra hardware you can send instruction to your microcontroller from hyperterminal (which comes free with windows).
have you considered breaking things down a bit into smaller components rather than doing everything on one controller?
what about using many smaller controllers? this would simplify the programming of each controller, especially when it comes to timing critical things like timing servo pulses.
you could have one microconroller for inputs, one for servo controll, one for motor controll, etc.
you would have to find a way to connect them all to a central controller.
i have used an i2c bus for this in the past which works very well. 1 controller as master (which translated signals between the i2c bus and a PC serial port) and all the others as slave devices. this has the advantage of being able to add further devices to the bus as your project grows.
i'm using a bit of a different method for my latest bot though. i'm using AVRs to connect to my main controller's USB ports.
this project was my inspiration:
http://www.obdev.at/products/avrusb/index.htmlnow i can have an on-board computer controlling many different AVRs from a USB hub.
from the way you were talking in your last thread this might suit you as well?
anyway,
glad to hear you are making progress,
dunk.