All About – Obstacle Avoidance Robot
Obstacle Avoidance Robot एक autonomous रोबोट है जिसका उपयोग बाधाओं का पता लगाने और टकराव को रोकने के लिए अलग-अलग दिशाओं में मुड़कर उनसे बचने के लिए किया जा सकता है।
उनका उपयोग विभिन्न प्रकार के कार्यों के लिए किया जा सकता है जो वर्कलोड को कम कर सकते हैं, जैसे automatic vacuuming
Logic Behind Obstacle Avoidance
Quarky एक बाधा का पता लगाता है, फिर left और right जाँचता है, और यदि दूरी है तो उस दिशा में मुड़ जाता है> 30 सेमी.
STEP 1 : यदि कोई बाधा न हो तो आगे बढ़ें।
STEP 2 : यदि कोई बाधा न्यूनतम दूरी पर आती है। ultrasonic sensor बाधा का पता लगाएगा और रोक देगा।
STEP 3 : अगला, सर्वो मोटर का उपयोग करके रोबोट पर्यावरण को स्कैन करेगा। लेकिन पहले, यह सर्वो को 45 में बदल देगा और फ्री एरिया obstacles की जांच करेगा।
STEP 4 : यदि 45 डिग्री के कोण पर 30 cm की सीमा में कोई बाधा नहीं है। Quarky 45 डिग्री right की ओर मुड़ेगा।
STEP 5 : यदि 45 डिग्री के कोण पर right ओर एक बाधा का पता चलता है। कोण को 135 डिग्री में बदलें।
STEP 6 : यदि 135 डिग्री के कोण पर 30 cm की सीमा में कोई बाधा नहीं है। Quarky 45 डिग्री left मुड़ेगा।
STEP 7 : यदि दाहिनी ओर 135 डिग्री के कोण पर एक बाधा का पता चलता है। कोण को 0 डिग्री में बदलें।
STEP 8 : यदि 0 डिग्री के कोण पर 30 cm की सीमा में कोई बाधा नहीं है। Quarky 90 डिग्री right मुड़ेगा।
STEP 9 : यदि right side ओर 0 डिग्री के कोण पर एक बाधा का पता चलता है। कोण को 180 डिग्री में बदलें।
STEP 10 : यदि 180 डिग्री के कोण पर 30 cm की सीमा में कोई बाधा नहीं है। Quarky 90 डिग्री left मुड़ेगा।
STEP 11 : यदि दाहिनी ओर 180 डिग्री के कोण पर एक बाधा का पता चलता है, तो इसका उल्टा करें।
Logic Flowchart
Coding Steps
अब हमारे अपने Obstacle Avoidance Robot को प्रोग्राम करने का समय आ गया है!
नीचे दिए गए स्टेप्स का पालन करें:
PictoBlox ऐपमें एक नई फाइल बनाएं।QuarkyकोPictoBloxसे कनेक्ट करें।Variablesपैलेट से Max और Min नाम के दो Variables बनाएं।Eventsपैलेट से when green flag click ब्लॉक को खींचें और छोड़ें .- फिर, set ( ) to ( ) सेट को Min से 5 में जोड़ें।
- इस ब्लॉक को डुप्लिकेट करें और Max को 30 पर सेट करें। तो, हम मूल रूप से 30 cm और 5 cm की maximum और minimum दूरी प्रारंभ कर रहे हैं।
- Initialize Robot – नाम का एक ब्लॉक बनाएं ब्लॉक लगाएं।
- अब, पिन को initialize करने के लिए
Sensorsपैलेट में जाएँ और Initialize Robot हैट ब्लॉक के नीचे connect Ultrasonic ( ) to trig ( ), echo ( ) ब्लॉक जोड़ें । - अगला कदम initial सर्वो कोण को 90 डिग्री के रूप में सेट करना होगा, इसके लिए
Robotपैलेट से set servo on ( ) to ( ) angle खींचें और छोड़ें । - wait ( ) second ब्लॉक set servo on ( ) to ( ) angle ब्लॉक के नीचे जोड़े
- अब, पिन को initialize करने के लिए
- बाधा का पता लगाना :
- अब,
Controlपैलेट पर जाएं और Initialize Robot के नीचे forever ब्लॉक जोड़ें। - उसके बाद, forever ब्लॉक के अंदर
Controlपैलेट से if () then ब्लॉक रखे। - इसके बाद,
Operatorsपैलेट पर जाएं और ( ) < ( ) ब्लॉक if ( ) then की जगह के अंदर space में लगाए। - get ultrasonic ( ) distance ब्लॉक को
Sensorsपैलेट से उठा के ( ) < ( ) ब्लॉक के पहले स्थान पर डाले और Min variable को दूसरे स्थान पर डाले यह ब्लॉक minimum दूरी के साथ सेंसर वैल्यू की तुलना करने में मदद करेगा।
- अब,
- Free Area के लिए जाँच :
- इसके बाद, पैरामीटर के रूप में Angle के साथ Set Servo Angle with Delay ( ) नाम का एक कस्टम ब्लॉक बनाएं।
- Angle के रूप में कोण के साथ एक set servo ( ) to ( ) angle ब्लॉक रखें।
- उसके बाद wait ( ) seconds ब्लॉक जोड़कर 0.5 सेकंड की देरी करें।
- main script पर वापस आएं।
Robotपैलेट से stop robot जोड़ें । Set Servo Angle with Delay ( ) ब्लॉक से कोण को 45 degrees सेट करे। यह स्थिति रोबोट को रोक देगी और जब भी minimum दूरी सीमा के भीतर कोई बाधा आएगी तो सर्वो का कोण 45 डिग्री हो जाएगा। - अब, हम if () then else को जोड़कर maximum दूरी की जांच करेंगे और
Controlपैलेट से ब्लॉक कर देंगे । - इसके बाद,
Operatorपैलेट पर जाएं और () > () को if ( ) the else ब्लॉक के अंदर रखे - get ultrasonic ( ) distance ब्लॉक को
Sensorsपैलेट से उठा के ( ) > ( ) ब्लॉक के पहले खली स्थान पर रखे और Max variable को दूसरे स्थान पर डाले यह ब्लॉक maximum दूरी के साथ सेंसर वैल्यू की तुलना करने में मदद करेगा। - यदि शर्त पूरी हो जाती है, तो रोबोट को right ओर मुड़ना चाहिए। इसे if स्टेटमेंट के अंदर go ( ) at ( ) % speed for ( ) seconds ब्लॉक जोड़कर किया जा सकता है। गति को 50% और समय को 0.6 सेकंड के रूप में सेट करें।
- इसके बाद Set Servo Angle with Delay( ) ब्लॉक को डुप्लीकेट करें और इसे else ब्रांच में रखें। कोण को 135 डिग्री और रोबोट की दिशा को left ओर बदलें।
- नाम का एक कस्टम ब्लॉक बनाएं – Check Extreme । यह ब्लॉक 0 और 180 डिग्री की स्थितियों की जांच करेगा। ब्लॉक को else शाखा में जोड़ें।
- अगला, अगर हमारे रोबोट को कोई बाधा नहीं आती है, तो उसे आगे बढ़ते रहना चाहिए। तो, उसके लिए servo ( ) to the ( ) angle ब्लॉक को पहले if शाखा के अंत में रखें। कोण को 90 डिग्री पर सेट करें।
- अंत में, go ( ) at ( ) speed ( ) ब्लॉक लगाएं। ड्रॉपडाउन से, दिशा को forward के रूप में और गति को 50% के रूप में चुनें।
- चरम स्थितियों की जाँच :
- 135 के मान के साथ Set Servo Angle with Delay ( ) ब्लॉक को डुप्लिकेट करें और इसे Check Extreme ब्लॉक के नीचे रखें। कोण को 0 डिग्री और रोबोट की दिशा को right ओर समय को 1.2 सेकंड में बदलें।
- Set Servo Angle with Delay() ब्लॉक से ब्लॉक को डुप्लीकेट करें और इसे else ब्रांच में रखें। कोण को 180 डिग्री और रोबोट की दिशा को left ओर बदलें।
- else -branch के भीतर, go ( ) at ( )% speed for ( ) seconds ब्लॉक जोड़ें। इस बार दिशा को right , गति को 80% और समय को 1.5 सेकंड के रूप में सेट करें। इससे रोबोट उल्टा जाएगा।
- अंत में, हमारा रोबोट चलने के लिए तैयार है! रोबोट को चलाएं और जांचें कि क्या यह ठीक से काम कर रहा है ।
- फ़ाइल को
Obstacle Avoidanceके रूप में सहेजें।
Activity: Output
अगले पाठ पर जाने से पहले सुनिश्चित करें कि आपने assignment पूरा कर लिया है और सबमिट कर दिया है, साथ ही quiz में भाग लें।