¿Qué puede hacer realmente una placa Arduino como la Uno? Por supuesto, cosas simples como controlar un par de servos son muy fáciles. Sin embargo, no creo que una placa Uno sea capaz de preformar 3D SLAM en tiempo real a partir de datos de nubes de puntos recopilados de un sensor Kinect en un robot móvil, ¿verdad? Si el robot tuviera alguna velocidad, el Arduino no podría mantener el ritmo, ¿correcto? ¿Podría hacer 2D SLAM mientras se mueve y poder seguir el ritmo? ¿Qué pasa con tomar 1/10 de los puntos del sensor Kinect y procesar solo esos?
Básicamente, ¿cuáles son algunos ejemplos de las limitaciones de recursos de una placa Arduino?
El Arduino siempre ha tenido poca potencia.
Puede obtener una pila de stm discovery u otra placa de desarrollo basada en ARM por el precio de un solo arduino, y cada una de esas placas tendrá órdenes de magnitud más poderosas que el arduino.
La ubicuidad del arduino también ha obstaculizado muchos proyectos que deberían haber conocido mejor. La estabilización de Quadrotor y la ejecución del código g de estilo Reprap son dos áreas principales en las que el arduino se ha visto obligado a superar sus capacidades y se nota. (El proyecto ardrupilot necesita tres arduinos).
Afortunadamente, las cosas de adolescentes / debido / leaflabs ayudarán a que el desarrollo de ARM sea más amigable. Muchos de los proyectos más nuevos / mejores, como smoothie, openpilot, etc., también han dado el salto.
fuente
Las especificaciones en bruto de los microcontroladores del Arduino enumeran velocidades de reloj de hasta 16 o 20 MHz, alrededor de la velocidad de una computadora Intel 386 de mediados de la década de 1990.
Eso suena prometedor, hasta que considere el hecho de que no admite de forma nativa las matemáticas de coma flotante: la medición " FLOPS " por la cual se compara la mayoría de las CPU. He visto algunas demostraciones de arduino que calculan la velocidad del Arduino a aproximadamente 60 kFLOPS, mientras que el Intel 386 a 20 MHz hace algo así como 170 kFLOPS (según esta página ).
Además, debe tenerse en cuenta que el Arduino hace matemática de 8 bits y el 386 está haciendo matemática de 16 bits y 32 bits. Una placa DSP podría ser más adecuada para ese tipo de adquisición de datos, pero no estoy en condiciones de aconsejar allí.
Es posible que ese código funcione en un entorno tan restringido como el Arduino, pero requerirá mucha optimización. Sería mejor para usted usar una CPU más potente para implementar esos algoritmos; asegúrese de que funcionan en la CPU potente, luego intente optimizar para la CPU débil.
fuente
Por el precio de un Arduino Uno, o menos, una alternativa reciente es el TI Stellaris Launchpad a $ 12.99 (incluido FedEx en todo el mundo): Arm Cortex M4 con un excelente conjunto de biblioteca incorporado llamado StellarisWare que reside en ROM, por lo que su Flash y RAM permanecen libres para el uso de la aplicación.
Poder computacional enormemente más alto que el Arduino Uno, pero hasta ahora sin la participación ubicua de la comunidad que Arduino ha cosechado.
fuente
Es cierto que el Arduino comenzó a verse con poca potencia ahora que las personas son de Raspberry Pis, pero creo que depende más de la aplicación. Me gusta el arduino porque el código es realmente fácil de escribir, es muy fácil actualizar el código nuevo y es muy fácil conectar nuevos sensores. No lo usaría para una aplicación de visión como kinect o cosas de cámara web, pero puede hacer mucho más que hablar con servos. Un buen ejemplo sería una aplicación de tipo segway; El Arduino es ideal para hablar con sensores de acelerómetro, hacer algunos cálculos espaciales en 3D y luego hablar con servos para mantener el equilibrio.
fuente