Ar kursorsviru vadāma 2,4 GHz RC automašīna, izmantojot Arduino

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā ierakstā mēs gatavojamies konstruēt automašīnas robotu, kuru var vadīt, izmantojot 2,4 GHz bezvadu sakaru saiti, izmantojot kursorsviru. Piedāvātais projekts tiek veidots ne tikai kā RC automašīna, bet uz automašīnas varat pievienot savus projektus, piemēram, novērošanas kameru utt.



Pārskats

Projekts ir sadalīts divās daļās - tālvadības pults un uztvērējs.

Automašīna vai pamatne, kur mēs ievietojam visus uztvērēja komponentus, var būt trīs vai četru riteņu piedziņa.



Ja vēlaties lielāku stabilitāti bāzes automašīnai vai ja vēlaties vadīt automašīnu nelīdzenā virsmā, piemēram, ārpus telpām, ieteicams izmantot automašīnas pamatni ar 4 riteņiem.

Varat arī izmantot trīs riteņu piedziņas bāzes automašīnu, kas nodrošina lielāku mobilitāti pagrieziena laikā, taču tas var nodrošināt mazāku stabilitāti nekā četru riteņu piedziņa.

Iespējama arī automašīna ar 4 riteņiem, bet ar 2 motoru piedziņu.

Tālvadības pulti var darbināt ar 9V akumulatoru, un uztvērēju var darbināt ar 12V, 1,3 AH aizzīmogotu svina skābes akumulatoru, kuram ir mazāks nospiedums nekā 12V, 7AH akumulatoram, un tas ir ideāli piemērots arī šādām peripatetiskām lietojumprogrammām.

2,4 GHz sakari tiek izveidoti, izmantojot NRF24L01 moduli, kas var pārraidīt signālus no 30 līdz 100 metriem atkarībā no šķēršļiem starp diviem NRF24L01 moduļiem.

NRF24L01 moduļa ilustrācija:

Tas darbojas ar 3,3 V un 5 V var nogalināt moduli, tāpēc jābūt uzmanīgam un darbam ar SPI sakaru protokolu. Piespraudes konfigurācija ir sniegta iepriekš redzamajā attēlā.

Tālvadības pults:

Tālvadības pults sastāv no Arduino (ieteicams lietot Arduino nano / pro-mini), NRF24L01 moduli, kursorsviru un akumulatora barošanas avotu. Mēģiniet tos iesaiņot nelielā nevēlamā kastē, ar kuru būs vieglāk rīkoties.

Shematiska shēma tālvadībai:

NRF24L01 moduļa un kursorsviras tapu savienojumi ir norādīti diagrammā. Ja jūtat neskaidrības, lūdzu, skatiet norādīto tapu savienojumu tabulu.

Pārvietojot kursorsviru uz priekšu (UP), atpakaļ (uz leju), pa labi un pa kreisi, automašīna attiecīgi pārvietojas.

tālvadības automašīnas kursorsviru

Lūdzu, ņemiet vērā, ka visi vadu savienojumi atrodas kreisajā pusē, tas ir atskaites punkts, un tagad jūs varat pārvietot kursorsviru uz pārvietojiet automašīnu .

Nospiežot kursorsviru Z asī, jūs varat kontrolēt automašīnas LED gaismu.

Programma tālvadībai:

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

Ar to tālvadība ir pabeigta.

Tagad apskatīsim uztvērēju.

Uztvērēja ķēde tiks novietota uz bāzes automašīnas. Ja jums ir ideja pievienot savu projektu šai kustīgajai pamatnei, pareizi izplānojiet ģeometriju uztvērēja un projekta novietošanai tā, lai nepietrūktu telpas.

Uztvērējs sastāv no Arduino, L298N divējāda H tilta līdzstrāvas motora draivera moduļa, baltas gaismas diodes, kas tiks novietota automašīnas priekšā, NRF24L01 moduļa un 12V, 1.3AH akumulatora. Motori var būt aprīkoti ar bāzes automašīnu.

Uztvērēja shēma:

Lūdzu, ņemiet vērā, ka savienojums starp Arduino dēli un NRF24L01 NAV parādīts iepriekš redzamajā diagrammā, lai izvairītos no neskaidrībām ar elektroinstalāciju. Lūdzu, skatiet tālvadības shēmu.

Arduino dēlis tiks darbināts ar L298N moduli, kuru tas ir iebūvējis 5V regulatorā.

Balto gaismas diode var būt novietota kā galvas gaisma, vai arī jūs varat pielāgot šo tapu savām vajadzībām, nospiežot kursorsviru, tapa Nr. 7 pagriežas augstu un, nospiežot kursorsviru vēlreiz, tapa kļūst zemāka.

Lūdzu, pievērsiet uzmanību kreisās un labās puses motoriem, kas norādīti uztvērēja shematiskajā shēmā.

Uztvērēja programma:

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

Ar to uztvērējs noslēdzas.

Pēc projekta pabeigšanas, ja automašīna pārvietojas nepareizā virzienā, vienkārši apgrieziet polaritātes motoru.

Ja jūsu bāzes automašīnai ir četru motoru piedziņa, pievienojiet kreisos motorus paralēli ar tādu pašu polaritāti, dariet to pašu labās puses motoriem un pievienojiet L298N vadītājam.

Ja jums ir kādi jautājumi par šo kursorsviru kontrolēto 2,4 GHz RC automašīnu, izmantojot Arduino, nekautrējieties izteikt komentāru sadaļā, iespējams, saņemsit ātru atbildi.




Pāri: Izskaidrots L298N līdzstrāvas motora draivera modulis Nākamais: vienkārša digitālā ūdens plūsmas mērītāja shēma, izmantojot Arduino