Do protótipo à produção: Arduino para profissionais

Duas respostas a quem prega descartar o Arduino antes de analisar desapaixonadamente a situação.

O fenômeno dos haters tende a atingir tudo o que é mais popular em qualquer nicho geek, e não poderia ser diferente com o Arduino, plataforma que tantos envolvidos com a eletrônica embarcada amam odiar.

No mês passado eu já havia divulgado, via Facebook (siga-me lá!), os argumentos interessantes desse artigo do Bald Engineer: “Why do engineers (love to) hate Arduino?”. Ele sistematizou aqueles que considera serem os 3 motivos essenciais para essa reação, incluindo: ser fácil demais, ser popular demais, e não ser ideal para 100% dos cenários.

Entre as respostas do Bald Engineer a esses argumentos, há uma citação de Tom Igoe, um dos co-fundadores do projeto Arduino: “Só porque [aprender] foi difícil para mim, não significa que precisa ser difícil para você”. Gostei tanto, que vou até repetir em destaque:

“Só porque [aprender] foi difícil para mim, não significa que precisa ser difícil para você” -- Tom Igoe, co-fundador do Arduino

Eu também penso assim, e de fato me incomoda ver usuários experientes criticando o aprendizado de novatos porque usam ferramentas "fáceis demais" nesse primeiro contato, e a partir daí concluindo que o fato de poder ser usado por esses novatos significa que a ferramenta não serve para outros públicos.

Felizmente esse tipo de posicionamento é raro, a ponto de ser exceção, nos círculos em que transito. Infelizmente, sempre que aparece, também vem acompanhado das simplificações excessivas na direção contrária, que parece adotar como artigo de fé que o Arduino é a resposta certa a qualquer questão, em qualquer área e contexto. Não é, porque não há.


Hoje, um mês depois do texto acima, chegou ao meu conhecimento outro, complementar: “Prototype to production: Arduino for the professional”, publicado na EDN, no qual o Jacob Beningo também fala dessa relação entre a popularidade da plataforma Arduino e a rejeição que sofre em determinados segmentos de profissionais.

Ao contrário do Bald Engineer, o foco do Jacob não é responder aos argumentos dessa rejeição, mas sim apresentar motivos pelos quais valoriza – como profissional – o Arduino para a prototipação, embora aponte também aspectos que considera como os limites da plataforma.

O primeiro motivo é de hardware, está diretamente ligado à popularidade da plataforma, não está ligado às placas Arduino em si, e pode ser resumido assim: há placas de prototipação (na forma de shields e módulos) prontas para simplesmente encaixar boa parte dos componentes e subsistemas que se queira investigar, sejam eles componentes simples ou uma série de interfaces padrão: SPI, CAN, RS-485, Ethernet, etc.

Vários desses shields baratos e fáceis de encontrar apresentam grau de integração maior (o exemplo citado é um shield de meteorologia da Sparkfun, que une uma série de componentes e serviços), e sua praticidade tem inspirado os proponentes de plataformas com maior capacidade e desempenho a oferecer placas de desenvolvimento com pinagem compatível com a do Arduino, para também poder aproveitar os shields.

Embora pessoalmente eu não valorize muito a disponibilidade em formato shield (para minhas próprias experiências de hobbysta, sou mais fã dos módulos independentes de plataforma, como os que a GBK Robotics faz no Brasil), concordo com o argumento do Jacob.

O segundo argumento dele é quase um não-argumento: ele fala das vantagens e das limitações da plataforma de software do Arduino, incluindo a IDE e as bibliotecas disponibilizadas pela comunidade.

Sobre as limitações, não há um esforço por escondê-las, apenas um lembrete importante (para todos os lados envolvidos): a plataforma de software do Arduino é voltada a aprendizado e a prototipação, não ao desenvolvimento de produtos.

Trocando em miúdos: para ele, ao mesmo passo em que é possível passar rapidamente pelos estágios iniciais de protótipo usando as facilidades dos shields e a variedade de bibliotecas, esse conjunto não oferece em si a garantia de um design tolerante a falhas, seguro, com eficiência energética, etc. – ou seja, depois de desenvolver a ideia e testar uma série de protótipos com baixo custo e esforço na plataforma Arduino, é bastante provável que as etapas posteriores de desenvolvimento de um produto caibam melhor em alguma outra plataforma.

Cada ferramenta tem sua aplicação: depois de testar uma ideia com baixo custo e esforço na plataforma Arduino, transformar o protótipo em produto pode exigir outras plataformas.

Pessoalmente, eu concordo com esse resumo. O Arduino pode facilitar a fase inicial, mas – quando o alvo é criar um produto – pode se tornar um obstáculo se o projeto não considerar outras plataformas, no momento apropriado do seu ciclo de desenvolvimento. Sem considerar isso, acabamos naquela situação do artesão que tem como única ferramenta um martelo, e aí trata todas as ferragens como se fossem pregos.

Para deixar clara a ideia do Jacob, vou reproduzir, em tradução direta, o seu parágrafo final cheio de buzzwords: “Desenvolvedores profissionais podem alavancar o ecossistema Arduino para rapidamente prototipar e verificar um conceito em sistemas embarcados. As bibliotecas Arduino existentes podem ser usadas para o desenvolvimento rápido e rasteiro, mas muitos desenvolvedores vão achar a IDE insuficiente e provavelmente escolherão usar suas próprias ferramentas e ambientes. Apesar das deficiências profissionais na plataforma de software, entretanto, o uso dos shields e do ambiente de hardware do Arduino oferece uma grande oportunidade de ajudar a acelerar o desenvolvimento pelo uso de componentes prontamente disponíveis. Apenas não esqueça que o Arduino é feito para a prototipação rápida e não para o desenvolvimento de sistemas voltados à produção.

E a partir de agora, quando surgir de novo a pergunta tradicional "É possível usar o Arduino para criar produtos?", vou oferecer um link para esta resposta do Jacob :)

Comentar

Dos leds ao Arduino, ESP8266 e mais

Aprenda eletrônica com as experiências de um geek veterano dos bits e bytes que nunca tinha soldado um led na vida, e resolveu narrar para você o que descobre enquanto explora esse universo – a partir da eletrônica básica, até chegar aos circuitos modernos.

Por Augusto Campos, autor do BR-Linux e Efetividade.net.

Recomendados

Livro recomendado


Artigos já disponíveis

Comunidade Arduino

O BR-Arduino é integrante da comunidade internacional de entusiastas do Arduino, mas não tem relação com os criadores e distribuidores do produto, nem com os detentores das marcas registradas.

Livros recomendados