ESP32 - Carrinho
Uma das coisas mais legais para experimentar quando você está começando com o ESP32 é montar um carrinho robô. Neste guia, vamos aprender a usar o ESP32 para construir um carrinho robô e controlá-lo com um controle remoto IR. Para controlar o carrinho robô pela Web (WiFi), veja o tutorial ESP32 controla Carrinho pela Web.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Carrinho Robô
No contexto do ESP32, o carrinho robô costuma ser chamado por nomes diferentes, como carrinho robô, carrinho RC, carrinho de controle remoto, carrinho inteligente ou carrinho DIY. Ele pode ser controlado à distância, sem nenhum fio. Você pode usar um controle remoto especial que usa luz infravermelha ou um aplicativo de smartphone via Bluetooth ou WiFi. O carrinho robô pode ir para a esquerda ou para a direita e também para frente ou para trás.
Um carrinho 2WD (tração em duas rodas) para ESP32 é um pequeno veículo robótico que você pode montar e controlar usando uma placa ESP32. Ele normalmente é composto pelos seguintes componentes:
- Chassi: a base ou estrutura do carrinho, onde todos os outros componentes são montados.
- Rodas: as duas rodas que fazem o carrinho se locomover. Elas são acopladas a dois motores DC.
- Motores: dois motores DC são usados para acionar as duas rodas.
- Driver de Motor: a placa driver de motor é um componente essencial que faz a interface entre o ESP32 e os motores. Ela recebe sinais do ESP32 e fornece a energia e o controle necessários aos motores.
- Placa ESP32: o cérebro do carrinho. Ela lê as entradas dos sensores e os comandos do usuário e controla os motores de acordo.
- Fonte de Alimentação: o carrinho 2WD precisa de uma fonte de alimentação, geralmente pilhas e um suporte de pilhas, para alimentar os motores e a placa ESP32.
- Receptor sem fio: um módulo infravermelho, Bluetooth ou WiFi para comunicação sem fio com um controle remoto ou smartphone.
- Componentes opcionais: dependendo da complexidade do seu projeto, você pode adicionar vários componentes opcionais, como sensores (por exemplo, sensores ultrassônicos para desviar de obstáculos, sensores seguidores de linha) e muito mais.
Neste tutorial, para simplificar, vamos usar:
- Kit de carrinho 2WD (incluindo chassi, rodas, motores e suporte de pilhas)
- Driver de Motor L9110S
- Kit infravermelho IR (incluindo controle IR e receptor IR)
Confira a lista de hardware no topo desta página.
Como Funciona

- O ESP32 se conecta aos motores DC do carrinho robô por meio do módulo driver de motor L9110S.
- O ESP32 se conecta a um receptor IR.
- A bateria alimenta o ESP32, os motores DC, o driver de motor e o receptor IR.
- O usuário pressiona as teclas UP/DOWN/LEFT/RIGHT/OK no controle remoto IR.
- O ESP32 recebe os comandos UP/DOWN/LEFT/RIGHT/OK por meio do receptor IR.
- O ESP32 faz o carrinho se mover para FRENTE/TRÁS/ESQUERDA/DIREITA/PARAR controlando os motores DC por meio do driver de motor.
Diagrama de Ligação
O diagrama abaixo mostra como conectar o ESP32, o driver de motor L9110S, os dois motores DC e o receptor IR, usando uma protoboard para compartilhar as linhas comuns de alimentação e terra:

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Observação: o diagrama acima mostra a ligação correta. Na prática, encaixar vários fios (como as linhas compartilhadas de VCC e GND) no mesmo furo do conector de pinos do ESP32 não é fácil. Uma solução prática é usar uma placa breakout com bornes de parafuso para ESP32 — vários fios podem ser presos no mesmo borne de parafuso, ou um fio no parafuso e outro no pino do conector ao lado.

This image is created using Fritzing. Click to enlarge image
O módulo L9110S alimenta os motores diretamente pelos seus pinos VCC e GND e não possui um regulador de 5V embutido. Isso significa que você pode alimentar tudo a partir de uma única fonte de alimentação — quatro pilhas AA de 1,5V (totalizando 6V). Veja como fazer:
- Conecte a bateria de 6V aos pinos VCC e GND do módulo L9110S para alimentar os motores.
- Conecte a mesma bateria de 6V aos pinos Vin e GND da placa ESP32 para alimentar o ESP32 (o receptor IR é alimentado pelo pino 5V do ESP32).
- Certifique-se de que o módulo L9110S, a placa ESP32 e o receptor IR compartilhem um GND comum.
Ao contrário do L298N, o L9110S não tem jumpers de habilitação ENA/ENB nem borne de parafuso de 12V, então a ligação é mais simples.
Código ESP32
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
- Instale a biblioteca DIYables_IRcontroller na Arduino IDE seguindo esta instrução
- Faça a ligação conforme o diagrama mostrado acima.
- Desconecte o fio do pino Vin do ESP32, porque vamos alimentar o ESP32 pelo cabo USB durante o upload do código.
- Vire o carrinho de cabeça para baixo, de modo que as rodas fiquem para cima.
- Conecte a placa ESP32 ao seu PC por meio de um cabo USB Type-C
- Abra a Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (ex.: ESP32 Dev Module) e a porta COM.
- Copie o código fornecido e abra-o na Arduino IDE.
- Clique no botão Upload na Arduino IDE para transferir o código para o ESP32.
- Use o controle remoto IR para fazer o carrinho ir para frente, para trás, para a esquerda, para a direita ou parar.
- Verifique se as rodas se movem corretamente de acordo com os seus comandos.
- Se as rodas girarem para o lado errado, inverta os fios do motor DC no módulo L9110S.
- Você também pode ver os resultados no Serial Monitor da Arduino IDE.
- Se tudo estiver funcionando bem, desconecte o cabo USB do ESP32 e, em seguida, conecte o fio de volta ao pino Vin. Isso vai fornecer energia ao ESP32 a partir da bateria.
- Vire o carrinho de volta à posição normal, com as rodas no chão.
- Divirta-se controlando o carrinho!
Explicação do Código
Leia a explicação linha por linha nas linhas de comentário do código!
Você pode aprender mais sobre o código consultando os seguintes tutoriais:
- Tutorial ESP32 - Motor DC
Você pode ampliar este projeto:
- Adicionando sensores para desviar de obstáculos, que param o carrinho imediatamente se um obstáculo for detectado.
- Adicionando uma função para controlar a velocidade do carrinho (veja o tutorial ESP32 - Motor DC). O código fornecido controla o carrinho na velocidade máxima.