Font Size

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.

0.00 avg. rating (0% score) - 0 votes