AULA CARRO 2WD 02 Arduino e Ponte H

M2 – Montagem base Kit 2WD usando ponte H L298N , 1 bateria 9V e Arduino

Robótica – Montagem 02

Como montar o kit chassi 2WD com driver ponte H L298N e 1 bateria 9V

Objetivo

O objetivo deste tutorial é mostrar passo a passo a montagem do chassi do robô Arduino móvel de duas rodas 2WD com o driver ponte “H” L298N e uma única bateria 9V. Essa montagem básica deixará pronto o seu robô móvel 2WD para a elaboração de projetos com Arduino que permitam esse formato.

Obs.: O kit 2WD possui dois motores DC (3 a 6V) com caixa de redução (1:48) e são conectados independentemente em cada roda,  sobrando assim uma roda boba (universal) para dar sustentação ao chassi.

Referências

Antes de fazer a montagem do seu robô móvel 2WD usando o driver ponte H L298N, recomendamos que faça os seguintes projetos:

Aplicação

Para fins didáticos e projetos de robôs seguidores de linha, autônomos com sensores ultrassônico, movidos por controle remoto, smartphone, bluetooth, entre outros.

Componentes e ferramentas necessários

Referência

Componente

Quantidade

Imagem

Observação

Kit chassi 2WD montado Kit chassi 2WD para Arduino montado 1 Dimensões:
– Chassi: 21,2 x 15,2cm
– Roda: 7 x 7 x 2,6 cmMontagem:M1 – Montagem do kit chassi 2WD
Arduino UNO Arduino UNO R3 1 Você poderá utilizar uma placa Arduino UNO original ou similar
Driver Motor Ponte H L298N Módulo Driver Motor Ponte H L298N 1 – Tensão de Operação: 4~35v
– Tensão máxima de alimentação externa  7 – 35V
– Chip: ST L298N (datasheet)
– Controle de 2 motores DC ou 1 motor de passo
– Corrente de Operação máxima:2A por canal ou 4A max
– Tensão lógica: 5v
– Corrente lógica por entrada: 0~36mA
– Limites de Temperatura: -20 a +135°C
– Potência Máxima: 25W
Parafusos Parafusos M3 2 Rosca métrica 3mm

Comprimento: 12mm ou maior

Fenda ou Fenda Philips

Porcas Porcas M3 2 Rosca métrica 3mm
Amarrilho Aramado Revestido Amarrilho Aramado Revestido 80mm 2   Comprimento: 8cm ou menor

Obs.: Fecho de arame revestido, muito utilizado para o lacre de pacotes de pão de forma. Usar de qualquer cor.

Jumpers Kit cabos ligação macho / macho 1
Chave gangorra Chave gangorra 3A

(2 terminais)

1 Usar chave gangorra (corrente máxima 3A ou maior)

Opcional: Se desejar, você poderá fazer a ligação direta do robô móvel sem a opção de uma chave liga e desliga.

Chave Philips Chave Philips M3 1   Chave philips adequada para parafuso M3
Bateria 9V Bateria 9V recarregável 1 Utilize bateria 9V de preferência recarregável.
Suporte para bateria 9V Suporte para bateria 9V 1 Suporte para bateria 9V com plugue P4

Também poderá um case para suporte de bateria 9V (opcional)

Cabo USB para Arduino Cabo USB AB 30cm 1 Cabo USB para Arduino (min. 30cm)
Ferro de Solda Ferro de Solda com Solda de Estanho 1mm 1 Utilizar solda de estanho de 1mm de diâmetro ou menor
Pistola de cola quente Pistola de cola quente Potência Máxima: 40W

Diâmetro do bastão de cola: 11 ~ 12mm

Montagem do robô móvel 2WD base – L298N e 1 bateria 9V

1. Faça a montagem do chassi 2WD conforme tutorial: M1 – Montagem do kit chassi 2WD.

2. Com o chassi 2WD montado, vamos agora fixar a placa Arduino Uno. A fixação poderá ser com parafusos e porcas M3. Entretanto, se desejar, poderá fixar a placa Arduino com fita dupla face aplicada entre o acrílico e  placa.

2.1. Fixação da placa Arduino no chassi 2WD usando 2 parafusos M3:

2.2. Os parafusos devem ser fixados e travados com a utilização de 2 porcas M3:

Atenção: Cuidado para não apertar muito os parafusos evitando-se trincas no acrílico do chassi.

3. Para controlar a velocidade e o sentido de rotação dos 2 motores do robô vamos usar o driver driver motor ponte H – L298N.

3.1. Posicione o módulo ponte H L298 sobre o chassi do robô e fixe-o usando 2 fechos aramados (amarrilhos usados para fechar pacote de pão). Obs.: Se desejar, você poderá utilizar outros elementos de fixação, como fita dupla face ou parafusos.

3.2. Veja abaixo como fica o posicionamento da ponte H L298N no suporte do chassi 2WD.

4. Agora que já posicionamos a ponte H L298N sobre o suporte do chassi 2WD, podemos conectá-la aos motores CC.

4.1. Veja abaixo um esquema macro para a conexão dos motores A e B.

4.2. Por padronização, vamos fazer a montagem mantendo-se o cabo vermelho e o preto do motor conectado conforme imagem abaixo:

Obs.: Caso ocorra alguma inversão na polaridade de ligação, não se preocupe, pois podemos corrigir a conexão com o teste final.

4.3. Da mesma maneira, faça a conexão da ponte H com o motor A, como mostra a imagem abaixo:

5. Conecte usando jumpers a ponte H L298N com o Arduino. Isso executara a comunicação e o controle de velocidade dos motores CC (corrente contínua) montados no chassi 2WD.

5.1. Veja na imagem abaixo deve ficar o esquema de montagem do nosso exemplo:

5.2. Entendendo a conexão dos motores A e B:

Obs.: Para entender como controlar de motores CC com Arduino e ponte H L298N leia o artigo: I07 – Como controlar motores DC com o Driver Ponte H – L298N e Arduino

5.2.1. Abaixo a tabela com as identificações dos pinos a serem conectados ao Arduino:

driver ponte H L298N motor microcontrolador Aruino
IN1 A 8
IN2 A 7
IN3 B 5
IN4 B 4

5.2.2. Para fazer variar a velocidade dos eixos dos motores é necessário conectar os pinos ENA e ENB ao Arduino, conforme tabela abaixo:

Obs.: Se os jumpers Ativa MA e ativa MB do drive ponte H estiverem conectados, remova-os para você poder conectar os pinos abaixo:

Motor Entrada drive L298N Saída Arduino
A ENA 3
B ENB 6

5.2.2.1. Veja a imagem abaixo a posição dos pinos de controle de velocidade:

5.3. Veja na foto abaixo como deverá ficar o nosso robô móvel após a conexão do Arduino com o driver motor ponte H – L298N:

6. Antes de fazer as conexões com o Vcc e o GND do driver motor ponte H – L298N, precisaremos preparar os cabos de ligação da chave gangorra (chave liga e desliga).

Obs.1: A utilização da chave liga e desliga é opcional. Se desejar, o robô móvel poderá ser desligado diretamente no plugue da fonte de energia do Arduino.

Obs2.: No projeto, a chave liga e desliga ativa ou desativa a ponte H que controla os motores. Portanto, mesmo desligada a chave, a placa Arduino permanecerá ligada.

6.1. Corte as extremidades de dois jumpers macho-macho, sendo o primeiro com  80mm (mínimo) e o segundo com 160mm (mínimo). Os dois cabos deverão estar desencapados em uma das pontas, como mostra a imagem abaixo:

6.2. Depois de preparados, solde os dois cabos nos terminais da chave gangorra (chave liga e desliga):

6.2.3. A posição dos cabos não tem muita importância, pois a chave 2 terminais apenas interrompem a passagem da corrente elétrica no circuito. De preferência, para facilitar a montagem do circuito, solde o cabo maior no terminal que fica na posição “0” e o cabo menor no terminal que fica na posição “1” da chave liga e desliga.

7. Após o botão liga e desliga ser soldado,vamos agora fazer a conexão dos cabos Vcc e GND do driver ponte H, conforme figura abaixo:

