- लाइन फॉलोअर रोबोट की अवधारणा
- अवयव आवश्यक
- सर्किट आरेख
- लाइन अनुयायी रोबोट के लिए Atmega16 प्रोग्रामिंग
यहां हम AVR Atmega16 माइक्रोकंट्रोलर के साथ एक और परियोजना का निर्माण करेंगे । यदि आप AVR माइक्रोकंट्रोलर के लिए नए हैं तो आप पिछले AVR प्रोजेक्ट्स और ट्यूटोरियल्स का उल्लेख कर सकते हैं।
रोबोट का निर्माण हमेशा सभी इलेक्ट्रॉनिक्स शौकियों के लिए एक रोमांच है। और इस रोमांच को अधिकतम किया जा सकता है अगर रोबोट स्वचालित रूप से बिना किसी बाहरी निर्देश के कुछ चीजें कर सकता है। इलेक्ट्रॉनिक्स शुरुआती द्वारा सबसे अधिक निर्मित रोबोट में से एक लाइन फॉलोअर रोबोट है । जैसा कि नाम से पता चलता है कि रोबोट सतह पर खींची गई रेखा का अनुसरण करेगा। लाइन एक सीधी रेखा नहीं होनी चाहिए। इसके अलावा, लाइनें किसी भी रंग की हो सकती हैं।
हमने पहले अलग-अलग नियंत्रकों का उपयोग करके लाइन फॉलोवर रोबोट परियोजनाएं बनाई थीं:
- 8051 माइक्रोकंट्रोलर का उपयोग कर लाइन फॉलोवर रोबोट
- PIC माइक्रोकंट्रोलर का उपयोग करके लाइन फॉलोवर रोबोट
- Arduino का उपयोग कर लाइन अनुयायी रोबोट
- रास्पबेरी पाई का उपयोग कर लाइन अनुयायी रोबोट
- MSP430 लॉन्चपैड का उपयोग करते हुए लाइन फॉलोअर रोबोट
आज हम लाइन अनुयायी रोबोट बनाने के लिए AVR माइक्रोकंट्रोलर का उपयोग करेंगे ।
ज्यादातर आईआर सेंसर लाइनों का पता लगाने के लिए उपयोग किया जाता है। आईआर सेंसर सफेद या काली सतहों का पता लगाने में अच्छे हैं। यद्यपि आप अन्य परिष्कृत सेंसर का उपयोग कर सकते हैं जो सभी रंगों का पता लगाने में सक्षम होंगे और एक रोबोट बना सकते हैं जो सभी रंग लाइनों का पालन कर सकते हैं। रोबोट को लाइन का पता लगाने में सक्षम होना चाहिए, भले ही कोण को बदलकर रास्ता बदल दिया जाए और लाइन का अनुसरण करते रहें। इसके अलावा, जहां भी स्टॉप ज़ोन लाइन में आता है, उसे रोकना चाहिए।
लाइन फॉलोअर रोबोट का उपयोग अब विनिर्माण उद्योग, चिकित्सा, घरेलू अनुप्रयोगों और माल गोदाम में बड़े पैमाने पर किया जाता है। रोबोट केवल इन अनुप्रयोगों तक सीमित नहीं हैं और भविष्य के कई अनुप्रयोगों में इसके अनुप्रयोगों का विस्तार कर सकते हैं।
लाइन फॉलोअर रोबोट की अवधारणा
इस परियोजना में IR सेंसर प्रमुख खिलाड़ी हैं। IR सेंसर को खींची गई काली रेखा और सतह को ट्रैक करने के लिए रोबोट के सामने रखा गया है। रोबोट को लाइन के बीच में रखा गया है और IR सेंसर की मदद से रोबोट लाइन का ट्रैक रखता है। IR सेंसर रीडिंग को माइक्रोकंट्रोलर को रीड करते हैं और IR रीडिंग की मदद से माइक्रोकंट्रोलर मूव्स को लेफ्ट साइड या राइट साइड में करते हैं और फिर से रोबोट को रास्ते में लाते हैं।
लाइन फॉलोअर रोबोट आईआर सेंसर की मदद से एक लाइन को ट्रैक करने में सक्षम है। इस सेंसर में IR ट्रांसमीटर और IR रिसीवर है। IR ट्रांसमीटर (IR LED) प्रकाश संचारित करता है और रिसीवर (Photodiode) संचारित प्रकाश के वापस लौटने का इंतजार करता है। एक IR प्रकाश वापस तभी लौटेगा जब वह किसी सतह से परावर्तित होगा। जबकि, सभी सतहें एक IR प्रकाश को प्रतिबिंबित नहीं करती हैं, केवल सफेद रंग की सतह पूरी तरह से उन्हें प्रतिबिंबित कर सकती है और काली रंग की सतह पूरी तरह से उन्हें दिखाएगी जैसा कि नीचे दिए गए चित्र में दिखाया गया है। आईआर सेंसर मॉड्यूल के बारे में अधिक जानें यहां।
अब हम दो IR सेंसर का उपयोग करेंगे ताकि यह जांचा जा सके कि अगर रोबोट ट्रैक से हट जाता है तो रोबोट को ठीक करने के लिए लाइन और दो मोटरों के साथ ट्रैक करता है या नहीं। इन मोटर्स को उच्च वर्तमान की आवश्यकता होती है और द्वि-दिशात्मक होना चाहिए; इसलिए हम L293D जैसे मोटर ड्राइवर मॉड्यूल का उपयोग करते हैं। हमें IR सेंसर से मूल्यों के आधार पर मोटर्स को निर्देश देने के लिए ATmega16 जैसे एक माइक्रोकंट्रोलर की भी आवश्यकता होगी । उसी का एक सरलीकृत ब्लॉक आरेख नीचे दिखाया गया है।
इन दोनों IR सेंसर को लाइन के दोनों ओर एक रखा जाएगा। यदि कोई भी सेंसर काली रेखा का पता नहीं लगा रहा है, तो AVR माइक्रोकंट्रोलर मोटर्स को नीचे दिखाए अनुसार आगे बढ़ने का निर्देश देता है
अगर लेफ्ट सेंसर ब्लैक लाइन पर आता है तो माइक्रोकंट्रोलर रोबोट को निर्देश देता है कि वह दाएं पहिए को घुमाकर बाएं मुड़ जाए।
अगर राइट सेंसर ब्लैक लाइन पर आता है तो माइक्रोकंट्रोलर रोबोट को बाएं व्हील को अकेले घुमाकर दाएं मुड़ने का निर्देश देता है।
यदि दोनों सेंसर काली रेखा पर आते हैं, तो रोबोट बंद हो जाता है।
इस तरह से रोबोट ट्रैक के बाहर जाने के बिना लाइन का पालन करने में सक्षम होगा। अब देखते हैं कि सर्किट और कोड कैसा दिखता है।
अवयव आवश्यक
- डीसी गियर मोटर्स (2 इकाइयों)
- आईआर सेंसर मॉड्यूल (2 इकाइयों)
- L293D मॉड्यूल
- वायरलेस पावर स्रोत (जैसे बैटरी, पावर बैंक)
- रोबोट चेस करता है
- एटमेगा 16 माइक्रोकंट्रोलर आई.सी.
- 16Mhz क्रिस्टल थरथरानवाला
- दो 100nF कैपेसिटर
- दो 22pF कैपेसिटर
- बटन दबाओ
- जम्पर तार
- ब्रेड बोर्ड
- USBASP v2.0 (Atmega16 प्रोग्राम करने के लिए)
सर्किट आरेख
सर्किट डायग्राम में नीचे दिखाए गए अनुसार सभी घटकों को कनेक्ट करें
लाइन अनुयायी रोबोट के लिए Atmega16 प्रोग्रामिंग
यहाँ Atmega16 को USBASP और Atmel Studio7.0 का उपयोग करके प्रोग्राम किया गया है। अगर आपको नहीं पता कि USBASP का उपयोग करके Atmega16 को कैसे प्रोग्राम किया जा सकता है तो लिंक पर जाएं। पूरा कार्यक्रम परियोजना के अंत में दिया गया है, बस पिछले ट्यूटोरियल में बताए अनुसार JTAG प्रोग्रामर और Atmel स्टूडियो 7.0 का उपयोग करके Atmega16 में कार्यक्रम अपलोड करें।
हमने कोड को जितना हो सके उतना छोटा और सरल रखने की कोशिश की है। इसलिए हम इस कोड में मैक्रोज़ और विशेष फ़ंक्शन रजिस्टर का उपयोग कर रहे हैं।
अगर (bit_is_clear (PINA , leftSen)) { // जांचें कि क्या बाएं सेंसर बंद है
यह कथन जाँचता है कि क्या PA0 जहाँ बाएँ सेंसर जुड़ा है LOW या HIGH है।
यदि आप इस कथन और अन्य मैक्रोज़ के बारे में अधिक जानना चाहते हैं तो इस लिंक पर जाएँ
चार स्थितियां हैं जो हम गर्त आईआर सेंसर पढ़ने के लिए अनुसरण कर रहे हैं। आईआर सेंसर को रोबोट के मोर्च में उनके प्लेसमेंट के अनुसार नाम दिया गया है। लेफ्ट IR लेफ्ट सेंसर है और राइट IR राइट सेंसर है। निम्नलिखित स्थितियाँ रोबोट की गति को तय करेंगी।
हमने उपरोक्त शर्तों के अनुसार कोड लिखा है। केवल परिवर्तन यह है कि हम दोनों मोटर्स को चलाने के लिए L293D के केवल दो इनपुट पिन का उपयोग कर रहे हैं।
एक प्रदर्शन वीडियो के साथ पूरा कोड नीचे दिया गया है।