जॉयस्टिक ने Arduino का उपयोग करते हुए 2.4 GHz RC कार को नियंत्रित किया

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





इस पोस्ट में हम एक कार रोबोट का निर्माण करने जा रहे हैं जिसे 2.4 गीगाहर्ट्ज वायरलेस संचार लिंक पर जॉयस्टिक का उपयोग करके नियंत्रित किया जा सकता है। प्रस्तावित परियोजना न केवल आरसी कार के रूप में बनाई गई है, बल्कि आप अपनी परियोजनाओं जैसे कि निगरानी कैमरे आदि को कार पर जोड़ सकते हैं।



अवलोकन

परियोजना को दो भागों में विभाजित किया गया है रिमोट और रिसीवर।

कार या आधार, जहां हम अपने सभी रिसीवर घटकों को रखते हैं तीन पहिया ड्राइव या चार पहिया ड्राइव हो सकते हैं।



यदि आप बेस कार के लिए अधिक स्थिरता चाहते हैं या यदि आप कार को असमान सतह पर चलाना चाहते हैं, जैसे कि बाहर की ओर, तो 4 पहियों वाले कार बेस की सिफारिश की जाती है।

आप 3 पहिया ड्राइव बेस कार का उपयोग भी कर सकते हैं जो आपको मोड़ते समय अधिक गतिशीलता प्रदान करते हैं, लेकिन यह 4 पहिया ड्राइव की तुलना में कम स्थिरता प्रदान कर सकता है।

4 पहियों वाली कार लेकिन, 2 मोटर ड्राइव भी संभव है।

रिमोट को 9V बैटरी से संचालित किया जा सकता है और रिसीवर को 12V, 1.3 AH की सीसे वाली एसिड बैटरी से संचालित किया जा सकता है, जिसमें 12V, 7AH की बैटरी से छोटे पदचिह्न होते हैं और ऐसे पेरेपिटिक एप्लिकेशन के लिए भी आदर्श होते हैं।

2.4 GHz संचार के बीच NRF24L01 मॉड्यूल का उपयोग करके स्थापित किया गया है जो दो NRF24L01 मॉड्यूल के बीच की बाधाओं के आधार पर 30 से 100 मीटर तक सिग्नल प्रसारित कर सकता है।

NRF24L01 मॉड्यूल का चित्रण:

यह 3.3V पर काम करता है और 5V मॉड्यूल को मार सकता है, इसलिए देखभाल की जानी चाहिए और यह SPI संचार प्रोटोकॉल पर काम करता है। पिन कॉन्फ़िगरेशन उपरोक्त छवि में प्रदान की गई है।

दूरस्थ:

रिमोट में Arduino (Arduino nano / pro-mini की सिफारिश की गई है), NRF24L01 मॉड्यूल, एक जॉयस्टिक और एक बैटरी पावर सप्लाई है। उन्हें एक छोटे से जंक बॉक्स में पैक करने का प्रयास करें, जिसे संभालना आसान होगा।

रिमोट के लिए योजनाबद्ध आरेख:

NRF24L01 मॉड्यूल और जॉयस्टिक के लिए पिन कनेक्शन आरेख में प्रदान किया गया है, यदि आपको कोई गड़बड़ी महसूस होती है, तो कृपया दिए गए पिन कनेक्शन तालिका को देखें।

जॉयस्टिक को आगे (यूपी), रिवर्स (डाउन), दाएं और बाएं घुमाकर, कार उसी के अनुसार चलती है।

रिमोट कार जॉयस्टिक

कृपया ध्यान दें कि सभी तार कनेक्शन बाईं ओर हैं, यह संदर्भ बिंदु है और अब आप जॉयस्टिक को आगे बढ़ा सकते हैं गाड़ी घुमाओ

जेड अक्ष में जॉयस्टिक को दबाकर आप कार पर एलईडी प्रकाश को नियंत्रित कर सकते हैं।

रिमोट के लिए कार्यक्रम:

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

जो रिमोट का समापन करता है।

अब रिसीवर पर एक नज़र डालते हैं।

रिसीवर सर्किट को बेस कार पर रखा जाएगा। यदि आपके पास इस मूविंग बेस पर अपनी परियोजना को जोड़ने का कोई विचार है, तो रिसीवर और आपके प्रोजेक्ट को रखने के लिए ज्यामिति की योजना ठीक से बनाएं, ताकि आप कमरे से बाहर न निकलें।

रिसीवर में Arduino, L298N डुअल H- ब्रिज DC मोटर ड्राइवर मॉड्यूल, व्हाइट LED हैं जो कार, NRF24L01 मॉड्यूल और 12V, 1.3AH बैटरी के सामने रखे जाएंगे। मोटर्स बेस कार के साथ आ सकती है।

रिसीवर के लिए योजनाबद्ध आरेख:

कृपया ध्यान दें कि वायरिंग भ्रम से बचने के लिए Arduino बोर्ड और NRF24L01 के बीच कनेक्शन उपरोक्त आरेख में नहीं दिखाया गया है। कृपया रिमोट की योजनाबद्ध देखें।

Arduino बोर्ड L298N मॉड्यूल द्वारा संचालित होगा, जिसे 5V नियामक में बनाया गया है।

सफेद एलईडी को हेड लाइट के रूप में रखा जा सकता है या आप जॉयस्टिक को दबाकर इस पिन को अपनी आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं, पिन # 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 गीगाहर्ट्ज आरसी कार के बारे में कोई प्रश्न है, तो टिप्पणी अनुभाग में व्यक्त करने के लिए स्वतंत्र महसूस करें, आपको एक त्वरित उत्तर प्राप्त हो सकता है।




पिछला: L298N डीसी मोटर चालक मॉड्यूल समझाया अगला: Arduino का उपयोग करके सरल डिजिटल जल प्रवाह मीटर सर्किट