Um dos projetos mais
ambiciosos para se fazer com Arduino é a construção de um carro robô, para mim foi que me incentivou a estudar mais sobre o Arduino, na internet é possível encontrar diversas formas de construir um, seja um seguidor de linha, de 2 rodas ou um totalmente autônomo e etc..., são infinitas possibilidades de montagem e existe muitos projetos já prontos, porem muitos não era da forma que eu queria, o funcionamento não era tão eficaz ou possuía uma programação muito complicada, e depois de muita
pesquisa, quebrar cabeça diversas vezes e conseguir no final das contas montar um da forma que eu queria e com isso decidi mostrar em forma de um artigo como construir um. Chassis 4WDComponents and supplies
Necessary tools and machines
Apps and online services
About this project
Code
Schematics
Arduino Mega
Motor Drive
Bluetooth HC-05
LEDs
Ligação
Aplicativo Bluetooth RC CAR
Iniciando O Carro
- Introdução
- Montagem do Chassi
- Montagem dos Componentes
- Fazendo a Conexão do Bluetooth
- Conectando o Bluetooth
- Sobre o Autor
Projetos
Eletrogate 10 de janeiro de 2020Atualizado em: 15 set 20229 min
Montagem do Chassi
Se você não comprou os componentes separados, e optou por comprar um kit chassi 2WD como esse (link), você se deparou com esses componentes:
O primeiro passo que faremos será soldar fios aos terminais do motor. Para isso, vamos soltar o motor de sua caixa de redução, removendo a alça que une os dois. Após isso, retire-o e faça a ligação de fios aos terminais do motor com solda, e também, é recomendado passar um pouco de cola quente em cima da solda para evitar algum curto ou contato indesejado.
Essas peças auxiliares são, na verdade, suportes que prendem o motor ao carrinho. Colocaremos ele da seguinte forma:
1° – Encaixe dois suportes às fendas internas.
2° – Coloque o motor com seus furos alinhados ao furo do suporte.
3° – Encaixe o suporte externo com os furos alinhados e parafuse com a porca.
É interessante observar que devemos colocar o eixo do motor virado para a extremidade do chassi onde tem um círculo vazado no acrílico. Fazendo para os dois lados, e encaixando a roda no eixo do motor, o resultado obtido deverá ser este:
O próximo passo será a instalação da roda boba, e para isso precisaremos das seguintes peças:
Começaremos parafusando o extensor à roda boba, e depois parafusando o extensor ao chassi do carrinho, da seguinte forma:
E colocamos também o disco encoder na roda. Porém, neste tutorial ele não terá utilidade, então fica a critério do leitor usar ou não. Com isso, quase concluímos a montagem do chassi. Só falta, para concluir, instalar a chave on/off no fio de alimentação do suporte de pilhas: com isso iremos poder ligar e desligar o carrinho de maneira mais prática. É altamente recomendado passar cola quente nos terminais soldados, para evitar o curto entre os terminais e também poder ter maior resistência mecânica em caso de uma tração acidental.
Montagem dos Componentes
Para fazer o acionamento dos motores, precisaremos de algo que consiga fornecer energia o suficiente para isso, e que possa ser controlado. Para isso iremos usar um driver ponte H L298N. A principal vantagem de se usar um módulo destes é que ele permite que a gente possa controlar o motor nas duas direções.
O módulo ponte H usado é desta forma:
Imagem retirada do site da Sala Maker
Onde iremos, inicialmente, fazer as conexões dos motores A e B. A priori não precisamos preocupar com qual fio vai em qual motor, basta afrouxar o parafuso do borne, conectar o fio e apertar o parafuso. A montagem ficou da seguinte forma:
Perceba que que há um parafuso no módulo ponte H. Esse parafuso está ligado com uma arruela ao chassi, isso fará com que possamos dispensar o uso de colas e o deixar bem fixo. Com a ponte H instalada e os motores conectados, faremos a instalação do suporte de pilhas. Colocamos uma dupla face nas costas do suporte e então ele foi fixado na parte debaixo do chassi, da seguinte forma:
Iremos conectar os fios de alimentação na ponte H. Vamos colocar o fio vermelho, que sai do suporte de pilhas, no borne VCC do módulo ponte H, e o preto do suporte de pilhas no borne de GND. Para consultar essas informações, basta ver a imagem da ponte H um pouco mais acima, neste post. Para ajudar, ainda nesta etapa das conexões, é recomendado colocar um jumper (fio) dentro do borne de GND, junto com o fio preto do suporte de energia. A ligação ficou assim:
Esse jumper é para ser usado futuramente, sendo colocado na porta GND do Arduino. Agora só está faltando uma bateria, para fornecer energia ao Arduino. Essa alimentação separada foi escolhida porque as 4 pilhas possuem uma disponibilidade de corrente elétrica um pouco baixa, e ligando todo o circuito no suporte, ele não consegue fornecer energia, e os motores acabam ficando parado.
Colocamos uma fita dupla face na bateria também, e instalamos ela exatamente embaixo (no chassi) do módulo ponte H. O resultado foi este:
Então até o momento nosso carrinho está assim, certo? Se não, revise alguns passos anteriores:
Para melhorar um pouco a estética e facilitar o uso, instalamos a chave on/off bem na frente do carrinho, e colamos com cola quente. Para isso precisamos estender um pouco mais o fio.
Então, agora, para termos um carrinho já funcional só falta colocar na montagem a placa do Arduino e fazer corretamente as ligações. A conexão com o Arduino pode ser feita da seguinte forma:
Colocando a placa na parte central. As conexões da ponte H com o Arduino serão feitas da seguinte forma:
Observações:
- É extremamente importante que os GND estejam ligados juntos, isso significa que temos que ligar o GND da ponte H com o GND do Arduino. (Estamos fazendo isso com o jumper que foi colocado junto com o GND da bateria no borne da ponte H. Esse GND foi ligado na porta GND do arduino).
- Ao colocar o cabo USB para carregar o programa ou monitorar algo, remova a alimentação da bateria de 9V.
Fazendo a Conexão do Bluetooth
Usaremos o módulo Bluetooth HC-06 para fazer a conexão com o celular. A montagem final, com o Bluetooth será dessa forma:
Foi feito um divisor resistivo para reduzir a tensão no pino RX do módulo Bluetooth, porque ele só aceita 3,3V. Então, estamos usando um resistor de 10K e outro de 22K, o que vai fazer ter aproximadamente 3V, mas ainda na margem de funcionamento.
Foi colocado um LED de indicação, para que quando o Bluetooth estiver conectado, podermos ter uma indicação visual de que está tudo funcionando. Para o LED, pode ser usado um resistor de 330R e ele pode ser de qualquer cor.
A montagem final ficou assim:
O código utilizado no arduino
#define in1 6 // Entrada do motor 1 #define in2 5 // Entrada do motor 1 #define in3 11 // Entrada do motor 2 #define in4 10 // Entrada do motor 2 int dataIn[5] {0,0,0,0}; // Vetor dos dados completos que receberemos do aplicativo int in_byte = 0; // A informação em bytes que estamos recebendo a cada momento do aplicativo int array_index = 0; // Indice do vetor int X, Y, button, velMotor; // As coordenadas em X, Y, o botão (que não estamos usando ainda) e a variavel de velocidade unsigned long time1; // Variavel auxiliar para guardar tempo void setup() { Serial.begin(9600); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(2, OUTPUT); // Definindo o pino do led } void loop() { if (Serial.available() > 0) { // Verificando se há dados para receber do bluetooth. time1 = millis(); // A variavel time1 salva o tempo em que o bluetooth enviou dados da ultima vez digitalWrite(2, HIGH); // ativa o led de indicação que a conexão está ativa in_byte = Serial.read(); // Recebendo um byte do app if (in_byte == (255)) // Verifica se é o byte de encerramento do dado array_index = 0; dataIn[array_index] = in_byte; //Salvando o dado no vetor de indices array_index = array_index +1; } else{ if((millis() - time1)>500) // Compara se passaram mais que 0,5s desde a ultima vez que o bluetooth estava disponivel digitalWrite(2, LOW); // Se passou, significa que a conexão foi perdida, e o LED desliga } X = dataIn[2]-124; // Calculando o valor do eixo X do Joystick Y = 124-dataIn[3]; //Calculando o valor do eixo X do Joystick button = dataIn[1]; // Recebe o estado do botão, mas não usaremos velMotor = Y*2; // Calculo da velocidade do motor para fazer o acionamento PWM //----------- Para frente ---------------// if((Y>1)){ // Carrinho para frente analogWrite(in1, velMotor); digitalWrite(in2, LOW); analogWrite(in3, velMotor); digitalWrite(in4, LOW); } //--------------------------------------// //----------- Para tras ---------------// else if (Y<(-1)){ // Carrinho para trás analogWrite(in2, -1*velMotor); digitalWrite(in1, LOW); analogWrite(in4, -1*velMotor); digitalWrite(in3, LOW); } //-------------------------------------------// // ------------ Carrinho parado -------------// else { digitalWrite(in1, LOW); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, LOW); } //---------------------------------------// //------------- Para os lados --------------// if(X < -34 ){ // Limite para começar a virar para a esquerda digitalWrite(in1, LOW); digitalWrite(in2, LOW); } else if (X > 34){ // Limite para começar a virar para a direita. digitalWrite(in3, LOW); digitalWrite(in4, LOW); } }Conectando o Bluetooth
Para fazer a conexão com o celular, criamos um aplicativo Android e disponibilizamos ele para ser instalado em celulares Android, e servirá como controle remoto para o carrinho. Para baixar o aplicativo, clique aqui.
Com o aplicativo baixado, clique no arquivo joystick_app2.apk e uma tela similar a esta abaixo pode ser que apareça. Se caso não aparecer, pode seguir a instalação normalmente.
Se aparecer, vá na opção “Configurações” e deixe selecionado “Permitir desta fonte”, e pode voltar.
Voltando, uma tela similar como a mostrada abaixo deverá aparecer, e você deverá apertar em “Instalar”. Caso se não aparecer, abra o arquivo joystick_app2.apk novamente e aperte em instalar.
Com o aplicativo instalado, ligue o bluetooth do seu smartphone, volte ao aplicativo e aperte em “conectar”. Ligue também o alimentação do arduino na bateria de 9V.
Os LEDs do Arduino e do Bluetooth devem ligar nesse momento. (Ainda não é necessário apertar a chave gangorra que instalamos para energizar a ponte H com as 4 pilhas, só ligue depois que a conexão Bluetooth estiver estabelecida).
Conecte ao Bluetooth que tem HC-06 no final.
Observe que mostrará que está conectado ao carrinho, e o LED de indicação, do carrinho, se ligará. Agora basta só mexer o círculo azul para frente e para trás que o seu carrinho irá mexer.
Os comandos funcionam da seguinte forma:
Para frente indica aceleração do carrinho, e os lados indicam a direção de rotação. Se o comando do aplicativo não funcionam como deveria, por exemplo: O comando de ir pra frente faz o carrinho girar, ou ir para trás. Uma maneira fácil de solucionar é inverter os fios do motor com comportamento estranho no módulo Ponte H.
Boa diversão!
Se gostar ou tiver alguma dúvida, deixe um comentário!
Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!
Sobre o Autor
| |||
Cursando Engenharia de Controle e Automação pela UFMG. Apaixonado por eletrônica, computação e tecnologias na área de sistemas embarcados. Nos tempos livres me divido entre desenvolver pesquisa na universidade, adquirir novos conhecimentos e estar com a família. |
Eletrogate
10 de janeiro de 2020 Atualizado em: 15 set 2022
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.