Džojstikom kontrolirano 2,4 GHz RC automobil pomoću Arduina

Isprobajte Naš Instrument Za Uklanjanje Problema





U ovom ćemo postu konstruirati automobilskog robota kojim se može upravljati pomoću joysticka na 2,4 GHz bežičnoj komunikacijskoj vezi. Predloženi projekt nije izrađen samo kao RC automobil, već na automobil možete dodati svoje projekte poput nadzorne kamere itd.



Pregled

Projekt je podijeljen na dva dijela daljinskog upravljača i prijemnika.

Automobil ili baza, u koju smještamo sve komponente prijemnika, mogu biti s pogonom na sva četiri kotača ili s pogonom na sva četiri kotača.



Ako želite veću stabilnost osnovnog automobila ili ako želite voziti automobil na neravnoj površini kao što je na otvorenom, preporuča se baza automobila s 4 kotača.

Također možete koristiti osnovni automobil s pogonom na 3 kotača koji vam daje veću pokretljivost tijekom okretanja, ali može pružiti manje stabilnosti od pogona na 4 kotača.

Automobil s 4 kotača, ali s 2 pogona također je izvediv.

Daljinski upravljač može se napajati s 9V baterijom, a prijemnik s 12V, 1,3 AH zatvorenom olovnom kiselinskom baterijom, koja ima manji trag od 12V, 7AH baterijom, a također je idealna za takve peripatetske primjene.

Komunikacija od 2,4 GHz između uspostavljena je pomoću modula NRF24L01 koji može prenositi signale na 30 do 100 metara, ovisno o preprekama između dva modula NRF24L01.

Ilustracija modula NRF24L01:

Radi na 3.3V i 5V može ubiti modul, pa treba biti oprezan i radi na SPI komunikacijskom protokolu. Konfiguracija pina navedena je na gornjoj slici.

Daljinski upravljač:

Daljinski upravljač sastoji se od Arduina (preporučuje se Arduino nano / pro-mini), modula NRF24L01, džojstika i napajanja iz baterije. Pokušajte ih spakirati u malu smeće, s kojom će biti lakše rukovati.

Shematski dijagram za daljinski:

Pin-spojevi za modul NRF24L01 i džojstik nalaze se na dijagramu. Ako osjetite nered, pogledajte danu tablicu spajanja pin-a.

Pomicanjem džojstika prema naprijed (gore), prema natrag (dolje), udesno i ulijevo, automobil se kreće u skladu s tim.

daljinski upravljač za automobil

Imajte na umu da su svi žičani priključci s lijeve strane, ovo je referentna točka i sada možete pomaknuti džojstik na pomakni auto .

Pritiskom na navigacijsku tipku u Z osi možete upravljati LED svjetlom na automobilu.

Program za daljinski upravljač:

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

To zaključuje daljinski upravljač.

Pogledajmo sada prijemnik.

Sklop prijemnika bit će postavljen na osnovni automobil. Ako imate bilo kakvu ideju da svoj projekt dodate na ovu pokretnu bazu, pravilno planirajte geometriju za postavljanje prijemnika i vašeg projekta tako da vam ne ostane bez prostora.

Prijemnik se sastoji od Arduino-a, dvostrukog H-bridge istosmjernog upravljačkog modula H-mosta, bijele LED diode koja će se nalaziti ispred automobila, NRF24L01 modula i 12V, 1,3AH baterije. Motori mogu biti s osnovnim automobilom.

Shematski dijagram za prijemnik:

Imajte na umu da veza između ploče Arduino i NRF24L01 NIJE prikazana na gornjem dijagramu kako bi se izbjegla zabuna u ožičenju. Molimo pogledajte shemu daljinskog upravljača.

Arduino ploču napajat će modul L298N koji ima ugrađeni regulator od 5V.

Bijela LED dioda može se postaviti kao glavno svjetlo ili možete prilagoditi ovaj pin svojim potrebama, pritiskom na navigacijsku tipku, pin # 7 postaje visok, a ponovnim pritiskom na joysticku pretvara se u niski pin.

Obratite pažnju na lijevu i desnu stranu motora navedene u shematskom dijagramu prijemnika.

Program za prijamnik:

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

To zaključuje prijamnik.

Nakon završetka projekta, ako se automobil kreće u pogrešnom smjeru, samo obrnite motor polariteta.

Ako je vaš osnovni automobil pogon s 4 kotača, paralelno spojite lijevi motor s istim polaritetom, učinite isto za motore s desne strane i spojite na vozač L298N.

Ako imate bilo kakvih pitanja u vezi s ovim upravljačkim džojstikom upravljanim RC automobilom na 2,4 GHz koji koristi Arduino, slobodno izrazite u odjeljku za komentare, možda ćete dobiti brzi odgovor.




Prethodno: Objašnjeno: upravljački modul istosmjernog motora L298N Dalje: Jednostavni digitalni krug mjerača protoka vode pomoću Arduina