स्वचालित फर्श क्लीनर कुछ भी नया नहीं है, लेकिन वे सभी एक आम समस्या साझा करते हैं। वे जो भी करते हैं उसके लिए वे सभी बहुत महंगे हैं। आज, हम एक स्वचालित होम क्लीनिंग रोबोट बनाएंगे जो केवल बाजार में लोगों के एक छोटे से हिस्से का खर्च करता है। यह रोबोट अपने सामने आने वाली बाधाओं और वस्तुओं का पता लगा सकता है और बाधाओं से बचते हुए आगे बढ़ सकता है, जब तक कि पूरे कमरे को साफ नहीं किया जाता। फर्श को साफ करने के लिए इसमें एक छोटा ब्रश जुड़ा होता है।
Arduino का उपयोग करके हमारे स्मार्ट वैक्यूम क्लीनिंग रोबोट की भी जांच करें
घटक आवश्यक:
- Arduino UNO R3।
- अतिध्वनि संवेदक।
- Arduino मोटर चालक ढाल।
- व्हील ड्राइव रोबोट चेसिस।
- कंप्यूटर Arduino कार्यक्रम के लिए।
- मोटर्स के लिए बैटरी।
- एक बिजली बैंक Arduino की शक्ति के लिए
- एक जूता ब्रश।
- एक स्कॉच ब्राइट स्क्रब पैड।
नोट: बैटरी का उपयोग करने के बजाय, आप एक लंबे 4-फंसे तार का उपयोग कर सकते हैं जैसा हमने किया था। हालांकि यह बहुत ही सुरुचिपूर्ण या व्यावहारिक समाधान नहीं है, लेकिन आप ऐसा कर सकते हैं यदि आप इसे हर दिन वास्तविक दुनिया में उपयोग करने की योजना नहीं बना रहे हैं। सुनिश्चित करें कि केबल की लंबाई पर्याप्त है।
विस्तार में जाने से पहले पहले अल्ट्रासोनिक के बारे में चर्चा करते हैं।
HC-SR04 अल्ट्रासोनिक सेंसर:
उच्च सटीकता और स्थिर रीडिंग के साथ दूरी को मापने के लिए अल्ट्रासोनिक सेंसर का उपयोग किया जाता है। यह 2 सेमी से 400 सेमी या 1 इंच से 13 फीट तक की दूरी को माप सकता है। यह हवा में 40KHz की आवृत्ति पर एक अल्ट्रासाउंड तरंग का उत्सर्जन करता है और यदि वस्तु अपने रास्ते में आ जाएगी तो सेंसर को वापस उछाल देगी। उस समय का उपयोग करके जो वस्तु को हड़ताल करने के लिए लेता है और वापस आता है, आप दूरी की गणना कर सकते हैं।
अल्ट्रासोनिक सेंसर "ECHO" नामक एक तकनीक का उपयोग करता है। "ईसीओओ" केवल एक प्रतिबिंबित ध्वनि तरंग है। आपके पास एक ईसीएचओ होगा जब ध्वनि एक मृत अंत तक पहुंचने के बाद वापस प्रतिबिंबित होती है।
HCSR04 मॉड्यूल अल्ट्रासोनिक रेंज में एक ध्वनि कंपन उत्पन्न करता है जब हम लगभग 10us के लिए 'ट्रिगर' पिन उच्च बनाते हैं जो ध्वनि की गति पर 8 चक्र ध्वनि का विस्फोट भेजेगा और वस्तु को हड़पने के बाद, यह इको पिन द्वारा प्राप्त होगा। वापस पाने के लिए ध्वनि कंपन द्वारा लिए गए समय के आधार पर, यह उपयुक्त पल्स आउटपुट प्रदान करता है। यदि ऑब्जेक्ट दूर है तो ECHO को सुनने में अधिक समय लगता है और आउटपुट पल्स की चौड़ाई बड़ी होगी। और अगर बाधा निकट है, तो ईसीएचओ को तेजी से सुना जाएगा और आउटपुट पल्स की चौड़ाई छोटी होगी।
हम सेंसर पर वापस लौटने के लिए अल्ट्रासोनिक तरंग द्वारा उठाए गए समय के आधार पर वस्तु की दूरी की गणना कर सकते हैं। चूँकि ध्वनि का समय और गति ज्ञात है, हम निम्नलिखित सूत्रों द्वारा दूरी की गणना कर सकते हैं।
दूरी = (वायु में ध्वनि का समय x गति (343 मी / से)) / 2।
मान दो से विभाजित होता है क्योंकि तरंग एक ही दूरी को आगे और पीछे की यात्रा करती है। इस प्रकार बाधा पहुंचने का समय कुल लगने वाले समय का आधा है
तो सेंटीमीटर में दूरी = 17150 * टी
हमने पहले इस अल्ट्रासोनिक सेंसर और Arduino का उपयोग करके कई उपयोगी प्रोजेक्ट बनाए हैं, उन्हें नीचे देखें:
- अल्ट्रासोनिक सेंसर का उपयोग करके Arduino आधारित दूरी माप
- Arduino और अल्ट्रासोनिक सेंसर का उपयोग करके डोर अलार्म
- Arduino का उपयोग करके IOT आधारित डम्पस्टर मॉनिटरिंग
फर्श क्लीनर रोबोट की विधानसभा:
चेसिस पर Arduino माउंट करें। सुनिश्चित करें कि आपके चेसिस धातु से बने होने की स्थिति में आप शॉर्ट सर्किट नहीं करते हैं। Arduino और मोटर नियंत्रक शील्ड के लिए एक बॉक्स प्राप्त करना एक अच्छा विचार है। शिकंजा का उपयोग करके पहियों और चेसिस के साथ मोटर्स को सुरक्षित करें। आपके चेसिस में कारखाने से ऐसा करने के लिए विकल्प होना चाहिए, लेकिन अगर ऐसा नहीं है, तो आप एक अलग समाधान को सुधार सकते हैं। एपॉक्सी एक बुरा विचार नहीं है। चेसिस के सामने जूता ब्रश माउंट करें। हमने इसके लिए एम-सील एपॉक्सी और ड्रिल किए गए शिकंजे के संयोजन का उपयोग किया, हालांकि आप किसी अन्य समाधान का उपयोग कर सकते हैं जो आपके लिए आसान हो सकता है। ब्रश के पीछे स्कॉच ब्राइट स्क्रब पैड को माउंट करें। हमने चेसिस के पार जाने वाले एक शाफ्ट का इस्तेमाल किया, जो इसे खेलने में रखता है, हालांकि यह कामचलाऊ है। इसका साथ देने के लिए स्प्रिंग लोडेड शाफ्ट का उपयोग किया जा सकता है। बैटरी माउंट करें (या चेसिस के पीछे केबल)।एपॉक्सी या बैटरी धारक ऐसा करने के अच्छे तरीके हैं। हॉट ग्लू भी बुरा नहीं है।
तारों और कनेक्शन:
इस स्वचालित गृह सफाई रोबोट के लिए सर्किट बहुत सरल है। नीचे दिए गए अनुसार Arduino के लिए अल्ट्रासोनिक सेंसर कनेक्ट करें और किसी अन्य ढाल की तरह Arduino पर मोटर चालक ढाल रखें।
अल्ट्रासोनिक पिन का ट्रिग पिन अरुडिनो पर 12 वें पिन से जुड़ा होता है, इको पिन 13 वें पिन से जुड़ा होता है, वोल्टेज पिन 5 वी पिन से और ग्राउंड पिन ग्राउंड पिन से जुड़ा होता है। इको पिन और ट्रिग पिन अरुडिनो को सेंसर के साथ संवाद करने की अनुमति देते हैं। पावर को वोल्टेज और ग्राउंड पिन के माध्यम से सेंसर तक पहुंचाया जाता है, और ट्रिग और इको पिन इसे Arduino के साथ डेटा भेजने और प्राप्त करने की अनुमति देते हैं। यहाँ Arduino के साथ अल्ट्रासोनिक सेंसर के बारे में अधिक जानें।
मोटर ढाल में कम से कम 2 आउटपुट होना चाहिए, और उन्हें आपके 2 मोटर्स से जोड़ा जाना चाहिए। आम तौर पर, इन आउटपुट को "एम 1" और "एम 2" या "मोटर 1" और "मोटर 2" लेबल किया जाता है। अपनी बैटरी और पावर बैंक को क्रमशः मोटर शील्ड और Arduino तक तार करें। उन्हें कनेक्ट न करें। आपके मोटर ढाल में एक इनपुट चैनल होना चाहिए। यदि आप तारों का उपयोग कर रहे हैं, तो उन्हें एसी एडेप्टर से कनेक्ट करें।
प्रोग्रामिंग स्पष्टीकरण:
Arduino IDE खोलें। इस ट्यूटोरियल के अंत में दिए गए संपूर्ण Arduino कोड को IDE में पेस्ट करें । अपने Arduino को कंप्यूटर से कनेक्ट करें। उपकरण / पोर्ट में पोर्ट का चयन करें। अपलोड बटन पर क्लिक करें।
रोबोट का परीक्षण करें। यदि यह बहुत कम या बहुत अधिक मुड़ता है, तो विलंब के साथ प्रयोग करें।
कोड में जाने से पहले, हमें DC मोटर्स को चलाने के लिए Adafruit Motor Shield Library को स्थापित करना होगा । चूंकि हम L293D मोटर चालक ढाल का उपयोग कर रहे हैं, हमें यहां से AFmotor लाइब्रेरी डाउनलोड करने की आवश्यकता है। फिर इसे अपने Arduino IDE लाइब्रेरी फ़ोल्डर में जोड़ें। सुनिश्चित करें कि आप इसका नाम बदलकर AFMotor कर देंगे । इस लाइब्रेरी को स्थापित करने के बारे में और जानें।
कोड आसान है और आसानी से समझा जा सकता है, लेकिन यहां हमने इसके कुछ हिस्से बताए हैं:
नीचे कोड रोबोट सेट करता है। पहले हमने मोटर ड्राइवर शील्ड के साथ मोटर्स को चलाने के लिए एडफ्रूट लाइब्रेरी को शामिल किया है। उसके बाद, हमने ट्रिग पिन और इको पिन को परिभाषित किया। यह भी मोटर्स सेट करता है। यह ट्रिग पिन को आउटपुट में और इको पिन को इनपुट में सेट करता है।
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, Motor12_64KHZ); AF_DCMotor motor2 (2, Motor12_8KHZ); शून्य सेटअप () {pinMode (trigPin, OUTPUT); पिनमोड (इकोपिन, INPUT); }
नीचे दिए गए कोड Arduino को निम्न कमांड को लूप करने के लिए कहते हैं। उसके बाद, यह अल्ट्रासोनिक ध्वनियों को प्रसारित करने और प्राप्त करने के लिए सेंसर का उपयोग करता है। यह उस वस्तु से दूरी की गणना करता है जो एक बार अल्ट्रासोनिक तरंगों को वापस उछाल देती है, यह ध्यान देने के बाद कि वस्तु निर्धारित दूरी के भीतर है, यह अरुडिनो को तदनुसार मोटरों को घुमाने के लिए कहता है।
शून्य लूप () {लंबी अवधि, दूरी; digitalWrite (trigPin, LOW); देरीमाइक्रोसेकंड (2); digitalWrite (ट्राइगिन, हाई); देरीमाइक्रोसेकंड (10); digitalWrite (trigPin, LOW); अवधि = पल्स इन (इकोपिन, हाई); दूरी = (अवधि / 2) / 29.1; अगर (दूरी <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (बैकवर्ड); motor2.run (बैकवर्ड); देरी (2000); // इस नियम को कैसे दर्ज करें।
यह एक मोटर को घुमाकर और दूसरे को स्थिर रखते हुए रोबोट को चालू करता है।
नीचे दिया गया कोड रोबोट को एक ही दिशा में दोनों मोटरों को एक ही दिशा में मोड़ देता है ताकि वह तब तक आगे बढ़ सके जब तक कि वह उपरोक्त सीमा में किसी वस्तु का पता न लगा ले।
और {motor1.setSpeed (160); // अपनी रोजी की छुट्टी को जल्द पूरा करने के लिए इस विषय को बदलें। motor2.setSpeed (160); // उसी वस्तु को बदलें जैसा कि आपने ABOVE में डाला है। motor1.run (आगे); motor2.run (आगे); }