Projetos de circuito eletrônicoProjetos de engenharia do ArduinoCarro RC de 2,4 GHz controlado por joystick usando Arduino

Carro RC de 2,4 GHz controlado por joystick usando Arduino

Relacionados

Neste post vamos construir um carro robô que pode ser controlado usando um joystick em um link de comunicação sem fio de 2,4 GHz. O projeto proposto não é feito apenas como um carro RC, mas você pode adicionar seus projetos, como câmera de vigilância, etc. no carro.

Visão geral

O projeto está dividido em duas partes; o controle remoto e o receptor.

O carro ou a base, onde colocamos todos os componentes do nosso receptor, pode ser de tração nas três rodas ou nas quatro rodas.

Se você deseja mais estabilidade para o carro base ou se deseja dirigir o carro em superfícies irregulares, como ao ar livre, recomenda-se a base do carro com 4 rodas.

Você também pode usar o carro com tração nas 3 rodas, que oferece maior mobilidade ao girar, mas pode fornecer menos estabilidade do que a tração nas 4 rodas.

Um carro com 4 rodas, mas 2 motores também é viável.

O controle remoto pode ser alimentado com bateria de 9V e o receptor pode ser alimentado com bateria de chumbo-ácido selada de 12V, 1,3 AH, que tem uma pegada menor do que a bateria de 12V, 7AH e também é ideal para tais aplicações peripatéticas.

A comunicação de 2,4 GHz entre eles é estabelecida usando o módulo NRF24L01 que pode transmitir sinais de 30 a 100 metros dependendo dos obstáculos entre dois módulos NRF24L01.

Ilustração do módulo NRF24L01:

IMG 62448D8D3D4A6

Funciona em 3,3V e 5V pode matar o módulo, portanto, deve-se tomar cuidado e funciona no protocolo de comunicação SPI. A configuração do pino é fornecida na imagem acima.

O remoto:

O controle remoto é composto por Arduino (recomenda-se o Arduino nano/pro-mini), módulo NRF24L01, joystick e fonte de alimentação a bateria. Tente embalá-los em uma pequena caixa de lixo, que será mais fácil de manusear.

Diagrama esquemático para controle remoto:

IMG 62448D8DB5416

As conexões de pinos para o módulo e joystick NRF24L01 são fornecidas no diagrama, se você sentir alguma confusão, consulte a tabela de conexões de pinos fornecida.

Movendo o joystick para frente (UP), reverso (Down), direita e esquerda, o carro se move de acordo.

JOYSTICK DE CARRO REMOTO

Observe que todas as conexões dos fios estão no lado esquerdo, este é o ponto de referência e agora você pode mover o joystick para mover o carro.

Ao pressionar o joystick no eixo Z, você pode controlar a luz LED no carro.

Programa para o controle remoto:

//--------------Program Developed by R.Girish---------------//
#include
#include
#include
int X_axis = A0;
int Y_axis = A1;
int Z_axis = 2;
int x = 0;
int y = 0;
int z = 0;
RF24 radio(9,10);
const byte address[6] = "00001";
const char var1[32] = "up";
const char var2[32] = "down";
const char var3[32] = "left";
const char var4[32] = "right";
const char var5[32] = "ON";
const char var6[32] = "OFF";
boolean light = true;
int thresholdUP = 460;
int thresholdDOWN = 560;
int thresholdLEFT = 460;
int thresholdRIGHT = 560;
void setup()
{
radio.begin();
Serial.begin(9600);
pinMode(X_axis, INPUT);
pinMode(Y_axis, INPUT);
pinMode(Z_axis, INPUT);
digitalWrite(Z_axis, HIGH);
radio.openWritingPipe(address);
radio.setChannel(100);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.stopListening();
}
void loop()
{
x = analogRead(X_axis);
y = analogRead(Y_axis);
z = digitalRead(Z_axis);
if(y <= thresholdUP)
{
radio.write(&var1, sizeof(var1));
}
if(y >= thresholdDOWN)
{
radio.write(&var2, sizeof(var2));
}
if(x <= thresholdLEFT)
{
radio.write(&var3, sizeof(var3));
}
if(x >= thresholdRIGHT)
{
radio.write(&var4, sizeof(var4));
}
if(z == LOW)
{
if(light == true)
{
radio.write(&var5, sizeof(var5));
light = false;
delay(200);
}
else
{
radio.write(&var6, sizeof(var6));
light = true;
delay(200);
}
}
}
//--------------Program Developed by R.Girish---------------//

