O Carrinho Arduino de Eixo Móvel é um projeto que se diferencia dos demais que já vimos, pois possibilita o ajuste preciso dos movimentos através de um Servo Motor, possibilitando curvas mais leves ou curvas bem acentuadas.
O eixo móvel instalado na parte da frente do carrinho possui um sistema de controle de ângulo através do Servo Motor que possibilita curvas mais precisas e um sistema diferenciado de funcionamento.
Para o projeto original normalmente é indicada a utilização de uma tração 4WD, porém para o projeto de hoje irei utilizar um sistema de tração apenas nas rodas da frente, diminuindo a complexidade do projeto e possibilitando sua utilização com apenas um Driver Ponte H para Motor DC.
Alimentação do Carrinho Arduino de Eixo Móvel
A alimentação de um projeto é um ponto muito importante quando desenvolvemos algo do zero, podemos utilizar pilhas e baterias dos mais diversificados modelos e em alguns casos é possível realizar projetos que sejam diretamente conectados à tomada.
Para um carrinho, a mobilidade e liberdade de movimento são pontos cruciais, então é importante associarmos o mesmo a uma bateria ou pilha, ou ambos, assim como no projeto que desenvolvi a baixo:
Carrinho Arduino Controlado através de Bluetooth e Sistema Android!
No projeto anterior, foram utilizadas 4 pilhas AA para a alimentação dos motores e uma Bateria 9V para a alimentação do Arduino, já neste projeto, para agregar maior qualidade ao projeto iremos incluir Bateria 18650 para alimentar os motores e continuaremos utilizando uma Bateria 9V para alimentar o Arduino.
Por que utilizar a Bateria 18650?
Para o desenvolvimento de um projeto é importante considerarmos todas as possibilidade e termos um conhecimento básico de cada opção para podermos explorar as suas máximas capacidade. A Bateria 18650, por exemplo, é amplamente utilizada devido a sua corrente elevada que agrega ao projeto tempo e potência de funcionamento.
Além disto, outro fator muito importante destas baterias é o fato de serem recarregáveis, ou seja, diferente da maioria das pilhas e baterias podem ser reutilizadas quando chegar a sua carga mínima, através de um carregador específico.
Uma Bateria 18650 não é Suficiente?
No início, realmente tentei desenvolver o projeto com apenas uma Bateria 18650, porém encontrei muita instabilidade quando o assunto era manter o funcionamento do Arduino e dar conta das correntes de pico geradas pelo acionamento dos motores.
Depois de alguns testes não teve jeito, o melhor realmente foi incluir uma fonte de alimentação separada através do conector P4, onde foi optado pela bateria 9V, evitando reguladores de tensão e diminuindo os custos do projeto, uma vez que a principal desvantagem da Baterias 18650 é seu custo elevado.
A alimentação do Carrinho Arduino de eixo móvel por fim ficou constituída de uma bateria 18650 e uma bateria 9V, funcionando independentemente, uma para a alimentação dos motores e outra para a alimentação do Arduino.
Se analisarmos a tensão de funcionamento da Bateria 18650 veremos que a sua tensão de funcionamento é de apenas 3,7V, uma tensão insuficiente para alimentar nossos dispositivos, por isto devemos adicionar um regulador de Tensão Step Up, para subir o valor até os 5V necessários.
A alimentação dos motores é um ponto crucial no desenvolvimento de projetos, por isto foi utilizada uma fonte de alimentação isolada apenas para isto, isolamento o qual auxiliou no funcionamento do Arduino e dos motores.
Mecânica dos Motores
A mecânica dos motores no projeto foi algo que recebeu bastante atenção antes mesmo de iniciar o Projeto Carrinho Arduino com Eixo Móvel, pois se tinha a preocupação de reduzir-se os gastas e simplificar o mesmo como um todo.
Sistema de controle do Eixo Móvel
O sistema de controle do Eixo Móvel fica a cargo do Micro Servo Motor SG90, que controle as direções esquerda e direita do nosso Carrinho Arduino, porém este sistema precisa ser “calibrado”, digamos assim, para não apresentar problemas em seu funcionamento.
Para calibrar o Servo, precisamos utilizar um código específico no Arduino, então antes mesmo de posicionarmos o direcionador MDF sobre o servo, como vemos acima, utilizamos o código abaixo para fixarmos sua posição ao centro, que nos meus testes ficou em entre 95º e 100º.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <Servo.h> Servo meuservo; int angulo; void setup() { meuservo.attach(5); // Servo conectado ao pino D5 } void loop() { meuservo.write(95); // Posiciona o servo em 95º delay(15); } |
Após posicionar o Servo neste ângulo, chegou a hora de posicionar a haste do direcionador de modo que fiquem no centro da chapa superior de MDF do nosso Carrinho Arduino, como vemos abaixo:
Após delimitar o centro, procurei obter os ângulos extremos para a movimentação dos motores em cada uma das direções, basicamente o procedimento foi feito através do método de tentativa e erro com o mesmo código mencionado anteriormente.
Para auxílio, posicionei manualmente os motores em seus extremos e utilizei um transferidor de grau para ter uma ideia mais direta do ângulo formado entre o ponto de origem e o ponto final. Por fim obtive valores de 75º e 135º para as extremidades.
Sistema de Controle dos Motores DC
Os Motores DC são controlados pelo Driver Duplo Ponte H, ou seja, nos possibilita controlar apenas dois motores simultaneamente, um problema para este projeto que possui um sistema de tração 4WD, seria necessária a inclusão de dois drives em um espaço que já é reduzido e encareceria ainda mais o projeto final.
Para solucionar este empasse e transformarmos o projeto original de 4WD em 2WD, desmontamos os Motores DC traseiros deixando apenas com as Caixas de Redução para deram suporte à instalação das rodas.
Ao removermos os motores de trás, a roda fica com um movimento extremamente leve, dando apoio à tração frontal e não necessitando mais de um Driver para controle de seus movimentos.
A tração dianteira utilizada em nosso Carrinho Arduino com Eixo Móvel é a mesma utilizada popularmente entre os veículos disponíveis no mercado atualmente, uma vez que também possui uma nítida vantagem de ser uma opção mais econômica e compacta.
A tração dianteira em nosso Carrinho Arduino é um pouco menos eficaz do que nos carros tradicionais devido a falta de um peso adicional, porém o projeto possui uma mobilidade bastante precisa.
Instalar os motores junto ao eixo móvel é um desafio, mas é ainda a melhor opção, um desafio principalmente pelo fato de que os fios do motor precisam ter um tamanho maior que assegurem a sua mobilidade, sem causar interferências.
Preciso ter algum cuidado para instalar os motores do Eixo Móvel?
A soldagem dos fios no motor pode se tornar bastante frágil com o movimento latitudinal causado pelo eixo móvel, recomendo reforçar com um pouco de silicone ou cola quente e trançar os fios para impedir que o movimento o desloque para fora da estrutura.
Ao final, a frente do Carrinho Arduino com Eixo Móvel ficará responsável por todos os movimentos do mesmo, tanto pelo direcionamento das rodas para esquerda e direita quanto ao próprio movimento.
Produtos Utilizados no Carrinho Arduino de Eixo Móvel
Segue abaixo, lista de todos os produtos utilizados para o desenvolvimento do projeto:
– Carrinho Arduino MDF / Carro Robô 4WD 200RPM com Micro Servo Motor e Eixo Móvel
– Placa Uno R3 Arduino + Cabo USB
– Driver Duplo Ponte H de motor DC ou Passo L9110s
– Regulador de Tensão Ajustável MT3608 Auto Boost Step Up – 2,5V a 28V
– Bateria 18650 Li-Ion Recarregável 3.7V 3800mAh Button-top
– Suporte para Bateria 18650 Li-ion – 1 Slot
– Suporte para Bateria 9V com Tampa + Botão ON/OFF e Plug P4
– Módulo Bluetooth HC-05 Arduino – Master/Slave
– Parafuso Philips M3 x 6mm Metálico – Kit com 10 unidades
– Parafuso Plástico em Nylon M3 x 5mm Phillips (Branco)
– Espaçador Plástico Sextavado em Nylon M3 x 6mm PCB – Fêmea x Fêmea
Esquema de Ligação do Carrinho Arduino de Eixo Móvel
O esquema de ligação do Carrinho Arduino de Eixo Móvel é extremamente simples quando comparado a muitos códigos que já desenvolvemos, o sistema de alimentação já mencionado antes, mas só recapitulando: 1 Bateria 9V que não aparece na imagem alimenta o Arduino e uma Bateria 18650 alimenta os motores.
Conseguimos observar através da imagem acima que existe um fio negativo que sai do regulador e se conecta ao GND do Arduino, ele é responsável por estabelecer o que chamamos de GND Comum, um elemento de alimentação em comum entre sistemas associados que regulariza seus funcionamentos.
Além disto, as demais ligações são de simples compreensão e instalação, a maior dificuldade realmente acaba sendo a realocação dos fios e componentes na parte interna do Carrinho Arduino.
Código de Funcionamento do Carrinho Arduino
O código utilizado no projeto é um exemplo simples que não utiliza todo o potencial do aplicativo Bluetooth RC Controller, pois apenas controla as direções e algumas velocidades possíveis utilizando o app. Para utilizar mais componentes, como LEDs para simbolizar os faróis e um buzzer para buzina, basta incrementar no código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
#include <Servo.h> #define SERVO 11 // Definir Servo no pino 11 Servo meuservo; // Define os pinos de utilização do Driver L298. const int motorA1 = 5; const int motorA2 = 9; const int motorB1 = 6; const int motorB2 = 10; // Variáveis int estado; int vSpeed = 200; // Define velocidade padrão 0 < x < 255 void setup() { // Inicializa as portas como entrada e saída. pinMode(motorA1, OUTPUT); pinMode(motorA2, OUTPUT); pinMode(motorB1, OUTPUT); pinMode(motorB2, OUTPUT); Serial.begin(9600); meuservo.attach(SERVO); } void loop() { // Armazene os dados na variável 'estado'. if(Serial.available() > 0){ estado = Serial.read(); } //Altere a velocidade, pode-se variar de 0 a 4. Os valores devem ser de 0 a 255 (PWM) if (estado == '0'){ vSpeed=0;} else if (estado == '1'){ vSpeed=100;} else if (estado == '2'){ vSpeed=180;} else if (estado == '3'){ vSpeed=200;} else if (estado == '4'){ vSpeed=255;} //Para frente //Se o estado for igual à letra 'F', o carro vai para a frente if (estado == 'F'){ analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0); analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0); meuservo.write(105); } //Frente, Esquerda //Se o estado for igual à letra 'G', o carro seguirá para a esquerda else if (estado == 'G'){ analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0); analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0); meuservo.write(115); } //Frente, Direita //Se o estado for igual à letra 'I', o carro seguirá para a direita else if (estado == 'I'){ analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0); analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0); meuservo.write(75); } //Para trás //Se o estado for igual à letra 'B', o carro vai andar para trás else if (estado == 'B'){ analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed); analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed); meuservo.write(105); } //Para trás à direita //Se o estado for igual à letra 'H', o carro vai voltar para a esquerda else if (estado == 'H'){ analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed); analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed); meuservo.write(115); } //Para trás à direita //Se o estado for igual à letra 'J', o carro irá andar de ré para a direita else if (estado == 'J'){ analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed); analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed); meuservo.write(75); } //Esquerda //Se o estado for igual à letra 'L', as rodas virarão à esquerda else if (estado == 'L'){ analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0); analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0); meuservo.write(160); } //Direita //Se o estado for igual à letra 'R', as rodas irão virar à direita else if (estado == 'R'){ analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0); analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0); meuservo.write(60); } //Pare //Se o estado for igual à letra 'S', pare o carro else if (estado == 'S'){ analogWrite(motorA1, 0); analogWrite(motorA2, 0); analogWrite(motorB1, 0); analogWrite(motorB2, 0); meuservo.write(105); } } |
Logo de saída temos uma informação muito importa que sem ela você não pode dar continuidade à utilização do seu produto, com o intuito de auxiliar o controlador e aumentar ainda mais a segurança de seu equipamento o módulo bluetooth possui uma senha que pode ser facilmente alterada através de um uma programação adequada, mas que como padrão é 1234.
Desenvolvido com um sistema de interação total para o controle de carrinhos, o “Bluetooth RC Controller” é capaz de executar algumas funções extremamente simples, mas que fazem a total diferença quando pensando no projeto como um todo.
Além dos comandos direcionais, o Carrinho Arduino em conjunto com o referente aplicativo pode acessar o acelerômetro de seu celular para se movimentar através de variações no espaço, ou seja, uma leve inclinação do celular pode determinar qual direção o carrinho irá tomar.
Para melhor entender cada função e identificar como encontrar cada uma delas, observe a figura a baixo com a indicação de cada comando possível pelo aplicativo utilizado em nosso projeto, lembrando eu para nosso projeto, utilizamos somente o comando da buzina e setas de movimento.
Ao entrar em Opções, você irá encontrar quatro funções utilizadas para realizar a configuração e a conexão de seu aplicativo junto ao módulo Bluetooth instalado em seu projeto, veja em detalhes as quatro funções:
- Connert: Auxilia na conexão do seu smartphone junto ao seu carrinho através de comunicação bluetooth.
- Accelerometer: Altera o modo de controle para o sistema automático sensível ao movimento, ou seja, conecta o seu aplicativo ao acelerômetro de seu celular e torna possível esta incrível funcionalidade.
- Settings: Esta guia de configurações torna possível algumas configurações fundamentais como podemos ver logo a baixo e exibe todos os caracteres utilizados por cada ação do aplicativo, isto para lhe auxiliar no momento da programação e tornar o seu trabalho ainda mais fácil.
- Close: Por fim, o comando responsável por fechar o aplicativo, lembrando que fechar o aplicativo não irá desligar o Bluetooth de seu celular, caso queira economizar a sua bateria, deve acessar as configurações de seu equipamento e desligar a funcionalidade.
Conclusão
O Projeto Carrinho Arduino de Eixo Móvel possui um sistema de funcionamento diferenciado que se destaca em seus movimentos precisos através do Servo Motor.
O sistema de alimentação é algo que gerou bastante dúvidas e alterações durante a execução do projeto, porém ao fim acredito ter encontrado a maneira mais econômica e funcional.
Quanto ao sistema de Mecânica dos Motores, remover os motores das rodas de trás reduziu a necessidade de incluirmos outro driver e mais baterias para compensar a suba de corrente de funcionamento, porém a eficiência deste modelo, obviamente mostrou-se inferior ao seu sistema original de tração 4WD.
Este é um projeto desenvolvido para dar um exemplo de aplicação ao Chassi comercializado pela Usinainfo. Por isto faço o convite a aqueles que desejarem, para que façam as melhorias citadas, monte o carrinho com tração 4WD, faça as devidas alterações na programação e verifique as necessidades eletrônicas do projeto.
Explore as diversas possibilidades que este projeto pode trazer, melhore o projeto e não se esqueça de compartilhar comigo as suas experiências através dos comentários.
eu fiz tudo serto porem meu bluetoof nao conecta no app,como eu resolvo isso?
Olá Jose! Você pareou o dispositivo bluetooth com o celular antes de tentar conectar o aplicativo com o módulo? Antes de conectar o bluetooth dentro do App é necessário realizar o pareamento com o celular.
É POSSIVEL MUDAR A Driver Duplo Ponte H de motor DC ou Passo L9110s POR UMA MOTOR SHILD L2930?
Olá Joao! Infelizmente acredito não ser viável esta troca devido ao pouco espaço que tem para acomodação de componentes na parte interna do carrinho, porém caso deseje levar o Arduino para o lado de cima e mudar todo o projeto, acredito que talvez seria possível, porém é necessário verificar se ele atenderá todas as necessidade do projeto sem problema algum, principalmente o que diz respeito à alimentação do mesmo.
Mestre Matheus, tem o tutorial para fazer esse projeto 4X4?
Olá Cesar! Infelizmente desenvolvi este projeto para ser utilizado apenas em 2WD para alterá-lo você precisaria incluir mais um driver para controle dos motores e se necessário, aumentar a capacidade de alimentação do projeto.
Boa tarde, Matheus, gostaria de saber qual o kit para comprar e montar esse carrinho.
Olá Carlos! o Kit completo você encontra através do seguinte link: https://www.usinainfo.com.br/kits-chassi-roboticos/carrinho-arduino-mdf-carro-robo-4wd-200rpm-com-micro-servo-motor-e-eixo-movel-kit-chassi-4846.html
Comprei o carrinho e gostaria do Esquema de montagem completo com as baterias atualizadas por favor
Bom dia Lucas!
O projeto ainda se mantém funcional, caso queira pode utilizar outro aplicativo, nós utilizamos atualmente o Arduino Car. O primeiro valor da barra em 6, e abaixo é controle da velocidade, utilizamos entre o valor de 155.
Boa noite, eu gostaria de ter acesso a um modelo para corte a laser! Gostei muito do projeto e tenho interesse em apresentar na escola, seria possível?
Boa tarde Daniel!
Temos disponível para venda em dois modos, o completo acompanhando motores, servo e o básico aonde inclui apenas os cortes a laser. Ambas as versões são necessária adicionar seu Arduino e demais componentes conforme lista do blog.
https://www.usinainfo.com.br/kit-robotica/carrinho-arduino-mdf-4wd-200rpm-v2-com-micro-servo-motor-e-eixo-movel-kit-chassi-manual-de-montagem-4846.html
Esse carrinho já vem montado?
Bom dia Jhone!
Não vem montado, vem a estrutura desmontada e alguns dos componentes na versão completa, aonde para montar ele ainda iria precisar criar a parte lógica com arduino e etc conforme artigo no github deste projeto.
Boa Tarde, tem como disponibilizar o arquivo DWG do Chassi?
Bom dia Andrey!
Nossos projetos em MDF não são distribuídos. Porém se olhar na página do produto você encontra mais informações no GitHub desse projeto.