7.1. Posicione a chave gangorra (chave liga-desliga) na base do chassi do robô móvel e conecte o cabo maior no GND do Arduino e o cabo menor no GND do driver móvel Ponte H – L298N. Depois, fixe a chave liga-desliga na parte de baixo base do robô com cola quente. Isto ajudará também a isolar os terminais do componente.

7.2. Conecte agora o cabo Vcc no pino +12V da ponte H – L298N e no pino Vin do Arduino:

7.2.1. Observe que usamos o pino Vin do Arduino como fonte de energia para os motores.  Isto é muito útil em protótipos de robótica, pois a mesma bateria poderá alimentar o Arduino e os motores de corrente contínua através do driver ponte H.

8. Finalmente, vamos conectar a bateria de 9V no nosso robô móvel. Para isso, utilizamos um suporte para bateria com um plugue tipo P4 (Jack).

Atenção: A tensão de alimentação feita através do conector Jack deverá estar entre os limites de 7 a 12V. Abaixo de 7V a tensão de funcionamento da placa Arduino poderá ficar instável e acima de 12V o regulador de tensão integrado da placa poderá sobreaquecer.

8.1. Fixe a bateria com fita dupla face ou cola quente na parte inferior do chassi do robô móvel.

8.2. O plugue P4 da fonte de energia deve ficar posicionado de forma que você poderá conectá-lo no Arduino posteriormente.

Testando o robô móvel – Chassi 2WD (1 bateria 9V)

Agora que já temos o nosso robô móvel montado, vamos fazer os testes de funcionamento. Para isso, vamos conectar a placa Arduino do robô no computador usando o cabo USB. A bateria 9V nesse momento poderá permanecer desconectada.

Teste 01 – Robô móvel rodando para frente

No primeiro teste vamos fazer o robô se mover para frente. O robô deverá se movimentar para frente, conforme a imagem anterior, parando 500ms a cada 2 segundos.

Usando o cabo USB, conecte o Arduino do robô móvel no computador para fazer o upload do scketch abaixo:

/*******************************************************************************

     Teste 1 - Teste do robô móvel - andando para frente
     Autor: Angelo Luis Ferreira
     Data: 01/11/2022
             http://squids.com.br/arduino

*******************************************************************************/
//motor A
const byte IN1 = 8 ;
const byte IN2 = 7 ;

//motor B
const byte IN3 = 5;
const byte IN4 = 4;

//pinos utilizados para controlar a velocidade de rotacao
const int ENA = 6; 
const int ENB = 3;
 
void setup(){
 // configuração dos pinos como saída do Arduino
 pinMode(IN1,OUTPUT); // motor A
 pinMode(IN2,OUTPUT); // motor A
 pinMode(IN3,OUTPUT); // motor B
 pinMode(IN4,OUTPUT); // motor B
 pinMode(ENA,OUTPUT); // controle velocidade motor A
 pinMode(ENB,OUTPUT); // controle velocidade motor B

 // inicia com os motores desligados
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,LOW);
 digitalWrite(IN3, LOW);
 digitalWrite(IN4,LOW);

 // incia com velocidade 0
 digitalWrite(ENA, LOW);
 digitalWrite(ENB,LOW); 
}
 
void loop() {
  forward();      // ir para frente
  delay(2000);    // aguarde 500ms
  stopCar();      // parar robô
  delay(500);     // aguarde 100 ms
}

 // forward - robô anda para frente
 void forward() {
  // 1-0-1-0 - configura o mesmo sentido de rotaçao para os dois motores (frente)
   digitalWrite(IN1,HIGH);
   digitalWrite(IN2,LOW);
   digitalWrite(IN3, HIGH);
   digitalWrite(IN4,LOW);   
  
   // define velocidade do robô
    analogWrite(ENA, 80);
    analogWrite(ENB, 80);
 }

 // 0-0-0-0 - stopCar - parar robô
 void stopCar() {
  // motores desligados
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4,LOW);
 }

Depois de subir o skecth no IDE, desconecte o cabo USB do Arduino do robô e do computador. Conecte o cabo da bateria (Plugue P4) no Arduino.

Para iniciar o teste, acione o botão (chave liga-desliga) para iniciar o movimento do robô. Veja o vídeo abaixo:

Observações:

1. Verifique se as duas rodas estão girando no mesmo sentido. O robô deverá estar se movimentando para frente.

