Un Arduino seul a trop peu d'E / S et trop peu de puissance CPU et de mémoire. Vous pouvez utiliser plusieurs Arduinos (comme suggéré par vicatu) ou utiliser quelque chose de plus puissant comme le mbed (comme suggéré par Joby Taffey). Je suggérerais un hybride des deux idées. Utilisez un processeur puissant pour fournir une IA et un contrôle global et utilisez des microcontrôleurs plus simples comme gestionnaires d'E / S. En fait, je suggérerais une hiérarchie complète avec autant de couches que nécessaire avec des processeurs plus puissants à mesure que vous montez dans la hiérarchie.
Par exemple, j'ai utilisé la Gameboy Advance comme le `` cerveau '' d'un robot tout en les E / S étaient gérées par des microcontrôleurs PIC16F84. Je pense qu'un arrangement idéal serait quelque chose d'aussi puissant qu'un PC (peut-être une mini-carte ITX) ou quelque chose comme une carte Beagle comme le cerveau, une couche intermédiaire avec plusieurs MBED ou Zilog Z8 en tant que gestionnaires de sous-système (contrôle de mouvement, gestion des capteurs , certains prétraitements de capteur, etc.). et beaucoup de microcontrôleurs petits / bon marché (Atmel / PIC / TI MSP430 etc.) pour gérer le travail des jambes. La couche supérieure peut utiliser Ethernet ou USB, les niveaux inférieurs peuvent utiliser RS232, I2C, etc.
Un avantage de toute cette approche est que vous pouvez modulariser votre développement (bon pour des groupes d'amis ou d'étudiants). Les modules individuels peuvent avoir des objectifs mieux définis (et plus faciles à atteindre) et être des projets complets en eux-mêmes. À des niveaux plus élevés, vous pouvez vous concentrer sur l'IA et le contrôle global du robot sans avoir à vous soucier des détails de bas niveau (par exemple, si vous pouvez émettre une commande pour faire tourner le robot de 45 degrés, vous avez effectivement divisé votre problème en deux. Le niveau supérieur peut se concentrer. sur les décisions sur la direction à prendre (prise de décision) alors qu'un contrôleur de niveau inférieur n'a qu'à satisfaire des commandes motrices simples et bien définies d'en haut. D'une certaine manière, cela modélise notre robot sur le fonctionnement de notre cerveau (pas au niveau neurologique). Lorsque nous décidons de tendre la main et de prendre une tasse, nous n'avons pas à penser consciemment aux mécanismes de ce que nous faisons. Nous pourrions voir cette action se dérouler à trois niveaux:
1) Élevé niveau - la décision de ramasser la tasse 2) Niveau intermédiaire - coordonner les actions motrices et l'analyse de base des entrées sensorielles 3) Niveau bas - effectuer l'action du moteur, collecter les données du capteur.
J'espère que cela vous sera utile.