top of page

Como fazer IA no Arduino e em sistemas eletrônicos?

Atualizado: 21 de set. de 2022

Recebi nos comentários uma boa pergunta:

"Existe alguma placa como o arduino, mas não igual, que seja mais abrangente para uso de redes neurais?" DevB LD


Para começar a responder, preciso reforçar uma ideia que ficou oculta na pergunta: redes neurais usam bastante memória e processamento e o Arduino tem pouca memória e baixo processamento!!


Então reformulando a pergunta seria algo como: existe algum pequeno dispositivo eletrônico com mais memória e processamento capaz de rodar Redes Neurais??


Tenho algumas respostas para essa pergunta.



A primeira é:


É possível usar o Arduino em uma aplicação de redes neurais real, sim!! Para isso, ao invés de realizar o treinamento no Arduino, a ideia é treinar a rede em um computador e criar uma forma de enviar os pesos e o modelo da rede para o arduino!


Como existem duas etapas no funcionamento da rede neural que é "predição" e "treinamento", a parte de predição em geral, para arquiteturas de redes mais simples, pode ser feita no Arduino e o treinamento em um computador


Isso faz com que a parte demorada e mais pesada que é o treinamento seja feita em um computador!! E o Arduino fica encarregado apenas de fazer a predição ou classificação




A segunda é:


Mas e se for preciso fazer processamento de imagens?? Ou uma rede neural mais pesada??


Neste caso há outras possibilidades.


1) Colocar um sistema paralelo ao Arduino, como uma câmera IP, que faz a leitura de uma imagem, processa em um computador, e o computador envia a ação que o Arduino deve tomar via rede, porta serial ou algum tipo de comunicação.


2) Utilizar uma placa com mais memória e processamento que suportam redes neurais mais pesadas e complexas.


Para essa segunda hipótese, listo algumas placas possíveis:


- Microcontroladores ST com arquitetura ARM com suporte a Inteligência Artificial (por exemplo: Placa Discovery Stm32f407). Os chips são relativamente baratos, porém os kits de desenvolvimento nem tanto



- Raspberry Pi que é um pouco mais cara, porém tem 1gb de RAM e roda um sistema operacional em cartão SD



- ASUS Tinker board que é a evolução da Raspberry, com 2GB de RAM, placa de vídeo, porém bem mais cara. A parte boa é que tanto Raspberry como Asus Tinker tem exatamente o mesmo layout, facilitando a migração de uma para outra no meio do projeto!



3) Movidius: que pode ser um dongle USB ou uma placa que processa inteligência artificial pesada no seu computador, em uma Raspberry e outros PCs. Apesar de até o momento não ter utilizado, lendo sobre essa tecnologia, fiquei com a impressão que ela não é muito simples de programar!! Mas é uma tecnologia em evolução!



Chip


Dongle USB


É importante perceber que essas tecnologias estão sendo requisitadas por questões de segurança da informação e de velocidade de resposta! Muitas vezes enviar um dado para a nuvem processar pode demorar poucos segundos que são vitais para a aplicação! E esse caminho até a nuvem pode representar um risco de segurança de dados!!


Esse movimento de levar a inteligência para o dispositivo é uma tendência do sistema ficar na "edge" e não na "cloud"!


Se você conhece algum outro controlador ou alguma outra forma de fazer Inteligência Artificial com eletrônica, deixe seu comentário e sua sugestão!!


Obrigadão

bottom of page