1.1. Caso as rodas esteja girando em sentidos opostos ou o robô esteja se movendo para trás, inverta a polaridade na conexão dos motores com o drive ponte H.

1.2. Repita o teste novamente, onde o robô móvel deverá se movimentar para frente.

2. Em função da construção do chassi 2WD, montagem das rodas, balanceamento e da carga da bateria, é bem difícil fazer o robô móvel se movimentar perfeitamente em linha reta. Entretanto, isto não afetará nos projetos que podem ser aplicados a este robô com chassi 2WD. Porém, podemos melhorar um pouco este alinhamento, alterando no programa (sketch) o valor da velocidade de um dos motores, a fim de manter as rodas do robô girando na mesma velocidade real.

2.1. Se o carrinho tende a girar para a direita, significa que o motor B esta girando, de modo real, um pouco mais que o motor A. Portanto, podemos reduzir um pouco a velocidade (teórica) do motor B no programa. Isso deve ser feito de forma experimental até encontrar o melhor valor. Mesmo assim, dificilmente o robô móvel irá manter um alinhamento perfeito. Veja o exemplo abaixo:

2.2. O mesmo deve ser feito se o robô móvel tender para a esquerda. Desta forma, reduza o valor do motor A.

3. Com o robô móvel se movimentando para frente, podemos ir para o próximo teste a seguir.

Teste 02 – Robô móvel rodando para frente e para trás

Neste teste vamos fazer o robô móvel se movimentar para frente durante 2 segundos, para por 500ms e se movimenta para trás por 2 minutos, sucessivamente,

Da mesma forma que no primeiro teste, use o cabo USB para conectar o Arduino do robô móvel no computador para fazer o upload do scketch abaixo:

/*******************************************************************************

     Teste 2 - Teste do robô móvel - rodando para frente e para trás
     Autor: Angelo Luis Ferreira
     Data: 05/11/2022
             http://squids.com.br/arduino

*******************************************************************************/
//motor A
const byte IN1 = 8 ;
const byte IN2 = 7 ;

//motor B
const byte IN3 = 5;
const byte IN4 = 4;

//pinos utilizados para controlar a velocidade de rotacao
const int ENA = 6; 
const int ENB = 3;
 
void setup(){
 // configuração dos pinos como saída do Arduino
 pinMode(IN1,OUTPUT); // motor A
 pinMode(IN2,OUTPUT); // motor A
 pinMode(IN3,OUTPUT); // motor B
 pinMode(IN4,OUTPUT); // motor B
 pinMode(ENA,OUTPUT); // controle velocidade motor A
 pinMode(ENB,OUTPUT); // controle velocidade motor B

 // inicia com os motores desligados
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,LOW);
 digitalWrite(IN3, LOW);
 digitalWrite(IN4,LOW);

 // incia com velocidade 0
 digitalWrite(ENA, LOW);
 digitalWrite(ENB,LOW); 
}
 
void loop() {
  forward();    // ir para frente
  delay(2000);   // aguarde 500ms
  stopCar();    // parar robô
  delay(100);   // aguarde 100 ms
  back();       // ir para trás
  delay(2000);   // aguarde 500ms
 }

 // forward - robô anda para frente
 void forward() {
  // 1-0-1-0 - configura o mesmo sentido de rotaçao para os dois motores (frente)
   digitalWrite(IN1,HIGH);
   digitalWrite(IN2,LOW);
   digitalWrite(IN3, HIGH);
   digitalWrite(IN4,LOW);
  
   // velocidade do robô
    analogWrite(ENA, 80);
    analogWrite(ENB, 80);
 }

 // stopCar - parar robô
 void stopCar() {
  // 0-0-0-0 - motores desligados
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4,LOW);
 }

  // back - robô anda para trás
 void back() {
  // 0-1-0-1 - configura o mesmo sentido de rotaçao para os dois motores (para trás)
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4,HIGH);
  
   // velocidade do robô
   analogWrite(ENA, 80);
   analogWrite(ENB, 80);
 }

Desconecte o cabo USB do Arduino do robô móvel e do computador. Conecte o cabo da bateria (Plugue P4) no Arduino.

 

IMAGENS