इस लाइन फॉलोअर रोबोट को साइंस फेयर प्रोजेक्ट के लिए बनाएं

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





इस पोस्ट में हम Arduino का उपयोग करते हुए एक लाइन फॉलोवर रोबोट सर्किट का निर्माण करना सीखते हैं, जो एक विशेष रूप से तैयार लाइन लेआउट पर चलेगा और जब तक यह उपलब्ध है और इसके सेंसर द्वारा पता लगाने योग्य है, तब तक ईमानदारी से इसका पालन करेंगे।

By Navneet Sajwan



क्या एक लाइन अनुयायी रोबोट है

एक स्वायत्त रोबोट एक मशीन है जो प्रोग्रामर द्वारा निर्देश के अनुसार कार्यों की एक श्रृंखला ले सकता है, वास्तविक समय में मानव द्वारा मैन्युअल रूप से नियंत्रित किए बिना।

लाइन फॉलोअर्स (LFR) भी स्वायत्त रोबोट कारें हैं जो एक या अधिक सेंसर और एक काले या सफेद लाइन पथ द्वारा निर्देशित होती हैं। वे आधुनिक स्व-ड्राइविंग कारों का आधार बनाते हैं।



प्रत्येक स्वायत्त रोबोट की तरह, लाइन अनुयायियों में सिग्नल प्रोसेसिंग और निर्णय लेने की इकाई, सेंसर और एक्ट्यूएटर्स होते हैं। यदि आप रोबोटिक्स में एक शुरुआत कर रहे हैं और इसे गंभीरता से लेना चाहते हैं, तो यह वह जगह है जहाँ आपको शुरू करना चाहिए। चलिए इसे बनाना शुरू करते हैं।

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

आवश्यक घटक:

अरुडिनो अनो

हवाई जहाज़ के पहिये

दो बैटरी संचालित (b.o।) मोटर्स और संगत टायर

कैस्टर बॉल

दो इंफ्रारेड सेंसर

मोटर चालक मॉड्यूल

बिजली की आपूर्ति

Arduino IDE सॉफ्टवेयर

अब, हमारे घटकों पर एक नजर डालते हैं:

ARDUINO एक : कल्पना कीजिए कि यह हमारे रोबोट के नियंत्रण कक्ष के रूप में है। अब, बहुत सारे विकास बोर्ड हैं, जिन्हें इस परियोजना के लिए माना जाता था, लेकिन Arduino UNO का दूसरों से कोई मुकाबला नहीं था। ऐसा नहीं है कि हमारे नायक अपनी बहुआयामी विशेषताओं के मामले में श्रेष्ठ थे।

अगर ऐसा होता, तो रास्पबेरी पाई और इंटेल एडिसन ने इसे आंखों के बीच में दबा दिया होता। Arduino UNO के चयन के लिए सबसे सम्मोहक तर्क परियोजना के लिए सुविधाओं, मूल्य, आकार और आवश्यकता के संयोजन द्वारा बनाए गए थे।

कुछ प्रासंगिक कारण थे:

आकार : यह Atmega16 या Atmega8 आधारित विकास बोर्डों की तुलना में काफी छोटा है, चेसिस पर थोड़ी जगह की खपत करता है, इसलिए आपको एक कॉम्पैक्ट और आसान बॉट मिलता है।

यह वास्तव में रोबोटिक्स प्रतियोगिताओं में मायने रखता है। मुझे विश्वास है कि आप उस बड़े बदसूरत बॉट के साथ घूमने से नफरत करेंगे, पूरे दिन स्थानों को बदलते रहेंगे।

छोटा आकार, तेजी से रोबोट और अधिक कुशल बदल जाता है।

सर्वश्रेष्ठ प्रचार बोर्ड : निस्संदेह, Arduino UNO के लिए सुविधाओं का सबसे अच्छा संयोजन है प्रोटोटाइप । एक बार जब आपके सर्किट जगह में होते हैं और आपकी परियोजना सही काम करती है तो आप इसे कुछ छोटे और सस्ते जैसे Arduino Nano और Attiny85 ic से बदल सकते हैं।

