Transforme Seu Carro RC em um Veículo Controlado por Bluetooth
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| SparkFun Arduino Pro Mini 328 - 3.3V/8MHz | 1 |
| Texas Instruments Dual H-Bridge Motor Driver L293D | 1 |
| Módulo Bluetooth HC-05 | 1 |
| Carro RC (chassi adequado) | 1 |
Ferramentas Necessárias
- Ferro de solda (genérico)
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
Carros RC são realmente divertidos de hackear e fornecem bons chassis por baixo preço para fazer robôs, mas selecionar um para fazer é uma dor de cabeça com milhões de tipos. Meu irmãozinho teve aniversário recentemente e eu queria dar algo realmente legal, acabei dando este carro RC. Hackear carro RC é fácil e difícil ao mesmo tempo, por causa das diferentes formas como carros RC são feitos, não há maneira fácil e definida de hackear o carro, mas este hack é universal. Também tentarei cobrir o básico sobre todas as partes e teoria por trás de cada módulo. Usamos módulo, mas você é encorajado a fazer seu próprio circuito, exceto o Pro Mini.
Fiquei realmente desconfortável com o Pro Mini por ser muito pequeno, mas foi divertido.
Confira o vídeo e certifique-se de se inscrever para próximos vídeos.
Passo 1: Obtendo o Chassi Certo
Lista de Peças
- ProMini
- Módulo L293D
- HC-05
- Carro RC
Escolhendo o chassi certo
A escolha do chassi é uma questão sobre mecanismo de acionamento; existem muitos mecanismos de acionamento. Vamos falar sobre os dois mais populares.
Tração Diferencial (Differential Drive)
O que é tração diferencial?
O termo diferencial significa diferença entre duas entidades; no contexto de robótica, é apenas a diferença de velocidade entre dois motores. Baseado nessa diferença de velocidade, um robô pode ser movido em qualquer direção em um layout 2D.
Quando dois motores são conectados a rodas em uma linha, opostos um ao outro (como um par de rodas conectadas a um único eixo), a velocidade com que cada motor gira determina a direção do movimento. Quando ambas as rodas giram na mesma velocidade, a diferença entre os motores é zero. Isso faz o robô mover-se para frente em linha reta. O robô pode mover-se em direção reversa se a direção de rotação de ambos os motores for invertida. Isso será novamente em linha reta se a diferença de velocidade for zero. Agora, alterando a velocidade de qualquer um dos motores, resultará em movimento em direção afastada da linha reta. Por exemplo, reduzir a velocidade do motor direito resultará em diferença de velocidade e, portanto, mudança de direção. A força resultante faz o robô virar à direita. Esta mudança de direção pode ser controlada no ângulo requerido reduzindo ainda mais a velocidade do motor. Mais lento o motor direito, mais fechada a curva à direita. O mesmo vale para curva à esquerda.
Como conclusão: Motor direito mais lento, curva à direita mais fechada. Motor esquerdo mais lento, curva à esquerda mais fechada. Abaixo estão alguns cenários que explicam o funcionamento do mecanismo de tração diferencial. M1 e M2 são motores que acionam rodas à esquerda e direita respectivamente.
Tração Tipo Carro (Steer Type Drive)
O que é tração tipo carro?
A tração tipo carro é a mais comum no mundo real, mas não no mundo dos robôs. É caracterizada por um par de rodas motrizes e um par separado de rodas de direção. A translação e rotação são independentes uma da outra. Mas translação e rotação estão interligadas, portanto este sistema enfrenta sérios problemas de planejamento de caminho. Quatro rodas são mais eficientes comparadas a três ou duas rodas. As duas primeiras das quatro rodas podem ser usadas para dirigir e as próximas duas para mover o robô. Equilibrar um robô de quatro rodas nunca é um problema. A maioria dos carros cotidianos que usamos são de quatro rodas e o exemplo é suficiente para provar sua existência e capacidades.
Desvantagens da Tração Tipo Carro: O mecanismo de direção deve ser controlado com precisão. Uma leve imprecisão pode causar grandes erros de odometria. O sistema é Não-Holonômico, portanto o planejamento de caminho é extremamente difícil e impreciso. Não há atuadores direcionais diretos.
Por isso, é melhor usar tração diferencial devido à sua simplicidade e facilidade de uso.
Passo 2: Controlando os Motores
Para controlar o motor, precisamos de algo chamado driver de motor.
O que é um Driver de Motor?
Um driver de motor é um pequeno amplificador de corrente; a função dos drivers de motor é pegar um sinal de controle de baixa corrente e transformá-lo em um sinal de corrente mais alta que pode acionar um motor.
Existem muitos drivers de motor, dos quais estou usando o módulo driver de motor L293D.
O L293D é um circuito integrado driver de motor usado para acionar motores DC girando em qualquer direção. É um CI de 16 pinos que pode controlar um conjunto de dois motores DC simultaneamente. O L293D usa 5V para sua própria alimentação e fonte de alimentação externa é necessária para acionar os motores, que pode ser até 36V e consumir até 600mA. O L293D funciona no conceito de ponte H típica, um circuito que permite a alta tensão fluir em qualquer direção. Em um único CI L293D existem dois circuitos de ponte H que podem girar dois motores DC independentemente.
Descrição dos Pinos do L293D
| Pino | Função |
|---|---|
| 1 | Enable pino Motor 1; ativo alto (Enable 1,2) |
| 2 | Input 1 para Motor 1 |
| 3 | Output 1 para Motor 1 |
| 4 | Ground (0V) |
| 5 | Ground (0V) |
| 6 | Output 2 para Motor 1 |
| 7 | Input 2 para Motor 1 |
| 8 | Tensão de alimentação para Motores; 9-12V (até 36V) Vcc2 |
| 9 | Enable pino Motor 2; ativo alto (Enable 3,4) |
| 10 | Input 1 para Motor 1 (Input 3) |
| 11 | Output 1 para Motor 1 (Output 3) |
| 12 | Ground (0V) |
| 13 | Ground (0V) |
| 14 | Output 2 para Motor 1 (Output 4) |
| 15 | Input 2 para Motor 1 (Input 4) |
| 16 | Tensão de alimentação; 5V (até 36V) Vcc1 |
Passo 3: Sobre o App
Existem muitos apps para controle; fiz um. A lógica é muito simples: todos os botões enviam um caractere quando pressionados via Bluetooth e o Arduino processa.
Funções dos Caracteres
| Caractere | Função |
|---|---|
| X | Estado nulo |
| F | Movimento para frente |
| B | Movimento para trás |
| L | Virar à esquerda |
| R | Virar à direita |
Passo 4: Conexão de Todas as Partes
Conexões são simples. Aqui estão as conexões a seguir:
Módulo Bluetooth (HC-05)
| HC-05 | Arduino |
|---|---|
| Vcc | 5V |
| Gnd | Gnd |
| Rx | Tx |
| Tx | Rx |
Driver de Motor
| Motor Driver | Arduino |
|---|---|
| pino 2 | 8 |
| pino 7 | 7 |
| pino 10 | 6 |
| pino 4 | 9 |
| pino 3 e 6 | Motor 1 |
| pino 11 e 14 | Motor 2 |
| pino 1 | 5V |
| pino 9 | 5V |
Passo 5: Programação
void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
void loop() {
var = Serial.read();
if (var == 'F') {
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
}
if (var == 'H') {
digitalWrite(frled1, HIGH);
}
if (var == 'B') {
analogWrite(speeden, 150);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(bcled1, HIGH);
}
if (var == 'X') {
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(frled1, LOW);
digitalWrite(bcled1, LOW);
}
if (var == 'L') {
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
}
if (var == 'R') {
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
}
Espero que você aproveite fazer o projeto tanto quanto eu. Estou postando mais projetos legais em breve, então siga-me para obter todas as atualizações. Também curta minha página https://www.facebook.com/makewithRex/
Processo de manufatura
- Construtores em C#: Tipos, Exemplos e Padrões Avançados
- Monitore o Exercício Diário do Seu Hamster com Rastreador de Fitness Raspberry Pi
- Como Smartphones Estão Moldando o Futuro dos Carros Conectados
- Transforme sua Cadeia de Suprimentos em uma Potência Geradora de Lucro
- Do Conceito à Realidade: Transformando Designs Criativos em Produtos Tangíveis
- Ar-Condicionado Automotivo: Diagnóstico e Reparo em 5 Passos
- Como Escolher o Turbo Certo para Seu Carro: Guia Prático
- Guia Passo a Passo para Reparar a Maçaneta da Porta do Carro
- Como Recarregar o Ar Condicionado do Carro: Guia Passo a Passo
- Guia Rápido para Reparar Ferrugem no Carro: Proteja Seu Veículo