Un Arduino da solo ha troppo poco I / O e troppo poca potenza della CPU e memoria. Potresti usare più Arduino (come suggerito da vicatu) o usare qualcosa di più potente come mbed (come suggerito da Joby Taffey). Suggerirei un ibrido di entrambe le idee. Utilizza un potente processore per fornire AI e controllo generale e utilizza microcontrollori più semplici come gestori di I / O. In effetti, suggerirei una gerarchia completa con tutti i livelli necessari con processori più potenti man mano che sali nella gerarchia.
Per esempio ho usato il Gameboy Advance come il "cervello" di un robot mentre l'I / O è stato gestito da microcontrollori PIC16F84. Penso che una disposizione ideale sarebbe qualcosa di potente come un PC (forse una mini scheda ITX) o qualcosa come una scheda Beagle come il cervello, uno strato intermedio con più MBED o Zilog Z8 come gestori di sottosistema (controllo del movimento, gestione dei sensori , alcuni sensori di pre-elaborazione, ecc.). e molti microcontrollori piccoli / economici (Atmel / PIC / TI MSP430 ecc.) per gestire il lavoro delle gambe. Lo strato superiore può usare Ethernet o USB, i livelli inferiori possono usare RS232, I2C ecc.
Un vantaggio di tutto questo approccio è che puoi modulare il tuo sviluppo (ottimo per gruppi di amici o studenti). I singoli moduli possono avere obiettivi meglio definiti (e più facili da raggiungere) ed essere progetti completi in se stessi. A livelli più alti puoi concentrarti sull'intelligenza artificiale e sul controllo generale del robot senza doversi preoccupare dei dettagli di basso livello (ad esempio, se puoi emettere un comando per ruotare il robot di 45 gradi, hai diviso efficacemente il tuo problema a metà. Il livello più alto può concentrarsi sulle decisioni su come girare (processo decisionale) mentre un controllore di livello inferiore deve solo soddisfare i comandi motori semplici e ben definiti dall'alto. In un certo senso questo è modellare il nostro robot sul modo in cui funziona il nostro cervello (non a livello neurologico). Quando decidiamo di allungare la mano e prendere una tazza non dobbiamo pensare coscientemente ai meccanismi di ciò che stiamo facendo. Potremmo vedere questa azione come avvenuta a tre livelli:
1) Alto livello: la decisione di prendere la tazza.2) Livello medio: coordina le azioni motorie e l'analisi di base degli input senori.3) Livello basso: esegue l'azione motoria, raccoglie i dati dei sensori.
Spero che questo sia utile.