ఆర్డునో ఉపయోగించి జాయ్ స్టిక్ 2.4 GHz RC కారును నియంత్రించింది

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





ఈ పోస్ట్‌లో మేము 2.4 GHz వైర్‌లెస్ కమ్యూనికేషన్ లింక్‌లో జాయ్‌స్టిక్‌ను ఉపయోగించి నియంత్రించగల కార్ రోబోట్‌ను నిర్మించబోతున్నాం. ప్రతిపాదిత ప్రాజెక్ట్ RC కారుగా మాత్రమే తయారు చేయబడదు, కానీ మీరు మీ ప్రాజెక్టులను నిఘా కెమెరా మొదలైన వాటిని కారులో చేర్చవచ్చు.



అవలోకనం

ప్రాజెక్ట్ రిమోట్ మరియు రిసీవర్ అని రెండు భాగాలుగా విభజించబడింది.

మా రిసీవర్ భాగాలన్నింటినీ ఉంచే కారు లేదా బేస్ మూడు వీల్ డ్రైవ్ లేదా ఫోర్ వీల్ డ్రైవ్ కావచ్చు.



మీరు బేస్ కారుకు మరింత స్థిరత్వం కావాలనుకుంటే లేదా ఆరుబయట వంటి అసమాన ఉపరితలంలో కారును నడపాలనుకుంటే, 4 చక్రాలతో కూడిన కార్ బేస్ సిఫార్సు చేయబడింది.

మీరు 3 వీల్ డ్రైవ్ బేస్ కారును కూడా ఉపయోగించవచ్చు, ఇది తిరిగేటప్పుడు మీకు ఎక్కువ చైతన్యాన్ని ఇస్తుంది, అయితే ఇది 4 వీల్ డ్రైవ్ కంటే తక్కువ స్థిరత్వాన్ని అందిస్తుంది.

4 చక్రాలతో కూడిన కారు కానీ, 2 మోటారు డ్రైవ్ కూడా సాధ్యమే.

రిమోట్ 9 వి బ్యాటరీతో శక్తినివ్వవచ్చు మరియు రిసీవర్ 12 వి, 1.3 ఎహెచ్ సీల్డ్ లీడ్ యాసిడ్ బ్యాటరీతో శక్తినివ్వవచ్చు, ఇది 12 వి, 7 ఎహెచ్ బ్యాటరీ కంటే చిన్న పాదముద్రను కలిగి ఉంటుంది మరియు అలాంటి పెరిప్యాటిక్ అనువర్తనాలకు కూడా అనువైనది.

మధ్య 2.4 GHz కమ్యూనికేషన్ NRF24L01 మాడ్యూల్ ఉపయోగించి స్థాపించబడింది, ఇది రెండు NRF24L01 మాడ్యూళ్ల మధ్య ఉన్న అడ్డంకులను బట్టి 30 నుండి 100 మీటర్లకు పైగా సంకేతాలను ప్రసారం చేయగలదు.

NRF24L01 మాడ్యూల్ యొక్క ఉదాహరణ:

ఇది 3.3V పై పనిచేస్తుంది మరియు 5V మాడ్యూల్‌ను చంపగలదు కాబట్టి, జాగ్రత్త తీసుకోవాలి మరియు ఇది SPI కమ్యూనికేషన్ ప్రోటోకాల్‌పై పనిచేస్తుంది. పై చిత్రంలో పిన్ కాన్ఫిగరేషన్ అందించబడింది.

రిమోట్:

రిమోట్‌లో ఆర్డునో (ఆర్డునో నానో / ప్రో-మినీ సిఫార్సు చేయబడింది), ఎన్‌ఆర్‌ఎఫ్ 24 ఎల్ 01 మాడ్యూల్, జాయ్ స్టిక్ మరియు బ్యాటరీ విద్యుత్ సరఫరా ఉన్నాయి. వాటిని చిన్న జంక్ బాక్స్‌లో ప్యాక్ చేయడానికి ప్రయత్నించండి, ఇది నిర్వహించడం సులభం అవుతుంది.

రిమోట్ కోసం స్కీమాటిక్ రేఖాచిత్రం:

NRF24L01 మాడ్యూల్ మరియు జాయ్ స్టిక్ కోసం పిన్ కనెక్షన్లు రేఖాచిత్రంలో అందించబడ్డాయి, మీకు ఏదైనా గజిబిజి అనిపిస్తే, దయచేసి ఇచ్చిన పిన్ కనెక్షన్ పట్టికను చూడండి.

జాయ్‌స్టిక్‌ను ముందుకు (యుపి), రివర్స్ (డౌన్), కుడి మరియు ఎడమకు తరలించడం ద్వారా కారు తదనుగుణంగా కదులుతుంది.

