IA como Ferramenta para Engenharia

Acelerando o Desenvolvimento com Arduino usando IA Generativa

Em projetos puramente de software, onde não há necessidade de interação com hardware, modelos de linguagem de grande escala (LLMs), como o ChatGPT e o Gemini, estão ajudando programadores a desenvolver com muito mais rapidez e eficiência. Essa assistência geralmente inclui sugestões de preenchimento automático enquanto o desenvolvedor escreve o código ou orientações para solucionar bugs e erros de sintaxe — aspectos da programação que consomem tempo. Os recursos de geração de texto desses modelos parecem se alinhar perfeitamente com o desenvolvimento de software, mas, felizmente, esses modelos também podem contribuir de diversas formas em projetos que envolvem hardware. Em especial, para plataformas como o Arduino, popular entre amadores e profissionais na criação de protótipos de hardware, os LLMs podem acelerar o processo de desenvolvimento para além da simples geração de trechos úteis de código.

Escrevendo o Primeiro Sketch com Ajuda de IA

Uma parte essencial dos projetos com Arduino é o sketch (esboço de código), mas, como qualquer engenheiro dirá, esse é apenas um dos elementos do processo. Duas outras etapas fundamentais ao se desenvolver um projeto com Arduino são: (1) a leitura da documentação de placas e componentes específicos, para compreender a atribuição de pinos e os requisitos de uso, e (2) o planejamento do fluxo geral do software e da arquitetura do sistema. Após essas etapas iniciais, a base do projeto continua a ser construída, que normalmente envolve o diagnóstico e resolução de erros inesperados ou difíceis de compreender. Paralelamente à escrita do código do sketch, podem ser desenvolvidos testes e identificadas lacunas funcionais.

Felizmente, com o apoio de uma inteligência artificial (IA) durante o processo de desenvolvimento, todas essas fases podem ser otimizadas. O papel da IA como “companheira” é importante: embora esses modelos pareçam realizar milagres com os resultados sofisticados que conseguem gerar, eles nem sempre estão corretos e frequentemente deixam passar nuances importantes ao tentar resolver problemas complexos com código. Por isso, é essencial contar com um engenheiro ou profissional experiente para testar, validar o funcionamento do código e garantir o sucesso do projeto.

O tipo de modelo de linguagem (LLM) também faz diferença. Embora o ChatGPT seja o mais conhecido, outros como Claude, Gemini e Copilot também merecem destaque por suas capacidades voltadas à programação.

Leia a Documentação

Projetos com Arduino vão além da simples escrita do código do sketch. Antes de iniciar a programação, é fundamental realizar uma preparação adequada. Isso inclui a leitura da documentação e das especificações para entender como interagir com os componentes escolhidos, reconhecer as entradas e saídas esperadas, bem como identificar limites ou faixas operacionais. Dependendo do tipo de componente, esses documentos podem ser extensos e detalhados, tornando a análise cansativa; por isso, contar com um assistente de IA para otimizar esse processo é uma grande vantagem.

Muitos modelos de linguagem de grande escala (LLMs) são capazes de processar arquivos como folhas de dados (datasheets) para responder dúvidas sobre especificações, funções e requisitos (Figura 1). Alguns desses modelos são multimodais e conseguem interpretar, em certa medida, gráficos e diagramas de placas de circuito presentes nesses documentos. Além disso, a IA generativa pode acelerar o aprendizado e a compreensão de funções desconhecidas relacionadas a novos componentes, especialmente quando se lida com bibliotecas de módulos que estão sendo utilizados pela primeira vez em um projeto.

Figura 1: ChatGPT demonstrando sua capacidade de interpretar a folha de dados de um componente (o sensor digital de luz de alta faixa dinâmica Adafruit TSL2591) e gerar o código básico necessário para utilizá-lo. (Fonte: Autor)

Planejamento e Estruturação

A IA também pode ajudar a compreender como o fluxo de alto nível do projeto deve ser, especialmente quando múltiplos componentes interagem. Em situações em que dados de vários sensores precisam ser coletados antes de tomar decisões complexas e multifacetadas que afetam outros elementos eletrônicos, pode ser útil fazer um brainstorming do fluxo em pseudocódigo ou investigar como deve ser o layout do software antes de começar a programar. Isso também pode incluir a definição se diferentes trechos de código devem ser distribuídos em arquivos distintos e como eles irão interagir. Se o projeto não for muito complexo, é possível iniciar rapidamente pedindo ao modelo que gere os loops básicos necessários e, a partir daí, avançar no desenvolvimento.

Ajuda para Escrever o Código

Como mencionado anteriormente, os LLMs são bons na geração de código, mas não são perfeitos, especialmente quando se trata de produzir trechos longos e complexos. Com isso em mente, alguns passos podem acelerar o desenvolvimento, evitando atrasos causados pela necessidade de corrigir erros. Primeiro, peça pequenos trechos de código de cada vez, descrevendo de forma clara e objetiva as entradas, saídas e funcionalidades esperadas. Por exemplo, utilizar comentários técnicos e estruturar a linha inicial de uma função antes de pedir a complementação à IA contribui para a geração de um código melhor. Esse recurso é ainda mais eficaz para trechos de código comuns, como acender LEDs, gerar sinais PWM, ler encoders ou coletar dados de sensores populares.

Em segundo lugar, solicite que a IA modifique partes de códigos existentes, como sketches anteriores, para adaptá-los ao projeto atual. Essa abordagem também pode ser usada para otimizar o código, transformando trechos em funções reutilizáveis e garantindo que as solicitações de geração de código considerem restrições de hardware — por exemplo, o microcontrolador utilizado (como Arduino Uno versus ESP32) e limitações de energia, memória ou pinos. Isso assegura que o código gerado seja otimizado para a placa utilizada e evita o uso de funções incompatíveis com certas arquiteturas.

Ao utilizar IA para gerar código, é essencial validar os resultados cuidadosamente e testá-los em simuladores online, como o Tinkercad, para evitar erros e comportamentos inesperados. Além disso, a IA pode produzir linhas de código para depuração que facilitam o processo; por exemplo, se alguma parte do código estiver confusa, a IA costuma ser eficaz ao explicar linhas específicas quando solicitada. Por fim, o modelo pode ser consultado para identificar e solucionar bugs ou erros, o que é útil quando já se tem o código anterior como referência (Figura 2).

Figura 2: A partir das instruções à esquerda, o ChatGPT consegue reescrever trechos de código como funções, deixando o loop principal mais limpo à direita. (Fonte: Autor)

Conclusão

Modelos avançados de inteligência artificial, como os LLMs, têm transformado o desenvolvimento de software, acelerando significativamente o processo, e vêm assumindo um papel cada vez mais relevante em projetos de hardware. Um bom exemplo disso são as tarefas de escrita de sketches para Arduino. Esses modelos não apenas auxiliam na geração de código, mas também oferecem suporte em outras etapas do projeto, como a interpretação de documentação técnica, o entendimento de bibliotecas de componentes desconhecidos e o planejamento do fluxo geral do software antes da implementação.

Como qualquer ferramenta de software, os modelos de IA não são perfeitos e não substituem os profissionais envolvidos nos projetos de hardware. No entanto, suas capacidades atuais os tornam excelentes aliados no processo de desenvolvimento, ajudando a torná-lo mais rápido e eficiente.

Artigo escrito por Becks Simpson e publicado no blog da Mouser Electronics:AI as an Engineering Tool | Bench Talk

Traduzido pela Equipe Embarcados. Visite a página da Mouser Electronics no Embarcados

Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Software » Inteligência Artificial » IA como Ferramenta para Engenharia

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: