O que uma placa Arduino como a Uno realmente pode fazer? É claro que coisas simples como controlar dois servos são muito fáceis para isso. No entanto, não acho que uma placa Uno seja capaz de pré-formar SLAM 3D em tempo real a partir de dados da nuvem de pontos coletados de um sensor Kinect em um robô móvel, certo? Se o robô tivesse alguma velocidade, o Arduino não seria capaz de acompanhar, correto? Poderia fazer SLAM 2D enquanto se move e ser capaz de acompanhar? Que tal pegar 1/10 dos pontos do sensor Kinect e processar apenas esses?
Basicamente, quais são alguns exemplos das limitações de recursos de uma placa Arduino?
O Arduino sempre teve um poder hormonal baixo.
Você pode obter uma pilha de stm discovery ou outra placa de desenvolvimento baseada em ARM pelo preço de um único arduino, e cada uma dessas placas terá ordens de magnitude mais poderosas que o arduino.
A onipresença do arduino também prejudicou muitos projetos que deveriam ter conhecido melhor. A estabilização quadrotor e a execução do código g no estilo Reprap são duas áreas principais em que o arduino foi forçado muito além de suas capacidades, e isso mostra. (O projeto ardrupilot precisa de três arduinos.)
Esperemos que o material para adolescentes / devidos / folhetos ajude a tornar o desenvolvimento do ARM mais amigável. Muitos dos projetos novos / melhores, como smoothie, openpilot etc. também deram o salto.
fonte
As especificações brutas dos microcontroladores do Arduino listam velocidades de clock de até 16 ou 20 MHz - em torno da velocidade de um computador Intel 386 de meados dos anos 90.
Isso parece promissor, até você considerar o fato de que ele não suporta nativamente a matemática de ponto flutuante - a medição " FLOPS " pela qual a maioria das CPUs é comparada. Eu já vi algumas demos do arduino que calculam a velocidade do Arduino em cerca de 60 kFLOPS, enquanto o Intel 386 a 20 MHz faz algo como 170 kFLOPS (de acordo com esta página ).
Além disso, deve-se notar que o Arduino faz matemática de 8 bits e o 386 faz matemática de 16 e 32 bits. Uma placa DSP pode ser mais adequada para esse tipo de aquisição de dados, mas não estou em posição de aconselhá-lo.
Conseguir que esse código funcione em um ambiente tão restrito como o Arduino pode ser possível, mas será preciso muita otimização. Você seria melhor atendido usando uma CPU mais poderosa para implementar esses algoritmos; verifique se eles funcionam na poderosa CPU e tente otimizar para a CPU fraca.
fonte
Pelo preço de um Arduino Uno, ou menos, uma alternativa recente é o TI Stellaris Launchpad por US $ 12,99 (incluindo a FedEx em todo o mundo): Arm Cortex M4 com um excelente conjunto de bibliotecas integrado chamado StellarisWare que reside na ROM - então seu Flash e RAM permanecem livres para uso do aplicativo.
Poder computacional massivamente superior ao do Arduino Uno, mas até agora sem a participação onipresente da comunidade que o Arduino conquistou.
fonte
É verdade que o Arduino começou a parecer pouco potente agora que as pessoas são do Raspberry Pis, mas acho que depende mais do aplicativo. Gosto do arduino porque o código é realmente fácil de escrever, é muito fácil lançar um novo código e muito fácil conectar novos sensores. Eu não o usaria para um aplicativo de visão como o kinect ou o material da webcam, mas ele pode fazer muito mais do que conversar com servos. Um bom exemplo seria um aplicativo do tipo segway; o arduino é ideal para conversar com sensores do acelerômetro, fazer algumas matemáticas espaciais em 3D e conversar com servos para manter as coisas equilibradas.
fonte