Ein Arduino alleine hat zu wenig E / A und zu wenig CPU-Leistung und Speicher. Sie können mehrere Arduinos verwenden (wie von Vicatu vorgeschlagen) oder etwas Stärkeres verwenden, wie das Mbed (wie von Joby Taffey vorgeschlagen). Ich würde eine Mischung aus beiden Ideen vorschlagen. Verwenden Sie einen leistungsstarken Prozessor, um KI und Gesamtsteuerung bereitzustellen, und verwenden Sie einfachere Mikrocontroller als E / A-Manager. Tatsächlich würde ich eine vollständige Hierarchie mit so vielen Ebenen vorschlagen, wie mit leistungsstärkeren Prozessoren erforderlich ist, wenn Sie sich durch die Hierarchie erheben.
Zum Beispiel habe ich den Gameboy Advance währenddessen als "Gehirn" eines Roboters verwendet Die E / A wurde von PIC16F84-Mikrocontrollern verwaltet. Ich denke, ein ideales Arrangement wäre etwas so Leistungsstarkes wie ein PC (vielleicht ein Mini-ITX-Board) oder etwas wie ein Beagle-Board wie das Gehirn, eine mittlere Schicht mit mehreren MBEDs oder Zilog Z8s als Subsystemmanager (Bewegungssteuerung, Sensormanagement) , einige Sensorvorverarbeitung usw.). und viele kleine / billige Mikrocontroller (Atmel / PIC / TI MSP430 usw.) zur Verwaltung der Beinarbeit. Die obere Schicht kann Ethernet oder USB verwenden, die unteren Ebenen können RS232, I2C usw. verwenden.
Ein Vorteil dieses gesamten Ansatzes besteht darin, dass Sie Ihre Entwicklung modularisieren können (gut für Gruppen von Freunden oder Studenten). Einzelne Module können besser definierte Ziele haben (und leichter zu erreichen sein) und selbst vollständige Projekte sein. Auf höheren Ebenen können Sie sich auf die KI und die gesamte Robotersteuerung konzentrieren, ohne sich um Details auf niedriger Ebene kümmern zu müssen (wenn Sie beispielsweise einen Befehl zum Drehen des Roboters um 45 Grad erteilen können, haben Sie Ihr Problem effektiv in zwei Hälften geteilt. Die höhere Ebene kann sich konzentrieren über Entscheidungen, in welche Richtung gedreht werden soll (Entscheidungsfindung), während ein Controller auf niedrigerer Ebene nur einfache, genau definierte Motorbefehle von oben erfüllen muss. In gewisser Weise modelliert dies unseren Roboter anhand der Funktionsweise unseres Gehirns (nicht auf neurologischer Ebene). Wenn wir uns entscheiden, eine Tasse in die Hand zu nehmen, müssen wir nicht bewusst über die Mechanik nachdenken, die wir tun. Wir könnten diese Aktion auf drei Ebenen sehen:
1) Hoch Füllstand - die Entscheidung, den Becher aufzunehmen.2) Mittlerer Füllstand - Koordinierung der Motoraktionen und grundlegende Analyse der sensorischen Eingaben.3) Niedriger Füllstand - Motoraktion ausführen, Sensordaten sammeln.
Hoffe das ist hilfreich.