Olá, craques da robótica! Estão prontos para tirar do papel aquele projeto de um robô seguidor de linha rápida e inteligente? Nesta nova série de artigos, vamos construir juntos, passo a passo, um competidor de respeito usando um ESP32 e um sensor de 8 canais. E para começar com o pé direito, vamos focar na parte mais importante: o movimento! Prepare a bancada que hoje vamos dominar a ponte H L298N e faça esses motores girarem!
Lista de Materiais
O Coração do Movimento: Apresentando a Ponte H L298N
Imagine que o seu ESP32 é o cérebro do robô: ele é super inteligente, mas não tem muita força. Ele pode enviar sinais elétricos minúsculos, como um sussurro. Já os motores DC são os músculos: eles precisam de muita energia para mover o robô, um verdadeiro grito de potência!
Vamos, então, conhecer um pouco das conexões presentes nela,
Figura 1 – Conexões do módulo ponte H.
Este é um módulo ponte H. Módulos são pequenas placas que facilitam nossa interação com os circuitos. Com ele, podemos usar até 2 motores e controlar o sentido de rotação (horário e anti-horário) e a velocidade, por meio de suas entradas.
Figura 2 – Conhecendo as entradas do módulo ponte H.
Muitas pessoas usam todas as entradas do módulo, mas, neste projeto, vamos conectar as entradas que controlam um sentido de rotação (como 1 e 4) aos pinos do ESP32, e as outras (2 e 3 diretamente ao GND. Isso diminui a quantidade de fios conectados ao ESP32 e evita uma grande bagunça!
Assim, a nossa conexão final entre o módulo ponte H e o nosso super ESP32 fica da seguinte forma:
Figura 3 – Conexões do ESP32 com o módulo ponte H.
Tabela 1 – Conexões do ESP32 com o módulo ponte H.
O nosso “músculo” (o módulo ponte H) faz mais do que apenas movimentar o robô. Ele também pode alimentar o ESP32 com a tensão correta (5V), o que nos permite usar baterias de diferentes voltagens para os motores.
Tabela 2 – Conexões do módulo ponte H com a bateria.
Utilize baterias como as de 9V ou as de lítio, pois elas possuem uma boa capacidade de corrente. Um circuito bem alimentado é um circuito feliz!
Hora de programar: Ensinando o carrinho a andar
Prontos para fazer nosso robô sair andando pela casa? Então vamos analisar passo a passo como movimentar nosso carrinho com esse código para IDE do Arduino.
// Pinos de controle dos Motores com #define
#define MOTOR_A 26 // Motor Esquerdo
#define MOTOR_B 25 // Motor Direito
void setup() {}
void loop() {
// Liga os motores
digitalWrite(MOTOR_A, HIGH);
digitalWrite(MOTOR_B, HIGH);
}
Você já utilizou a diretiva #define? (…) Antes da compilação, ela substitui os nomes “MOTOR_A” e “MOTOR_B” em todo o código pelos seus valores correspondentes, 26 e 25. É uma prática elegante e considerada de bom nível na programação.
Vamos ver como é a “sintaxe”, ou seja, a forma correta de escrever este comando:
| #define NOME_VARIAVEL número |
Assim, você aprende a criar suas próprias variáveis e se torna um programador supimpa.
Em seguida nós temos a área onde normalmente indicamos o “estado dos pinos”, se ele é uma entrada ou saída … mas ele está vazio em nosso código. Você sabe por quê?
| void setup() {} |
A Arduino IDE trouxe muitas facilidades para os programadores de robôs. E entre elas, muitas funções que fazem parte do trabalho para a gente. Como as funções “digitalWrite”. Que querem dizer algo como “Ei, esses pinos que estou utilizando são pinos de Saída”. Então nosso robô com seu cérebro (ESP32), entende que ele é um Pino de uma atuador: Motores, LEDs, etc.
| digitalWrite(MOTOR_A, HIGH); |
Isso, combinado ao “void loop”, nossa função que fica executando o código principal infinitamente, faz nosso carrinho andar… Infinitamente! Ao menos, até a bateria acabar.
| void loop() {
// Liga os motores digitalWrite(MOTOR_A, HIGH); digitalWrite(MOTOR_B, HIGH); } |
Agora vamos entender como nossos motores irão agir, dependendo da entrada lógica que usamos.
Tabela 3 – Entrada lógica e funcionamento dos motores.
Então, se nossos motores estiverem em HIGH, sabemos que eles irão rotacionar para frente. Se um deles estiver em HIGH e o outro em LOW, nosso robô faz uma curva, para esquerda ou para direita.
E por hoje é só! Na segunda parte do nosso artigo, vamos entender como o sensor funciona e como o integramos ao nosso projeto.
