Que peut vraiment faire une carte Arduino telle que l'Uno? Bien sûr, des choses simples comme le contrôle de quelques servos sont très faciles pour cela. Cependant, je ne pense pas qu'une carte Uno serait capable de préformer le SLAM 3D en temps réel à partir de données de nuages de points recueillies à partir d'un capteur Kinect sur un robot mobile, non? Si le robot avait une quelconque vitesse, l'Arduino ne pourrait pas suivre, n'est-ce pas? Pourrait-il faire SLAM 2D tout en se déplaçant et être capable de suivre? Que diriez-vous de prendre 1/10 des points du capteur Kinect et de ne traiter que ceux-ci?
Fondamentalement, quels sont quelques exemples des limitations de ressources d'une telle carte Arduino?
L'Arduino a toujours été horriblement sous-alimenté.
Vous pouvez obtenir une pile de découvertes stm ou d'autres cartes de développement basées sur ARM pour le prix d'un seul arduino, et chacune de ces cartes aura des ordres de grandeur plus puissants que l'arduino.
L'omniprésence de l'arduino a également entravé de nombreux projets qui auraient dû mieux connaître. La stabilisation du quadrotor et l'exécution du code g de style Reprap sont deux domaines majeurs où l'arduino a été forcé bien au-delà de ses capacités et cela se voit. (Le projet ardrupilot a besoin de trois arduinos.)
Espérons que les trucs ados / due / leaflabs aideront à rendre le développement d'ARM plus convivial. Beaucoup de projets plus récents / meilleurs tels que smoothie, openpilot, etc. ont également fait le saut.
la source
Les spécifications brutes des microcontrôleurs Arduino indiquent des vitesses d'horloge pouvant atteindre 16 ou 20 MHz, soit environ la vitesse d'un ordinateur Intel 386 du milieu des années 90.
Cela semble prometteur, jusqu'à ce que vous considériez le fait qu'il ne prend pas en charge nativement les mathématiques à virgule flottante - la mesure " FLOPS " par laquelle la plupart des CPU sont comparés. J'ai vu des démos Arduino qui calculent la vitesse de l'Arduino à environ 60 kFLOPS, tandis que l'Intel 386 à 20 MHz fait quelque chose comme 170 kFLOPS (selon cette page ).
En outre, il convient de noter que l'Arduino fait des mathématiques sur 8 bits et que le 386 fait des mathématiques sur 16 et 32 bits. Une carte DSP pourrait être plus adaptée à ce type d'acquisition de données, mais je ne suis pas en mesure de le conseiller.
Faire fonctionner ce code dans un environnement aussi contraint que l'Arduino pourrait être possible, mais cela nécessitera beaucoup d'optimisation. Vous seriez mieux servi en utilisant un processeur plus puissant pour implémenter ces algorithmes; assurez-vous qu'ils fonctionnent sur le processeur puissant, puis essayez d'optimiser pour le processeur faible.
la source
Pour le prix d'un Arduino Uno, ou moins, une alternative récente est le TI Stellaris Launchpad à 12,99 $ (y compris FedEx dans le monde entier): Arm Cortex M4 avec un excellent ensemble de bibliothèque intégré appelé StellarisWare qui réside sur ROM - donc votre Flash et la RAM restent libres pour l'utilisation des applications.
Puissance de calcul massivement plus élevée que l'Arduino Uno, mais jusqu'à présent sans la participation de la communauté omniprésente qu'Arduino a recueillie.
la source
Il est vrai que l'Arduino commence à paraître sous-alimenté maintenant que les gens sont de Raspberry Pis, mais je pense que cela dépend davantage de l'application. J'aime l'arduino parce que le code est vraiment facile à écrire, il est vraiment facile de flasher du nouveau code, et vraiment facile de brancher de nouveaux capteurs. Je ne l'utiliserais pas pour une application de vision comme des trucs kinect ou webcam, mais cela peut faire beaucoup plus que de parler à des servos. Un bon exemple serait une application de type segway; l'arduino est idéal pour parler aux capteurs de l'accéléromètre, faire des calculs spatiaux 3D, puis parler aux servos pour garder les choses équilibrées.
la source