Krmilna palica z nadzorovanim 2,4 GHz RC avtomobilom z uporabo Arduina

Preizkusite Naš Instrument Za Odpravo Težav





V tem prispevku bomo izdelali avtomobilskega robota, ki ga lahko upravljamo s krmilno palčko na brezžični komunikacijski povezavi 2,4 GHz. Predlagani projekt ni narejen samo kot RC avtomobil, temveč lahko na avto dodate svoje projekte, kot je nadzorna kamera itd.



Pregled

Projekt je razdeljen na dva dela daljinskega upravljalnika in sprejemnika.

Avto ali osnova, kamor namestimo vse komponente sprejemnika, je lahko trikolesni ali štirikolesni pogon.



Če želite večjo stabilnost osnovnega avtomobila ali če želite voziti avto po neravni površini, na primer na prostem, priporočamo avtomobilsko dno s 4 kolesi.

Uporabite lahko tudi osnovni avtomobil s 3-kolesnim pogonom, ki vam omogoča večjo gibljivost med obračanjem, vendar lahko zagotavlja manj stabilnosti kot pogon na vsa štiri kolesa.

Avto s štirimi kolesi, vendar je izvedljiv tudi z 2 motornim pogonom.

Daljinski upravljalnik se lahko napaja z 9V baterijo, sprejemnik pa z 12V, 1,3 AH zaprto svinčevo akumulatorsko baterijo, ki ima manjši odtis kot 12V, 7AH baterija in je tudi idealen za takšne peripatetične aplikacije.

Komunikacija 2,4 GHz med njimi je vzpostavljena z uporabo modula NRF24L01, ki lahko oddaja signale na razdalji od 30 do 100 metrov, odvisno od ovir med dvema moduloma NRF24L01.

Prikaz modula NRF24L01:

Deluje na 3.3V in 5V lahko ubije modul, zato je potrebna previdnost in deluje na komunikacijski protokol SPI. Konfiguracija zatiča je prikazana na zgornji sliki.

Daljinski upravljalnik:

Daljinski upravljalnik je sestavljen iz Arduina (priporočamo Arduino nano / pro-mini), modula NRF24L01, krmilne palice in napajanja iz baterije. Poskusite jih spakirati v majhno škatlo za smeti, s katero boste lažje ravnali.

Shematski diagram za daljinski upravljalnik:

Pin-priključki za modul NRF24L01 in krmilna palica so na diagramu. Če zaznate kakršno koli zmedo, si oglejte dano tabelo za povezave pinov.

S premikanjem krmilne palice naprej (GOR), vzvratno (Dol), desno in levo se avtomobil temu ustrezno premika.

daljinska upravljalna palica za avto

Upoštevajte, da so vsi žični priključki na levi strani, to je referenčna točka in zdaj lahko krmilno palčko premaknete na premakni avto .

S pritiskom na krmilno palčko na osi Z lahko upravljate LED lučko na avtomobilu.

Program za daljinski upravljalnik:

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

S tem se zaključi daljinski upravljalnik.

Zdaj pa si oglejmo sprejemnik.

Vezje sprejemnika bo postavljeno na osnovni avtomobil. Če imate kakšno idejo, da dodate svoj projekt na to premično podlago, pravilno načrtujte geometrijo tako, da sprejemnik in svoj projekt postavite tako, da vam ne bo zmanjkalo prostora.

Sprejemnik je sestavljen iz Arduino, L298N dvojnega modula gonilnika enosmernega motorja H-most, bele LED diode, ki bo nameščena spredaj, modula NRF24L01 in 12V, 1,3AH baterije. Motorji so lahko opremljeni z osnovnim avtomobilom.

Shematski diagram sprejemnika:

Upoštevajte, da povezava med ploščo Arduino in NRF24L01 NI prikazana v zgornjem diagramu, da se prepreči zmeda pri ožičenju. Oglejte si shemo daljinskega upravljalnika.

Ploščo Arduino bo napajal modul L298N, ki ima vgrajen 5V regulator.

Bela LED je lahko nameščena kot naglavna luč ali pa jo prilagodite svojim potrebam. S pritiskom na krmilno palčko se zatič št. 7 obrne visoko in s ponovnim pritiskom na krmilno palico zatič postane nizek.

Prosimo, bodite pozorni na levi in ​​desni bočni motor, navedeni v shematskem diagramu sprejemnika.

Program za sprejemnik:

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

S tem sprejemnik zaključi.

Po končanem projektu, če se avto premakne v napačno smer, samo obrnite motor polarnosti.

Če je vaš osnovni avtomobil štirikolesni pogon, vzporedno povežite levi motor z enako polarnostjo, enako storite za desne motorje in povežite z gonilnikom L298N.

Če imate kakršno koli vprašanje v zvezi s tem upravljalnim krmilnikom z 2,4 GHz krmilnikom, ki uporablja Arduino, vas prosimo, da izrazite v oddelku za komentarje, boste morda hitro odgovorili.




Prejšnji: Razložen modul gonilnika enosmernega motorja L298N Naprej: Enostavno vezje digitalnega vodomera z uporabo Arduina