👁️ Visão e IA embarcada
O robô passa a enxergar. Você coloca um Raspberry Pi 5 com câmera no chassi, encontra objetos por cor com OpenCV e por forma com o YOLO26, roda IA pequena dentro do próprio ESP32-S3 e faz o Pi conversar com o ESP32. No fim, monta um robô que segue um objeto ou uma pessoa.
Como ler: os três primeiros passos (roxo) montam a visão no Raspberry Pi 5: sistema, câmera e detector. Os dois seguintes (ciano) trazem IA para dentro do ESP32 e ligam as duas placas. O último, com brilho, junta tudo no robô que segue. Se você já usa Linux, comece no 3.2.
🎯 O que você monta nesta trilha
O rover da Trilha 1 ganha um Raspberry Pi 5 com câmera. O Pi encontra o alvo, calcula para que lado ele está e a que distância, e manda comandos curtos ao ESP32, que gira as rodas. Primeiro o robô segue uma bola colorida; depois, uma pessoa ou um objeto que você mesmo ensinou. Pelo caminho ficam prontos: um vídeo ao vivo do robô no navegador, um detector rodando em NCNN e um ESP32-S3 que reconhece um gesto sozinho.
- ✓Raspberry Pi OS 64-bit (Trixie) e picamera2
- ✓Ultralytics YOLO26, o detector atual
- ✓Pi pensa, ESP32 age, com parada segura
- ✓Base direta para o ROS 2 da Trilha 4
💡 Ainda sem Pi 5?
O 3.4 roda só com um ESP32-S3. E o OpenCV e o YOLO26 também funcionam no seu PC com webcam, para você estudar máscaras e detecção antes de comprar a placa.
Mapa da trilha
🍓 Raspberry Pi 5 e Linux
Um computador inteiro dentro do robô
📷 Câmera e OpenCV
Achar o objeto pela cor
🔍 Detectar objetos com YOLO26
Pessoa, garrafa ou a sua peça
🧬 IA dentro do microcontrolador
Modelo pequeno, sem computador
🔗 Raspberry Pi conversa com o ESP32
Um pensa, o outro age
🎯 Projeto: robô que segue um objeto
Visão fechando a malha
Conteúdo detalhado
🍓 Raspberry Pi 5 e Linux
Por que o robô precisa de um computador, preparar o Pi 5 sem monitor, terminal, Python com venv, GPIO de 3,3 V e os cuidados de energia e calor.
A divisão de trabalho: o Pi 5 com Linux processa a câmera e decide; o ESP32 controla os motores em tempo real.
Evita tentar visão no microcontrolador e ligar motor direto no Pi.
Computador de placa única · Linux · tempo real · Pi pensa, ESP32 age.
Gravar o Raspberry Pi OS 64-bit com Wi-Fi e SSH já configurados e entrar no Pi pela rede, sem monitor.
No robô não há tela; um Pi bem preparado aparece na rede sozinho.
Headless · Pi Imager · SSH · robo.local · apt.
Os quinze comandos que resolvem quase tudo: navegar, editar, copiar, ver espaço e memória, desligar com segurança.
Câmera, YOLO26 e ROS 2 acontecem no terminal.
Pasta pessoal ~ · sudo · nano · Ctrl+C · shutdown.
Criar um venv com acesso às bibliotecas do sistema (picamera2, gpiozero) e instalar pacotes nele com pip.
O sistema bloqueia pip global; o venv certo evita "o script não acha a câmera".
venv · pip x apt · --system-site-packages · requirements.txt.
LED de status e botão de parada com gpiozero, usando a numeração BCM.
5 V num GPIO queima o Pi; o botão físico de parada vai para o projeto 3.6.
BCM x físico · LED e Button · pinout · 3,3 V máximo.
Fonte de 27 W na bancada, regulador buck no robô, cooler ativo e um monitor de temperatura e subtensão.
Reinício e lentidão "misteriosos" quase sempre são energia ou calor.
Buck 5 V · subtensão · throttling · get_throttled.
📷 Câmera e OpenCV
Pixels e canais, Camera Module 3 com picamera2, máscaras de cor em HSV, centro do objeto, FPS e vídeo ao vivo no navegador.
A imagem como tabela de números: altura × largura × 3 canais, na ordem BGR do OpenCV.
Cores trocadas e eixo y invertido causam metade dos erros de visão.
Pixel · canal · BGR · shape do NumPy.
Ligar a câmera com o cabo do Pi 5, testar com rpicam-hello e capturar quadros em Python.
É a porta de entrada de tudo o que vem depois na trilha.
rpicam-apps · picamera2 · capture_array · cabo 22 → 15 vias.
Converter para HSV, escolher uma faixa de cor e gerar a máscara do objeto.
É a visão mais leve que existe: dezenas de quadros por segundo, sem IA.
Matiz, saturação, brilho · inRange · morfologia · vermelho em duas faixas.
Achar o maior contorno, calcular o centro e a área e transformar isso em erro horizontal.
Erro e área são os dois números que o robô usa para virar e se aproximar.
findContours · momentos · erro = cx − meio · área mínima.
Medir quantas voltas por segundo o laço inteiro dá e escolher a resolução com números.
FPS baixo é reação atrasada; sem medir, otimizar é chute.
FPS do laço · latência · metade da resolução = ¼ do trabalho.
Um servidor MJPEG em Python puro que mostra no celular o que o robô vê, com marcações.
Ver a câmera separa em segundos erro de visão de erro de controle.
MJPEG · porta · thread · overlay · só na rede local.
🔍 Detectar objetos com YOLO26
O que é detecção, YOLO26 no Pi 5 com Ultralytics, exportar para NCNN, AI HAT+ (Hailo), treinar com suas imagens e os limites reais.
Para cada objeto, uma caixa, uma classe e uma confiança; diferente de classificar ou segmentar.
Reconhece pela forma, não pela cor: segue uma pessoa de qualquer roupa.
Caixa · classe · confiança · inferência · COCO.
Instalar a Ultralytics no venv e rodar o yolo26n ao vivo na Camera Module 3.
Vinte linhas e o robô reconhece pessoas e objetos do dia a dia.
yolo26n.pt · tamanhos n a x · conf · r.boxes.
Converter o modelo para NCNN, o formato mais rápido na CPU do Pi, e comparar com números.
Velocidade a mais sem gastar nada, e o hábito de medir antes e depois.
yolo export · NCNN · imgsz · aquecimento.
AI HAT+ (Hailo-8/8L) e AI HAT+ 2 (Hailo-10H): NPUs no PCIe do Pi 5 que tiram a rede neural da CPU.
Saber quando o acelerador vale evita comprar cedo ou insistir tarde na CPU.
NPU · PCIe · TOPS · modelo compilado .hef.
Fotografar, rotular no formato YOLO, treinar a partir do yolo26n no PC ou Colab e levar o best.pt para o Pi.
O robô passa a reconhecer o objeto do seu projeto, não só os do COCO.
Ajuste fino · dataset · treino e validação · data.yaml · best.pt.
Onde a detecção falha e como chegar a uma decisão estável: limiar, tamanho mínimo e vários quadros seguidos.
Um robô que segue pessoas só é seguro se você souber onde a visão erra.
Falso positivo · falso negativo · limiar · persistência.
🧬 IA dentro do microcontrolador
TinyML: modelos pequenos e quantizados rodando no ESP32-S3, com Edge Impulse ou TensorFlow Lite Micro, para gestos, palavras-chave e pessoas.
Rodar um modelo no próprio microcontrolador, sem Pi nem internet, gastando pouquíssima energia.
Robôs pequenos e baratos podem reagir a gestos e sons sem um computador a bordo.
TinyML · inferência local · baixo consumo · privacidade.
Como um modelo encolhe para caber em centenas de kB: menos camadas e números inteiros de 8 bits.
Explica o que cabe e o que não cabe num ESP32-S3.
Quantização · int8 · memória RAM e flash · precisão x tamanho.
Coletar dados, treinar no navegador e baixar uma biblioteca Arduino pronta para o ESP32.
É o caminho mais curto do zero ao primeiro modelo rodando, sem programar a rede.
Coleta · impulse · treino · exportar biblioteca.
O motor de inferência do Google para microcontroladores, no ESP32 via esp-tflite-micro e otimizações ESP-NN.
Dá controle total sobre o modelo quando a ferramenta pronta não basta.
LiteRT · TensorFlow Lite Micro · esp-tflite-micro · ESP-NN.
Usar a IMU da Trilha 2 para o robô reconhecer movimentos como "chacoalhar" ou "inclinar".
É o exemplo de TinyML mais barato: o sensor você já tem.
Janela de dados · classes de gesto · limiar de confiança.
Ouvir uma palavra de comando com microfone ou detectar uma pessoa com um ESP32-S3 com câmera.
Mostra o limite do microcontrolador e quando passar para o Pi.
Palavra-chave · pessoa / não pessoa · XIAO ESP32-S3 Sense.
🔗 Raspberry Pi conversa com o ESP32
UART entre as placas, um protocolo simples de mensagens com checagem, os dois lados do código e o que fazer quando o link cai.
Quem decide o quê: o Pi manda intenções curtas; o ESP32 executa e mantém os limites de segurança.
Uma fronteira clara deixa cada placa simples de testar sozinha.
Alto nível x baixo nível · comando · limite no microcontrolador.
Ligar TX com RX cruzados e GND comum, as duas placas em 3,3 V, ou usar o cabo USB.
Fio trocado ou sem GND é a causa número um de "não chega nada".
TX/RX cruzados · baud rate · GND comum · porta serial.
Um formato de mensagem por linha, fácil de ler, com checagem para descartar o que chegou corrompido.
Mensagem pela metade não pode virar motor girando.
Linha de texto · JSON curto · checksum · resposta de confirmação.
Ler a serial sem travar o loop, validar cada comando e limitar velocidades no próprio ESP32.
O microcontrolador é a última barreira antes do motor.
Buffer de linha · validação · limites · millis().
Abrir a porta serial no Python, enviar comandos em ritmo fixo e ler as respostas do ESP32.
É a ponte entre o detector do 3.3 e as rodas.
pyserial · timeout · ritmo de envio · leitura de resposta.
O que acontece quando o Pi trava, o cabo solta ou uma placa reinicia, e como o robô para sozinho.
Robô seguro é o que para quando a comunicação some.
Watchdog de comando · heartbeat · reconexão · estado seguro.
🎯 Projeto: robô que segue um objeto
Câmera, detecção, erro e motores juntos: primeiro seguindo uma cor, depois uma pessoa ou objeto com YOLO26, com PID e testes de segurança.
O diagrama do robô inteiro e o que cada módulo da trilha entrega a ele.
Com o plano no papel, cada defeito tem um lugar claro para ser procurado.
Malha fechada pela visão · etapas · interfaces entre placas.
Onde fixar câmera, Pi, ESP32, buck e bateria, com fiação curta e ventilação.
Câmera torta e energia mal distribuída estragam o melhor código.
Altura da câmera · ramos de energia · GND comum · fixação.
A primeira versão do robô: máscara HSV do 3.2 gerando o erro que gira as rodas.
Rápido e leve, valida toda a cadeia antes de trazer a IA.
Erro horizontal · área como distância · alvo perdido = parar.
Trocar a máscara pelo detector do 3.3, com a decisão estável de vários quadros.
Mostra como o mesmo controle aceita uma visão mais inteligente sem mudar.
Caixa → erro · tamanho da caixa · NCNN · persistência.
Dois controladores: um zera o erro horizontal (girar), outro mantém a distância (andar).
Sem PID o robô zigue-zagueia ou atropela o alvo.
PID da Trilha 2 · zona morta · saturação · ajuste fino.
Roteiro de testes com o robô suspenso e no chão, parada de emergência e ideias para ir além.
Um robô que segue pessoas precisa provar que para quando deve.
Teste suspenso · botão de parada · distância mínima · próximo nível (ROS 2).
🧰 Kit da trilha
Além do rover da Trilha 1. O conjunto básico (Pi 5, fonte, cartão, cooler e câmera) fica na faixa aproximada de R$ 1.100 a R$ 1.900 (out/2026, confira antes de comprar: varia muito por loja, frete, câmbio e memória do Pi). Os opcionais são à parte.
Raspberry Pi 5 de 4 GB (suficiente para a trilha) ou 8 GB (mais folga para YOLO26 e ROS 2). O Pi 4 serve para o básico, sem o PCIe do AI HAT+.
Fonte oficial de 27 W (USB-C) para a bancada, cooler ativo oficial e, no robô, um regulador buck de 5 V com 5 A ou mais.
Cartão microSD de 32 GB ou mais, de boa marca (classe A1/A2). Ultralytics e modelos ocupam vários GB.
Camera Module 3 com o cabo para Pi 5 (22 → 15 vias). A AI Camera (Sony IMX500) é alternativa com IA na própria câmera.
AI HAT+ (Hailo-8L/8) para visão, ou AI HAT+ 2 (Hailo-10H), cerca de US$ 130 no varejo dos EUA em 2026, que também roda modelos de linguagem pequenos.
ESP32-S3 com câmera e microfone, como o XIAO ESP32-S3 Sense, para o módulo 3.4. A IMU da Trilha 2 também serve.
✓ Opcional que vale a pena
Leitor de cartão USB, espaçadores M2.5 para prender o Pi no chassi e uma bola ou cartolina de cor viva para os testes de cor.
✗ Não compre para esta trilha
Fonte de celular genérica, power bank sem 5 A, cartão sem marca e o antigo "AI Kit" (saiu de linha; o AI HAT+ o substitui).