उन लोगों के लिए, जो कॉलेज की परियोजनाओं के लिए लाइन फॉलोअर बना रहे हैं, मैं अंत में नैनो के साथ यूएनओ को बदलने का सुझाव देता हूं।

न्याधार : यह फ्रेम है जो सभी घटकों को स्थिति में रखता है। नई चेसिस खरीदते समय विचार करने के लिए कुछ बिंदु हैं,

यह हल्का और मजबूत होना चाहिए।

परियोजनाओं के लिए, यह बेहतर है यदि आप बाजार से एक खरीदते हैं। लेकिन यदि आप प्रतियोगिता के लिए तैयारी कर रहे हैं, तो मैं दृढ़ता से सुझाव देता हूं कि आप अपने खुद के अनुकूलित करें, प्रतियोगिता के आयामों और आवश्यकताओं को ध्यान में रखते हुए।

प्लास्टिक या लकड़ी की चेसिस चुनें। जब धातु के फ्रेम Arduino के संपर्क में आते हैं, तो बहुत सारे पिन शॉर्ट हो जाते हैं। चेसिस की तलाश करते समय ध्यान केंद्रित करने के लिए यह एक बड़ा कारक है।

अपनी चेसिस को जितना हो सके कम रखें - इससे बॉट को स्थिरता मिलती है।

मोटर्स : हल्के वजन की बैटरी संचालित (बी.ओ.) डी.सी. मोटर्स।

कास्टर बॉल : सामान्य पहिये एक धुरी के साथ अनुवाद संबंधी गति प्रदान करते हैं लेकिन एक कैस्टर बॉल को सतह पर किसी भी दिशा में ले जाने के लिए डिज़ाइन किया गया है। यह हमें तीन पहिया ड्राइव देता है।

4 पहियों पर तीन पहिया ड्राइव को प्राथमिकता देने का कारण इसकी तुलनात्मक रूप से तेज मोड़ कार्रवाई है। आपने देखा होगा कि रिक्शों जैसे ट्रैफ़िक के माध्यम से साइकिल रिक्शा में छेद किया जाता है। हमारे रोबोट का भी यही हाल है।

सेंसर : यह एक ऐसा उपकरण है जो हमारे पर्यावरण के किसी भी भौतिक पैरामीटर का पता लगाता है या मापता है और इसे विद्युत संकेतों में परिवर्तित करता है। इस मामले में पाया गया पैरामीटर इन्फ्रा-रेड किरणें हैं।

किसी भी रोबोट के लिए सेंसर अत्यधिक मौलिक होते हैं। ठीक है, अगर आर्डिनो हमारे बॉट का दिमाग है, तो सेंसर आंखों की भूमिका भी निभा सकते हैं। यहाँ सेंसर के बारे में कुछ बातें हैं:

सेंसर को इस तरह से उन्मुख होना चाहिए कि जमीन का सामना करना पड़े।

अपने बॉट के सामने के छोर पर रखा जाना चाहिए।

उनके बीच की न्यूनतम दूरी काली रेखा की चौड़ाई से अधिक होनी चाहिए।

मोटर चालक बोर्ड : मोटर-चालक बफर सर्किट होते हैं जो मोटरों को उच्च वोल्टेज की आवश्यकता के लिए कम वोल्टेज संकेतों को उठाते हैं।

हमारे मामले में, Arduino मोटरों को चलाने के लिए पर्याप्त वोल्टेज प्रदान कर सकता है, लेकिन यह पर्याप्त वर्तमान प्रदान नहीं कर सकता है। Arduino UNO के 5v और GND पिन की वर्तमान रेटिंग 200mA है जबकि किसी भी GPIO पिन की रेटिंग 40 mA है। यह हमारे द्वारा शुरू की जाने वाली स्टाल और स्टाल की मोटरों की तुलना में कम है।

