Juhtkangiga juhitav 2,4 GHz RC-auto, kasutades Arduinot

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles postituses ehitame autoroboti, mida saab juhtida juhtkangi abil 2,4 GHz traadita sideühendusel. Kavandatud projekti ei tehta mitte ainult RC-autona, vaid saate autole lisada oma projektid, näiteks valvekaamera jne.



Ülevaade

Projekt on jagatud kaugjuhtimispuldi ja vastuvõtja kaheks osaks.

Auto või alus, kuhu paigutame kõik oma vastuvõtja komponendid, võib olla kolmerattaline või nelikveoline.



Kui soovite baasautole suuremat stabiilsust või kui soovite sõita autoga ebatasasel pinnal, näiteks väljas, on soovitatav kasutada nelja rattaga autobaasi.

Võite kasutada ka kolmerattalist põhiautot, mis tagab pööramisel suurema liikuvuse, kuid see võib pakkuda vähem stabiilsust kui nelikvedu.

Nelja rattaga, kuid ka 2 mootoriga sõiduk on teostatav.

Kaugjuhtimispulti võib toita 9V patareiga ja vastuvõtjat võib toita 12V, 1,3 AH suletud pliiakuga, mille pindala on väiksem kui 12V, 7AH patarei ja sobib ideaalselt ka selliste peripateetiliste rakenduste jaoks.

2,4 GHz vaheline side on loodud NRF24L01 mooduli abil, mis võib signaale edastada üle 30 kuni 100 meetri, sõltuvalt takistustest kahe NRF24L01 mooduli vahel.

NRF24L01 mooduli illustratsioon:

See töötab 3,3 V ja 5 V võib mooduli tappa, seega tuleb olla ettevaatlik ja see töötab SPI sideprotokollil. Tihvtide konfiguratsioon on toodud ülaltoodud pildil.

Pult:

Pult koosneb Arduinost (soovitatav on Arduino nano / pro-mini), moodulist NRF24L01, juhtkangist ja aku toiteallikast. Proovige need pakkida väikesesse rämpskasti, mida on lihtsam käsitseda.

Kaugjuhtimise skeem:

NRF24L01 mooduli ja juhtkangi tihvtide ühendused on toodud diagrammil. Kui tunnete segadust, lugege palun antud tihvtide ühendamise tabelit.

Liigutades juhtnuppu edasi (ÜLES), tagurpidi (alla), paremale ja vasakule, liigub auto vastavalt sellele.

auto kaugjuhtimispult

Pange tähele, et kõik juhtmete ühendused on vasakul küljel, see on võrdluspunkt ja nüüd saate juhtnuppu teisaldada autot liigutada .

Vajutades juhtkangi Z-teljel, saate juhtida auto LED-valgustit.

Programm kaugjuhtimiseks:

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

See lõpetab kaugjuhtimispuldi.

Vaatame nüüd vastuvõtjat.

Vastuvõtja vooluring asetatakse baasautole. Kui teil on idee lisada oma projekt sellele liikuvale alusele, planeerige geomeetria nõuetekohaselt vastuvõtja ja oma projekti paigutamiseks nii, et ruumi ei saaks otsa.

Vastuvõtja koosneb kahest H-silla alalisvoolumootori mootorist Arduino, L298N, mootori juhtmoodulist, valgest LED-ist, mis asetatakse auto ette, moodulist NRF24L01 ja 12V, 1,3AH akust. Mootorid võivad tulla koos baasautoga.

Vastuvõtja skeem:

Pange tähele, et juhtmete segiajamise vältimiseks ei ole Arduino plaadi ja NRF24L01 vahelist ühendust ülaltoodud skeemil näidatud. Vaadake kaugjuhtimispuldi skeemi.

Arduino plaat saab toite L298N moodulist, mille see on sisse ehitanud 5V regulaatorisse.

Valge valgusdioodi võib paigutada esitulena või saate seda tihvti vastavalt oma vajadustele kohandada. Vajutades juhtnuppu, muutub tihvt nr 7 kõrgeks ja juhtnuppu uuesti vajutades muutub tihvt madalaks.

Pöörake tähelepanu vasaku ja parema külje mootoritele, mis on määratletud vastuvõtja skeemil.

Vastuvõtja programm:

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

Sellega järeldub vastuvõtja.

Pärast projekti lõpuleviimist, kui auto liigub vales suunas, pöörake polaarsusmootor lihtsalt tagasi.

Kui teie baasauto on neljamootoriline, siis ühendage vasakpoolsed mootorid paralleelselt sama polaarsusega, tehke sama parempoolsete mootorite puhul ja ühendage juht L298N-ga.

Kui teil on küsimusi selle juhtkangi abil juhitava 2,4 GHz RC-auto kohta, kasutades Arduinot, võite seda kommentaaride jaotises vabalt väljendada, võite saada kiire vastuse.




Paari: L298N alalisvoolumootori draiveri moodul on selgitatud Järgmine: Arduino abil lihtne digitaalne veevoolumõõtja vooluring