Joystick Controlled 2.4 GHz RC Car Using Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτήν την ανάρτηση πρόκειται να κατασκευάσουμε ένα ρομπότ αυτοκινήτου που μπορεί να ελεγχθεί χρησιμοποιώντας ένα χειριστήριο σε σύνδεση ασύρματης επικοινωνίας 2,4 GHz. Το προτεινόμενο έργο δεν κατασκευάζεται μόνο ως αυτοκίνητο RC, αλλά μπορείτε να προσθέσετε τα έργα σας, όπως κάμερα παρακολούθησης κ.λπ. στο αυτοκίνητο.



ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Το έργο χωρίζεται σε δύο μέρη το τηλεχειριστήριο και το δέκτη.

Το αυτοκίνητο ή η βάση, όπου τοποθετούμε όλα τα εξαρτήματα του δέκτη μας μπορεί να είναι κίνηση τριών τροχών ή τετράτροχη.



Εάν θέλετε μεγαλύτερη σταθερότητα για το βασικό αυτοκίνητο ή εάν θέλετε να οδηγήσετε το αυτοκίνητο σε ανώμαλη επιφάνεια όπως σε εξωτερικούς χώρους τότε, συνιστάται βάση αυτοκινήτου με 4 τροχούς.

Μπορείτε επίσης να χρησιμοποιήσετε ένα βασικό αυτοκίνητο με 3 τροχούς που σας δίνει μεγαλύτερη κινητικότητα ενώ στρίβετε, αλλά μπορεί να παρέχει λιγότερη σταθερότητα από την κίνηση με 4 τροχούς.

Ένα αυτοκίνητο με 4 τροχούς αλλά, 2 μοτέρ είναι επίσης εφικτό.

Το τηλεχειριστήριο μπορεί να τροφοδοτείται με μπαταρία 9V και ο δέκτης μπορεί να τροφοδοτείται με σφραγισμένη μπαταρία μολύβδου οξέος 12V, 1,3 AH, η οποία έχει μικρότερο αποτύπωμα από μπαταρία 12V, 7AH και επίσης ιδανική για τέτοιες περιμετρικές εφαρμογές.

Η επικοινωνία των 2,4 GHz μεταξύ γίνεται μέσω της μονάδας NRF24L01 η οποία μπορεί να μεταδίδει σήματα πάνω από 30 έως 100 μέτρα, ανάλογα με τα εμπόδια μεταξύ δύο μονάδων NRF24L01.

Απεικόνιση της ενότητας NRF24L01:

Λειτουργεί σε 3.3V και 5V μπορεί να σκοτώσει τη μονάδα έτσι, πρέπει να ληφθεί μέριμνα και λειτουργεί σε πρωτόκολλο επικοινωνίας SPI. Η διαμόρφωση ακίδων παρέχεται στην παραπάνω εικόνα.

Το τηλεκοντρόλ:

Το τηλεχειριστήριο αποτελείται από Arduino (συνιστάται το Arduino nano / pro-mini), μονάδα NRF24L01, ένα χειριστήριο και ένα τροφοδοτικό μπαταρίας. Προσπαθήστε να τα συσκευάσετε σε ένα μικρό κουτί σκουπιδιών, το οποίο θα είναι ευκολότερο να χειριστεί.

Σχηματικό διάγραμμα για απομακρυσμένο:

Οι συνδέσεις ακίδων για τη μονάδα NRF24L01 και το χειριστήριο παρέχονται στο διάγραμμα, εάν αισθάνεστε κάποια αναταραχή, ανατρέξτε στον δεδομένο πίνακα σύνδεσης ακίδων.

Μετακινώντας το χειριστήριο προς τα εμπρός (UP), αντίστροφα (Κάτω), δεξιά και αριστερά, το αυτοκίνητο κινείται ανάλογα.

απομακρυσμένο χειριστήριο αυτοκινήτου

Λάβετε υπόψη ότι όλες οι καλωδιακές συνδέσεις βρίσκονται στην αριστερή πλευρά, αυτό είναι το σημείο αναφοράς και τώρα μπορείτε να μετακινήσετε το χειριστήριο στο μετακινήστε το αυτοκίνητο .

Πατώντας το χειριστήριο στον άξονα Z μπορείτε να ελέγξετε τη λυχνία LED στο αυτοκίνητο.

Πρόγραμμα για το τηλεχειριστήριο:

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

Αυτό ολοκληρώνει το τηλεχειριστήριο.

Ας ρίξουμε μια ματιά στον δέκτη.

Το κύκλωμα δέκτη θα τοποθετηθεί στο βασικό αυτοκίνητο. Εάν έχετε ιδέα να προσθέσετε το έργο σας σε αυτήν την κινούμενη βάση, σχεδιάστε τη γεωμετρία σωστά για να τοποθετήσετε το δέκτη και το έργο σας έτσι ώστε να μην εξαντληθεί ο χώρος.

Ο δέκτης αποτελείται από Arduino, L298N dual H-bridge DC μοτέρ μοτέρ, λευκό LED που θα τοποθετηθεί μπροστά από το αυτοκίνητο, μονάδα NRF24L01 και 12V, 1.3AH μπαταρία. Οι κινητήρες μπορεί να συνοδεύονται από βασικό αυτοκίνητο.

Σχηματικό διάγραμμα για δέκτη:

Λάβετε υπόψη ότι η σύνδεση μεταξύ πλακέτας Arduino και NRF24L01 ΔΕΝ φαίνεται στο παραπάνω διάγραμμα για την αποφυγή σύγχυσης καλωδίωσης. Ανατρέξτε στο σχήμα του τηλεχειριστηρίου.

Η πλακέτα Arduino θα τροφοδοτείται από τη μονάδα L298N που έχει ενσωματώσει σε ρυθμιστή 5V.

Η λευκή λυχνία LED μπορεί να τοποθετηθεί ως φώτα κεφαλής ή μπορείτε να προσαρμόσετε αυτόν τον πείρο στις ανάγκες σας, πατώντας το χειριστήριο, ο πείρος # 7 γυρίζει ψηλά και πατώντας ξανά το χειριστήριο θα γυρίσει τον πείρο χαμηλά.

Δώστε προσοχή στους κινητήρες αριστεράς και δεξιάς πλευράς που καθορίζονται στο σχηματικό διάγραμμα του δέκτη.

Πρόγραμμα για τον παραλήπτη:

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

Αυτό ολοκληρώνει τον δέκτη.

Μετά την ολοκλήρωση του έργου, εάν το αυτοκίνητο κινείται σε λάθος κατεύθυνση, αντιστρέψτε τον κινητήρα πολικότητας.

Εάν το βασικό σας αυτοκίνητο έχει κίνηση 4 τροχών, συνδέστε τους αριστερούς κινητήρες παράλληλα με την ίδια πολικότητα, κάντε το ίδιο για κινητήρες δεξιάς πλευράς και συνδεθείτε στον οδηγό L298N.

Εάν έχετε οποιαδήποτε ερώτηση σχετικά με αυτό το χειριστήριο χειριστηρίου 2,4 GHz RC χρησιμοποιώντας το Arduino, μη διστάσετε να εκφράσετε στην ενότητα σχολίων, ενδέχεται να λάβετε μια γρήγορη απάντηση.




Προηγούμενο: Επεξήγηση της μονάδας οδηγού κινητήρα DC L298N Επόμενο: Απλό ψηφιακό κύκλωμα μετρητή ροής νερού χρησιμοποιώντας το Arduino