दो मोटर चालक हैं जिन्हें मैं इस परियोजना के लिए पसंद करता हूं: L298N और L293D। यह दोनों इस परियोजना को बनाने के लिए समान रूप से उपयुक्त हैं।

हालांकि, L293D तुलनात्मक रूप से सस्ता है लेकिन कम वर्तमान रेटिंग है। उनके कनेक्शन लगभग समान हैं। चूंकि, मैंने दोनों के लिए कनेक्शन दिए हैं, यह पूरी तरह से आपके ऊपर है कि आप अपना बॉट कैसे बनाते हैं।

बिजली की आपूर्ति :

12 v एडॉप्टर या बैटरी (12 वोल्ट से अधिक नहीं) का उपयोग करें।

घटकों का प्लेसमेंट (आगे से लेकर अंत तक):

आपके बॉट के सिर पर सेंसर।

बीच में कैस्टर व्हील।

पीछे एक पंक्ति में मोटर्स और टायर।

सम्बन्ध:

ARDUINO के लिए सेंसर :

जैसा कि दिखाया गया है, arduino पिन से सेंसर पिन कनेक्ट करें,

सेंसर पिनअरुडिनो पिन
VCC (5v)5 वी
GND (G)GND
बाएँ सेंसर (डीओ)पिन ६
राइट सेंसर आउट (डीओ)पिन 7

नोट: यह जांचने के लिए कि क्या आपके सेंसर संचालित हैं, अपने मोबाइल फोन के कैमरे को IR ट्रांसमीटर पर ले जाएं। आप स्क्रीन पर चमकता हुआ एलईडी देखेंगे जो हमारी नग्न आंखों द्वारा नहीं देखा जा सकता है। कुछ आधुनिक सेल फोन कैमरों में इंफ्रा रेड फिल्टर होता है। तो, कृपया इसे ध्यान में रखें।

मोटर चालक के लिए मोटर:

प्रत्येक मोटर में दो टर्मिनल होते हैं जिन्हें मोटर चालक से जोड़ने की आवश्यकता होती है। कभी भी उन्हें सीधे आर्डूइनो से जोड़ने की कोशिश न करें। अपने बॉट के पीछे से, आप के पास मोटर्स और दूर सेंसर के साथ, उन्हें निम्नानुसार कनेक्ट करें:

यन्त्रL298NL293D
बाएँ मोटरपिन 1 और 2िपन 7 और 8
राइट मोटरपिन १३ और १४िपन ९ और १०

मोटर चालक को संयुक्त राष्ट्र संघ:

मोटर चालक (L298N)ARDUINO एक
पिन ४वाइन
पिन ५GND
पिन ६5 वी
पिन 8 और पिन 9पिन 3 और पिन 9
पिन १० और पिन ११पिन 5 और पिन 10
पिन 7 और पिन 125 वी
मोटर चालक (L293D)ARDUINO एक
पिन ३वाइन
पिन २GND
पिन १5 वी
पिन 5 और पिन 6पिन 3 और पिन 9
पिन ११ और पिन १२पिन 5 और पिन 10
पिन 4 और पिन 55 वी

नोट: l298n के पिन 8 और 9 का उपयोग 1 और 2 से जुड़ी मोटर को नियंत्रित करने के लिए किया जाता है। और, 10 और 11 नियंत्रण मोटर पिंस 13 और 14 से जुड़ा हुआ है। 7 और 8.And, 12 और 11 कंट्रोल मोटर पिन 9 और 10 से जुड़े।

यहाँ हम लोग हैं, डिज़ाइन भाग के अंत तक। हमारे पास अभी भी कोडिंग है लेकिन इससे पहले हम उन सिद्धांतों से गुजरेंगे जो लाइन-फॉलो करने की अनुमति देते हैं।

इंफ्रा रेड सेंसर कैसे काम करता है:

