Ohjaussauvaohjattu 2,4 GHz: n RC-auto Arduinoa käyttämällä

Kokeile Instrumenttia Ongelmien Poistamiseksi





Tässä viestissä aiomme rakentaa autorobotin, jota voidaan ohjata joystickillä 2,4 GHz: n langattomassa tietoliikenneyhteydessä. Ehdotettu projekti ei ole vain RC-auto, mutta voit lisätä projektiisi, kuten valvontakameran jne., Autoon.



Yleiskatsaus

Projekti on jaettu kaukosäätimeen ja vastaanottimeen kahteen osaan.

Auto tai pohja, johon sijoitamme kaikki vastaanottimen komponentit, voi olla kolmipyöräinen tai neliveto.



Jos haluat enemmän vakautta perusautolle tai jos haluat ajaa autoa epätasaisella alustalla, kuten ulkona, suositellaan 4-pyöräinen autopohja.

Voit käyttää myös 3-vetoista perusautoa, joka antaa sinulle suuremman liikkuvuuden käännöksen aikana, mutta se voi tarjota vähemmän vakautta kuin neliveto.

Nelipyöräinen auto, mutta myös 2 moottorikäyttöinen.

Kaukosäädin voidaan käyttää 9 V: n paristolla ja vastaanotin voidaan käyttää 12 V: n, 1,3 AH: n suljetulla lyijyhappoakulla, jonka pinta-ala on pienempi kuin 12 V: n, 7 AH: n paristolla ja joka on myös ihanteellinen tällaisiin peripateettisiin sovelluksiin.

2,4 GHz: n välinen tiedonsiirto muodostetaan NRF24L01-moduulilla, joka voi lähettää signaaleja yli 30-100 metriä kahden NRF24L01-moduulin välisten esteiden mukaan.

Kuva NRF24L01-moduulista:

Se toimii 3.3V: lla ja 5V voi tappaa moduulin, joten on oltava varovainen ja se toimii SPI-yhteyskäytännöllä. Tappien kokoonpano on esitetty yllä olevassa kuvassa.

Kaukosäädin:

Kaukosäädin koostuu Arduinosta (suositellaan Arduino nano / pro-mini), NRF24L01-moduulista, ohjaussauvasta ja akun virtalähteestä. Yritä pakata ne pieneen roskakoriin, jota on helpompi käsitellä.

Kaavio kauko-ohjaimelle:

NRF24L01-moduulin ja ohjaussauvan nastaliitännät on esitetty kaaviossa, jos tunnet epäselvyyttä, katso annettu pin-liitäntätaulukko.

Liikuttamalla ohjaussauvaa eteenpäin (YLÖS), taaksepäin (alas), oikealle ja vasemmalle, auto liikkuu vastaavasti.

kauko-ohjaussauva

Huomaa, että kaikki johdinliitännät ovat vasemmalla puolella, tämä on vertailupiste ja nyt voit siirtää ohjaussauvan kohtaan liikuta autoa .

Painamalla ohjainta Z-akselilla voit ohjata auton LED-valoa.

Ohjelma kaukosäätimelle:

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

Se päättää kaukosäätimen.

Katsotaanpa nyt vastaanotinta.

Vastaanotinpiiri sijoitetaan perusautoon. Jos sinulla on ajatuksia lisätä projektisi tälle liikkuvalle alustalle, suunnittele geometria oikein vastaanottimen ja projektisi sijoittamiseksi siten, että et loppu huoneesta.

Vastaanotin koostuu Arduinosta, L298N-kaksois-H-sillan tasavirtamoottorin ohjainmoduulista, valkoisesta LEDistä, joka sijoitetaan auton eteen, NRF24L01-moduulista ja 12 V: n, 1,3 Ah: n akusta. Moottoreiden mukana voi tulla perusauto.

Kaaviokuva vastaanottimesta:

Huomaa, että Arduino-kortin ja NRF24L01: n välistä yhteyttä EI esitetä yllä olevassa kaaviossa johdotuksen sekaannusten välttämiseksi. Katso kaukosäätimen kaavio.

Arduino-kortti saa virtansa L298N-moduulista, jonka se on rakentanut 5 V: n säätimellä.

Valkoinen LED voidaan sijoittaa päävaloksi tai voit mukauttaa tämän tapin tarpeidesi mukaan. Painamalla ohjainta, tappi # 7 muuttuu korkeaksi ja painamalla joystickiä uudelleen, tappi muuttuu matalaksi.

Kiinnitä huomiota vasemman ja oikean puolen moottoreihin, jotka on määritelty vastaanottimen kaaviossa.

Vastaanottimen ohjelma:

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

Se päättää vastaanottimen.

Projektin päätyttyä, jos auto liikkuu väärään suuntaan, käännä napaisuusmoottori vain päinvastaiseksi.

Jos perusautosi on 4-moottorinen pyöräveto, kytke vasen moottori rinnakkain samalla napaisuudella, tee sama oikeanpuoleisille moottoreille ja kytke L298N-ohjaimeen.

Jos sinulla on kysyttävää tästä ohjaussauvalla ohjatusta 2,4 GHz: n RC-autosta, joka käyttää Arduinoa, ilmaise mielipiteesi kommenttiosassa, saatat saada nopean vastauksen.




Edellinen: L298N DC -moottorin ohjainmoduuli selitetty Seuraava: Yksinkertainen digitaalinen vesivirtausmittaripiiri Arduinolla