Isso conclui o Remoto.

Agora vamos dar uma olhada no receptor.

O circuito receptor será colocado no carro base. Se você tem alguma idéia de adicionar seu projeto nesta base móvel, planeje a geometria corretamente para colocar o receptor e seu projeto para que você não fique sem espaço.

O receptor consiste em Arduino, módulo de driver de motor DC de ponte H dupla L298N, LED branco que será colocado na frente do carro, módulo NRF24L01 e bateria de 12V, 1.3AH. Os motores podem vir com carro base.

Diagrama esquemático para o receptor:

IMG 62448D8E31EF6

Observe que a conexão entre a placa Arduino e o NRF24L01 NÃO é mostrada no diagrama acima para evitar confusão de fiação. Consulte o esquema do controle remoto.

A placa Arduino será alimentada pelo módulo L298N; ele tem regulador de 5V embutido.

O LED branco pode ser colocado como farol ou você pode personalizar este pino de acordo com suas necessidades, pressionando o joystick, o pino #7 fica alto e pressionando o joystick novamente, o pino fica baixo.

IMG 62448D8E6B3EA

Preste atenção aos motores do lado esquerdo e direito especificados no diagrama esquemático do receptor.

Programa para o Receptor:

//------------------Program Developed by R.Girish---------------//
#include
#include
#include
RF24 radio(9,10);
const byte address[6] = "00001";
const char var1[32] = "up";
const char var2[32] = "down";
const char var3[32] = "left";
const char var4[32] = "right";
const char var5[32] = "ON";
const char var6[32] = "OFF";
char input[32] = "";
const int output1 = 2;
const int output2 = 3;
const int output3 = 4;
const int output4 = 5;
const int light = 7;
void setup()
{
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setChannel(100);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.startListening();
pinMode(output1, OUTPUT);
pinMode(output2, OUTPUT);
pinMode(output3, OUTPUT);
pinMode(output4, OUTPUT);
pinMode(light, OUTPUT);
digitalWrite(output1, LOW);
digitalWrite(output2, LOW);
digitalWrite(output3, LOW);
digitalWrite(output4, LOW);
digitalWrite(light, LOW);
}
void loop()
{
while(!radio.available())
{
digitalWrite(output1, LOW);
digitalWrite(output2, LOW);
digitalWrite(output3, LOW);
digitalWrite(output4, LOW);
}
radio.read(&input, sizeof(input));
if((strcmp(input,var1) == 0))
{
digitalWrite(output1, HIGH);
digitalWrite(output2, LOW);
digitalWrite(output3, HIGH);
digitalWrite(output4, LOW);
delay(10);
}
else if((strcmp(input,var2) == 0))
{
digitalWrite(output1, LOW);
digitalWrite(output2, HIGH);
digitalWrite(output3, LOW);
digitalWrite(output4, HIGH);
delay(10);
}
else if((strcmp(input,var3) == 0))
{
digitalWrite(output3, HIGH);
digitalWrite(output4, LOW);
delay(10);
}
else if((strcmp(input,var4) == 0))
{
digitalWrite(output1, HIGH);
digitalWrite(output2, LOW);
delay(10);
}
else if((strcmp(input,var5) == 0))
{
digitalWrite(light, HIGH);
}
else if((strcmp(input,var6) == 0))
{
digitalWrite(light, LOW);
}
}
//------------------Program Developed by R.Girish---------------//

Isso conclui o receptor.

Após concluir o projeto, se o carro se mover na direção errada basta inverter a polaridade do motor.

Se o seu carro base for 4 motores, conecte os motores esquerdos em paralelo com a mesma polaridade, faça o mesmo para os motores do lado direito e conecte ao driver L298N.

Se você tiver alguma dúvida sobre este carro RC de 2,4 GHz controlado por joystick usando Arduino, sinta-se à vontade para expressar na seção de comentários, você pode receber uma resposta rápida.

Hashtags: #Carro #GHz #controlado #por #joystick #usando #Arduino
 

FONTE


Nota: Este conteúdo foi traduzido do Inglês para português (auto)
Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o conteúdo.
Status (Ok Até agora)


Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!

Relacionados

Relacionados