इन्फ़रा रेड सेंसर (IR सेंसर) का उपयोग रंगों के विपरीत और वस्तुओं की निकटता को समझने में किया जा सकता है। आईआर सेंसर के काम के पीछे सिद्धांत बहुत बुनियादी है।

जैसा कि हम देख सकते हैं, इसमें दो एलईडी हैं - आईआर उत्सर्जित एलईडी और एक फोटोडायोड। वे ट्रांसमीटर-रिसीवर जोड़ी के रूप में कार्य करते हैं। जब एक बाधा उत्सर्जक किरणों के सामने आती है, तो वे वापस परावर्तित होती हैं और रिसीवर द्वारा रोक दी जाती हैं।

यह एक डिजिटल सिग्नल उत्पन्न करता है जिसे माइक्रोकंट्रोलर और एक्ट्यूएटर्स को एनकाउंटर में आवश्यक कार्रवाई करने के लिए खिलाया जा सकता है।

बुनियादी भौतिकी हमें बताती है कि एक काला शरीर उस पर सभी विद्युत चुम्बकीय विकिरण घटना को अवशोषित करता है जबकि एक सफेद शरीर इसे दर्शाता है। यह सिद्धांत सफेद और काली सतह के बीच अंतर करने के लिए एक लाइन अनुयायी द्वारा शोषण किया जाता है।

एक लाइन अनुयायी रोबोट कैसे काम करता है:

लाइन लॉयल्टी

सामान्य स्थिति में, रोबोट इस तरह से चलता है कि दोनों सेंसर सफेद रंग से अधिक हैं और दोनों सेंसर के बीच में काली रेखा है।

इसे दोनों मोटरों को घुमाने के लिए प्रोग्राम किया जाता है ताकि बॉट आगे की दिशा में चले।

स्वाभाविक रूप से, जैसे ही समय समाप्त होता है, दोनों में से एक सेंसर काली रेखा पर आ जाता है।

यदि बाएं सेंसर लाइन पर आता है, तो बाएं मोटर्स को आराम करने के लिए लाया जाता है और परिणामस्वरूप बॉट बाईं ओर मुड़ना शुरू कर देता है जब तक कि बाएं सेंसर सफेद सतह पर वापस नहीं आता है और सामान्य स्थिति प्राप्त होती है।

इसी तरह, जब राइट सेंसर ब्लैक लाइन पर आता है, तो राइट मोटर्स बंद हो जाते हैं और परिणामस्वरूप बॉट अब दाईं ओर मुड़ जाता है, जब तक कि सेंसर सफेद सतह पर वापस नहीं आता है। मोड़ के इस तंत्र को अंतर ड्राइव तंत्र के रूप में जाना जाता है।

सर्किट आरेख:

तारों का विवरण:

प्रगति और अवधारणाएं:

