Voiture RC 2,4 GHz contrôlée par joystick utilisant Arduino

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons construire un robot de voiture qui peut être contrôlé à l'aide d'un joystick sur une liaison de communication sans fil 2,4 GHz. Le projet proposé n'est pas seulement réalisé en tant que voiture RC, mais vous pouvez ajouter vos projets tels que caméra de surveillance, etc. sur la voiture.



Aperçu

Le projet est divisé en deux parties: la télécommande et le récepteur.

La voiture ou la base, où nous plaçons tous nos composants de récepteur, peuvent être à trois roues motrices ou à quatre roues motrices.



Si vous voulez plus de stabilité pour la voiture de base ou si vous voulez conduire la voiture sur une surface inégale comme à l'extérieur, alors, une base de voiture à 4 roues est recommandée.

Vous pouvez également utiliser une voiture de base à 3 roues motrices qui vous offre une plus grande mobilité en virage, mais elle peut offrir moins de stabilité que les 4 roues motrices.

Une voiture à 4 roues mais, 2 motorisations également réalisable.

La télécommande peut être alimentée par une batterie 9V et le récepteur peut être alimenté par une batterie plomb-acide scellée de 12V, 1,3 AH, qui a une empreinte plus petite que la batterie 12V, 7AH et également idéale pour de telles applications péripatéticiennes.

La communication 2,4 GHz entre est établie à l'aide du module NRF24L01 qui peut transmettre des signaux sur 30 à 100 mètres en fonction des obstacles entre deux modules NRF24L01.

Illustration du module NRF24L01:

Il fonctionne sur 3.3V et 5V peut tuer le module donc, des précautions doivent être prises et cela fonctionne sur le protocole de communication SPI. La configuration des broches est fournie dans l'image ci-dessus.

La télécommande:

La télécommande se compose d'Arduino (Arduino nano / pro-mini est recommandé), d'un module NRF24L01, d'un joystick et d'une alimentation par batterie. Essayez de les emballer dans une petite poubelle, ce qui sera plus facile à manipuler.

Schéma de principe pour la télécommande:

Les connexions des broches pour le module NRF24L01 et le joystick sont fournies dans le diagramme, si vous sentez un embrouillage, veuillez vous référer au tableau de connexion des broches donné.

En déplaçant le joystick vers l'avant (HAUT), la marche arrière (vers le bas), la droite et la gauche, la voiture se déplace en conséquence.

joystick de voiture à distance

Veuillez noter que toutes les connexions des fils sont sur le côté gauche, c'est le point de référence et maintenant vous pouvez déplacer le joystick vers déplacer la voiture .

En appuyant sur le joystick dans l'axe Z, vous pouvez contrôler la lumière LED sur la voiture.

Programme pour la télécommande:

//--------------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---------------//

Cela conclut la télécommande.

Jetons maintenant un œil au récepteur.

Le circuit récepteur sera placé sur la voiture de base. Si vous avez une idée pour ajouter votre projet sur cette base mobile, planifiez correctement la géométrie pour placer le récepteur et votre projet de manière à ne pas manquer de place.

Le récepteur se compose d'Arduino, d'un module de pilote de moteur CC à double pont en H L298N, d'une LED blanche qui sera placée à l'avant de la voiture, d'un module NRF24L01 et d'une batterie 12V, 1,3AH. Les moteurs peuvent venir avec la voiture de base.

Schéma de principe du récepteur:

Veuillez noter que la connexion entre la carte Arduino et le NRF24L01 n'est PAS illustrée dans le schéma ci-dessus pour éviter toute confusion de câblage. Veuillez consulter le schéma de la télécommande.

La carte Arduino sera alimentée par le module L298N qu'elle a intégré dans un régulateur 5V.

La LED blanche peut être placée comme phare ou vous pouvez personnaliser cette broche selon vos besoins, en appuyant sur le joystick, la broche n ° 7 devient haute et en appuyant à nouveau sur la manette, la broche sera basse.

Veuillez faire attention aux moteurs latéraux gauche et droit spécifiés dans le schéma de principe du récepteur.

Programme pour le récepteur:

//------------------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---------------//

Cela conclut le récepteur.

Après avoir terminé le projet, si la voiture se déplace dans la mauvaise direction, inversez simplement la polarité du moteur.

Si votre voiture de base est à 4 roues motrices, connectez les moteurs de gauche en parallèle avec la même polarité, faites de même pour les moteurs du côté droit et connectez-vous au pilote L298N.

Si vous avez des questions concernant cette voiture RC 2,4 GHz contrôlée par joystick utilisant Arduino, n'hésitez pas à l'exprimer dans la section commentaires, vous recevrez peut-être une réponse rapide.




Précédent: Module de pilote de moteur CC L298N expliqué Un article: Circuit de débitmètre d'eau numérique simple utilisant Arduino