Was kann ein Arduino-Board wie das Uno wirklich? Natürlich sind einfache Dinge wie die Steuerung einiger Servos sehr einfach. Ich glaube jedoch nicht, dass ein Uno-Board 3D-SLAM in Echtzeit aus Punktwolkendaten erstellen kann, die von einem Kinect-Sensor auf einem mobilen Roboter erfasst wurden, oder? Wenn der Roboter überhaupt eine Geschwindigkeit hätte, könnte der Arduino nicht mithalten, richtig? Könnte es 2D-SLAM während der Bewegung ausführen und mithalten können? Wie wäre es, wenn Sie 1/10 der Punkte vom Kinect-Sensor nehmen und nur diese verarbeiten?
Was sind im Grunde einige Beispiele für die Ressourcenbeschränkungen eines solchen Arduino-Boards?
Der Arduino war schon immer stark unterfordert.
Sie können einen Stapel stm Discovery oder ein anderes ARM-basiertes Entwicklungsboard zum Preis eines einzelnen Arduinos erwerben, und jedes dieser Boards ist um Größenordnungen leistungsfähiger als das Arduino.
Die Allgegenwart des Arduino hat auch viele Projekte behindert, die es besser wissen sollten. Die Quadrotor-Stabilisierung und die Ausführung von G-Code im Reprap-Stil sind zwei Hauptbereiche, in denen das Arduino weit über seine Fähigkeiten hinaus gezwungen wurde und dies zeigt. (Das Ardrupilot-Projekt benötigt drei Arduinos.)
Hoffentlich hilft das teensy / due / leaflabs-Zeug dabei, die ARM-Entwicklung freundlicher zu gestalten. Viele der neueren / besseren Projekte wie Smoothie, OpenPilot usw. haben ebenfalls den Sprung geschafft.
quelle
Die Rohdaten der Mikrocontroller des Arduino enthalten Taktraten von bis zu 16 oder 20 MHz - ungefähr so schnell wie ein Intel 386-Computer Mitte der neunziger Jahre.
Das klingt vielversprechend, bis man bedenkt, dass es Gleitkomma-Mathematik nicht nativ unterstützt - die " FLOPS " -Messung, mit der die meisten CPUs verglichen werden. Ich habe einige Arduino-Demos gesehen, die die Geschwindigkeit des Arduino bei etwa 60 kFLOPS berechnen, während der Intel 386 bei 20 MHz ungefähr 170 kFLOPS leistet (laut dieser Seite ).
Es sollte auch beachtet werden, dass der Arduino 8-Bit-Mathematik und der 386 16-Bit- und 32-Bit-Mathematik ausführt. Eine DSP-Karte ist möglicherweise besser für diese Art der Datenerfassung geeignet, aber ich bin nicht in der Lage, sie dort zu beraten.
Es ist zwar möglich, diesen Code in einer so eingeschränkten Umgebung wie dem Arduino zum Laufen zu bringen, aber es erfordert viel Optimierung. Sie sollten eine leistungsstärkere CPU verwenden, um diese Algorithmen zu implementieren. Stellen Sie sicher, dass sie auf der leistungsstarken CPU funktionieren, und versuchen Sie dann , die schwache CPU zu optimieren.
quelle
Für den Preis eines Arduino Uno oder weniger ist das TI Stellaris Launchpad für 12,99 US-Dollar (einschließlich FedEx weltweit) eine neue Alternative : Arm Cortex M4 mit einem hervorragenden integrierten Bibliotheksset namens StellarisWare, das sich auf ROM befindet - also Ihr Flash und RAM bleiben für die Verwendung durch Anwendungen frei.
Massiv höhere Rechenleistung als das Arduino Uno, aber bisher ohne die allgegenwärtige Beteiligung der Community, die Arduino erhalten hat.
quelle
Es ist wahr, dass der Arduino jetzt, wo die Leute von Raspberry Pis sind, unterfordert aussieht, aber ich denke, es hängt mehr von der Anwendung ab. Ich mag das Arduino, weil der Code sehr einfach zu schreiben ist, es sehr einfach ist, neuen Code zu flashen und wirklich einfach neue Sensoren anzuschließen. Ich würde es nicht für eine Vision-Anwendung wie Kinect oder Webcam verwenden, aber es kann viel mehr als nur mit Servos sprechen. Ein gutes Beispiel wäre eine Segway-Anwendung. Das Arduino ist ideal, um mit Beschleunigungssensoren zu sprechen, räumliche 3D-Berechnungen durchzuführen und dann mit Servos zu sprechen, um das Gleichgewicht zu halten.
quelle