सर्किट भाग के साथ करने के बाद, हम अब प्रोग्रामिंग भाग पर आगे बढ़ेंगे। इस खंड में, हम उस कार्यक्रम को समझेंगे जो हमारे रोबोट को नियंत्रित करता है। यहाँ कोड है: / *
Created and tested by Navneet Singh Sajwan
*Based on digital output of two sensors
*Speed control added
*/
int left, right
int value=250
void setup()
{
pinMode(6,INPUT)//left sensor
pinMode(7,INPUT)//right sensor
pinMode(9,OUTPUT)//left motor
pinMode(3,OUTPUT)//left motor
pinMode(10,OUTPUT)//right motor
pinMode(5,OUTPUT)//right motor
// Serial.begin(9600)
}
void read_sensors()
{
left=digitalRead(6)
right= digitalRead(7)
}
void move_forward()
{
analogWrite(9,value)//3,9 for left motor
digitalWrite(3,LOW)
analogWrite(10,value)//10,5 for right motor
digitalWrite(5,LOW)
}
void turn_left()
{
digitalWrite(9,LOW)//9,3 for left motor
digitalWrite(3,LOW)
analogWrite(10,value)//10,5 for right motor
digitalWrite(5,LOW)
}
void turn_right()
{
analogWrite(9,value)// 9,3 for left motor
digitalWrite(3,LOW)
digitalWrite(10,LOW)// 10,5 for right motor
digitalWrite(5,LOW)
}
void halt()
{
digitalWrite(9,LOW)// 9,3 for left motor
digitalWrite(3,LOW)
digitalWrite(10,LOW)// 10,5 for right motor
digitalWrite(5,LOW)
}
void print_readings()
{
Serial.print(' leftsensor')
Serial.print(' ')
Serial.print(left)
Serial.print('rightsensor')
Serial.print(' ')
Serial.print(right)
Serial.println()
}
void loop()
{
read_sensors()
while((left==0)&&(right==1)) // left sensor is over black line
{
turn_left()
read_sensors()
print_readings()
}
while((left==1)&&(right==0)) // right sensor is over black line
{
turn_right()
read_sensors()
print_readings()
}
while((left==0)&&(right==0)) // both sensors over the back line
{
halt()
read_sensors()
print_readings()
}
while((left==1)&&(right==1))// no sensor over black line
{
move_forward()
read_sensors()
print_readings()
}
}

उपयोग किए गए कार्यों का विवरण:

read_sensors (): यह दोनों सेंसरों की रीडिंग लेता है और उन्हें बाएँ और दाएँ चर में संग्रहीत करता है।

Move_forward (): जब Arduino इस फ़ंक्शन को निष्पादित करता है, तो दोनों मोटर्स आगे की दिशा में चलते हैं।

turn_left (): बाईं मोटर बंद हो जाती है। बॉट बाएं मुड़ता है।

turn_right (): सही मोटर बंद हो जाता है। बॉट सही हो जाता है।

पड़ाव (): बॉट बंद हो जाता है।

Print_readings (): सीरियल मॉनिटर पर सेंसर की रीडिंग प्रदर्शित करता है। इसके लिए आपको शून्य सेटअप में “Serial.begin (9600)” को अनफॉलो करना होगा।

सेंसर की रिपोर्ट:

सेंसर ओवर लाइनसेंसर की रिपोर्ट
बाएंसही
बाएँ सेंसर1
सही सेंसर1
कोई नहीं11
दोनों

गति नियंत्रण:

कभी-कभी मोटर्स की गति इतनी अधिक होती है कि इससे पहले कि arduino सेंसर सिग्नल की व्याख्या करता है, रोबोट लाइन खो देता है। संक्षेप में, बॉट उच्च गति के कारण लाइन का पालन नहीं करता है और एल्गोरिथ्म सही होने के बावजूद लाइन खोता रहता है।

ऐसी परिस्थितियों से बचने के लिए, हम पीडब्लूएम तकनीक का उपयोग करके बॉट की गति को कम करते हैं। ऊपर दिए गए कोड में एक वैरिएबल है जिसका नाम वैल्यू है।

गति को कम करने के लिए बस फ़ंक्शन में संख्यात्मक मान को कम करें। Arduino UNO में आप केवल 0 से 255 के बीच pwm मान रख सकते हैं।

एनालॉग वाइट (पिन, मूल्य)

०<= value <=255

यह लाइन अनुयायी पर मेरी पोस्ट का अंत है। मुझे आशा है कि यह आपके सभी ज्वलंत प्रश्नों का उत्तर देने के लिए पर्याप्त है और यदि यह वास्तविक वास्तविकता में नहीं है, तो हमारे पास आपके लिए हमेशा टिप्पणी अनुभाग उपलब्ध है। अपनी शंकाओं पर टिप्पणी करें। एक खुशहाल टिंकरिंग करें!




पिछला: DTMF मॉड्यूल का उपयोग करते हुए मोबाइल फोन नियंत्रित रोबोट कार अगला: पासवर्ड नियंत्रित एसी पर / बंद स्विच