రిమోట్ కార్ జాయ్ స్టిక్

అన్ని వైర్ కనెక్షన్లు ఎడమ వైపున ఉన్నాయని దయచేసి గమనించండి, ఇది రిఫరెన్స్ పాయింట్ మరియు ఇప్పుడు మీరు జాయ్ స్టిక్ కి తరలించవచ్చు కారు తరలించండి .

Z అక్షంలో జాయ్‌స్టిక్‌ను నొక్కడం ద్వారా మీరు కారుపై LED లైట్‌ను నియంత్రించవచ్చు.

రిమోట్ కోసం ప్రోగ్రామ్:

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

అది రిమోట్‌ను ముగించింది.

ఇప్పుడు రిసీవర్‌ని చూద్దాం.

రిసీవర్ సర్క్యూట్ బేస్ కారుపై ఉంచబడుతుంది. ఈ కదిలే స్థావరంలో మీ ప్రాజెక్ట్ను జోడించడానికి మీకు ఏమైనా ఆలోచన ఉంటే, రిసీవర్ మరియు మీ ప్రాజెక్ట్ను ఉంచడానికి జ్యామితిని సరిగ్గా ప్లాన్ చేయండి, తద్వారా మీరు గది నుండి బయటపడరు.

రిసీవర్‌లో ఆర్డునో, ఎల్ 298 ఎన్ డ్యూయల్ హెచ్-బ్రిడ్జ్ డిసి మోటారు డ్రైవర్ మాడ్యూల్, కారు ముందు ఉంచబడే వైట్ ఎల్‌ఇడి, ఎన్‌ఆర్‌ఎఫ్ 24 ఎల్ 01 మాడ్యూల్ మరియు 12 వి, 1.3 ఎహెచ్ బ్యాటరీ ఉన్నాయి. మోటార్లు బేస్ కారుతో రావచ్చు.

రిసీవర్ కోసం స్కీమాటిక్ రేఖాచిత్రం:

వైరింగ్ గందరగోళాన్ని నివారించడానికి Arduino బోర్డు మరియు NRF24L01 మధ్య కనెక్షన్ పై రేఖాచిత్రంలో చూపబడదని దయచేసి గమనించండి. దయచేసి రిమోట్ యొక్క స్కీమాటిక్ చూడండి.

ఆర్డునో బోర్డు 5 వి రెగ్యులేటర్‌లో నిర్మించిన ఎల్ 298 ఎన్ మాడ్యూల్ ద్వారా శక్తిని పొందుతుంది.

తెలుపు ఎల్‌ఈడీని హెడ్ లైట్‌గా ఉంచవచ్చు లేదా మీరు ఈ పిన్‌ను మీ అవసరాలకు అనుకూలీకరించవచ్చు, జాయ్‌స్టిక్‌ను నొక్కడం ద్వారా, పిన్ # 7 అధికంగా మారుతుంది మరియు జాయ్‌స్టిక్‌ను మళ్లీ నొక్కితే పిన్ తక్కువగా మారుతుంది.

దయచేసి రిసీవర్ స్కీమాటిక్ రేఖాచిత్రంలో పేర్కొన్న ఎడమ మరియు కుడి వైపు మోటారులపై శ్రద్ధ వహించండి.

స్వీకర్త కోసం ప్రోగ్రామ్:

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

అది రిసీవర్‌ను ముగించింది.

ప్రాజెక్ట్ పూర్తయిన తర్వాత, కారు తప్పు దిశలో కదులుతుంటే ధ్రువణత మోటారును రివర్స్ చేయండి.

మీ బేస్ కారు 4 మోటార్లు వీల్ డ్రైవ్ అయితే, ఎడమ మోటార్లు ఒకే ధ్రువణతకు సమాంతరంగా కనెక్ట్ చేయండి, కుడి వైపు మోటారుల కోసం అదే చేయండి మరియు L298N డ్రైవర్‌కు కనెక్ట్ చేయండి.

Arduino ఉపయోగించి ఈ జాయ్ స్టిక్ నియంత్రిత 2.4 GHz RC కారు గురించి మీకు ఏమైనా ప్రశ్న ఉంటే, వ్యాఖ్య విభాగంలో సంకోచించకండి, మీకు శీఘ్ర సమాధానం లభిస్తుంది.




మునుపటి: L298N DC మోటార్ డ్రైవర్ మాడ్యూల్ వివరించబడింది తర్వాత: ఆర్డునో ఉపయోగించి సింపుల్ డిజిటల్ వాటర్ ఫ్లో మీటర్ సర్క్యూట్