paint-brush
रास्पबेरी पाई + ईएसपी 32 ड्रोन का निर्माण: रोबोटिक्स में मेरा पहला कदमद्वारा@tohntobshi
10,329 रीडिंग
10,329 रीडिंग

रास्पबेरी पाई + ईएसपी 32 ड्रोन का निर्माण: रोबोटिक्स में मेरा पहला कदम

द्वारा Anton D2022/04/26
Read on Terminal Reader
Read this story w/o Javascript

बहुत लंबा; पढ़ने के लिए

एंटोन ने रोबोटिक्स में अपने पहले कदम और विशेष रूप से अपने रास्पबेरी पाई + ईएसपी 32 ड्रोन के बारे में लिखा। एंटोन ने ब्लेंडर में पुर्जे डिजाइन किए और फिर उन्हें सस्ते 3डी प्रिंटर पर 3डी में प्रिंट किया। ड्रोन को एक ऐप द्वारा नियंत्रित किया जाता है, जहां उपयोगकर्ता एनालॉग जैसे ऐप से ड्रोन की निगरानी और निगरानी कर सकते हैं। एंटोन ने इसके बारे में एक वीडियो भी बनाया और लेख के अंत में लेख के साथ संलग्न किया।

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - रास्पबेरी पाई + ईएसपी 32 ड्रोन का निर्माण: रोबोटिक्स में मेरा पहला कदम
Anton D HackerNoon profile picture

सभी को नमस्कार! मेरा नाम एंटोन है। और मैं रोबोटिक्स में अपने पहले कदम की कहानी साझा करना चाहता हूं और विशेष रूप से मेरे रास्पबेरी पाई + ईएसपी 32 ड्रोन के बारे में। (मैंने इसके बारे में एक वीडियो भी बनाया और लेख के अंत में संलग्न किया)

प्रस्तावना

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


इसलिए मैंने इस विषय पर कुछ किताबें पढ़ीं, यूट्यूब पर कुछ वीडियो देखे, कुछ लेख पढ़े, और सोल्डरिंग उपकरण और एक 3 डी प्रिंटर खरीदा, क्योंकि आजकल 3डी प्रिंटर सस्ते और उपलब्ध हैं और मुझे खाद्य कंटेनरों से पुर्जे बनाने के सिरदर्द से बचा सकते हैं। समान कबाड़।

पहला रोबोट

मेरा पहला रोबोट यह कैटरपिलर प्लेटफॉर्म था:


मेरा पहला रोबोट


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

दूसरा रोबोट

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


मैंने i2c बस में जाइरोस्कोप, एक्सेलेरोमीटर, बैरोमीटर और मैग्नेटोमीटर को शामिल करते हुए एक बोर्ड भी खरीदा। इससे पहले कि मैं यह भी सीखता कि पीआईडी नियंत्रक क्या है, मेरा पहला सहज दृष्टिकोण इसके पी घटक के काम करने के तरीके के समान था - क्षैतिज विमान से ड्रोन के विचलन के कोण के अनुपात में मोटर गति को आनुपातिक रूप से बढ़ाएं या घटाएं।


शुरुआत में, मैंने सोचा था कि यह बहुत मुश्किल काम नहीं होगा लेकिन सभी असफल प्रयासों के बाद मुझे नहीं पता था कि इसे सही तरीके से कैसे किया जाए क्योंकि बहुत सी चीजें हैं जो ठीक से काम नहीं कर सकती हैं। और केवल कुछ सॉफ्टवेयर बनाने के विपरीत, प्रत्येक रन शारीरिक क्षति के साथ समाप्त हो सकता है और अगला प्रयास क्षतिग्रस्त भागों को बदलने के बाद ही संभव होगा। साथ ही किराए के छोटे से फ्लैट में इस चीज को परखना इतना आसान नहीं है। अगर मेरे पास एक बड़ा गैरेज, शेड या ऐसा कुछ होता तो मैं ऐसा निर्माण कर सकता था जो ड्रोन की गति को प्रतिबंधित कर दे।


ऊर्ध्वाधर गति फावड़ियों द्वारा प्रतिबंधित है


इसके बजाय, मुझे फावड़ियों और अपने हाथों को सुधारना और उपयोग करना पड़ा, जिससे कभी-कभी मामूली लेकिन अप्रिय चोटें आती थीं।


कुछ बिंदु पर, मैंने सोचा कि माउस और कीबोर्ड के साथ ड्रोन को नियंत्रित करना सुविधाजनक नहीं है और एक नियंत्रक ऐप बनाने का फैसला किया, जहां मैं पैरामीटर बदल सकता हूं, सेंसर रीडिंग की निगरानी कर सकता हूं, और धीरे-धीरे एनालॉग-जैसे यूआई के साथ ड्रोन को नियंत्रित कर सकता हूं।


मोबाइल ऐप स्क्रीनशॉट

एक और स्क्रीनशॉट


प्रारंभ में, किसी कारण से, मैंने केवल यह महसूस करने के लिए क्षैतिज लेवलिंग नियंत्रण पर ध्यान केंद्रित किया कि मैं इसका सुरक्षित रूप से परीक्षण नहीं कर सकता और मुझे जो अधिक चाहिए वह स्वचालित ऊंचाई नियंत्रण है। मेरा पहला विचार बैरोमीटर रीडिंग का उपयोग करना था, लेकिन वे घर के अंदर ऊंचाई को नियंत्रित करने के लिए पर्याप्त सटीक नहीं थे (या शायद मैंने उन्हें गलत तरीके से इस्तेमाल किया था) इसलिए मैंने एक स्थानीय इलेक्ट्रॉनिक घटक की दुकान में एक अल्ट्रासोनिक सेंसर खरीदा। दरअसल, इसका एक अजीब इंटरफ़ेस था जो माप के दौरान एक पिन को ऊंचा कर देता है और आपको दूरी निकालने के लिए समय गिनना पड़ता है। जब रास्पबेरी पाई अपेक्षाकृत निष्क्रिय थी तो इसने ठीक काम किया लेकिन कम्प्यूटेशनल लोड के तहत यह सिर्फ समय चूक गया और रीडिंग कचरा थी। इसलिए मुझे एसपीआई इंटरफेस पर सुविधाजनक डिजिटल रूप में इन समय और आउटपुट परिणामों को मापने के लिए पूरी तरह से परियोजना में एक अतिरिक्त एवीआर नियंत्रक जोड़ना पड़ा।


मैंने ड्रोन की गति को ऊपर और नीचे तक सीमित करने के लिए दो साइकिल ब्रेक केबल और मुद्रित गाइड भी खरीदे ताकि मैं स्वतंत्रता की अन्य डिग्री को नियंत्रित करने के बारे में सोचे बिना ऊंचाई नियंत्रण पर ध्यान केंद्रित कर सकूं।

क्षैतिज गति ब्रेक केबल द्वारा प्रतिबंधित है


और यह उस मामले को छोड़कर काम करता है जब प्रोपेलर काम कर रहे थे, अशांति पैदा कर रहे थे जो 40 सेमी से ऊपर की ऊंचाई पर अल्ट्रासोनिक सेंसर रीडिंग में हस्तक्षेप करता था। जब मुझे अंततः इसका पता चला तो मुझे अल्ट्रासोनिक सेंसर को लेजर से बदलना पड़ा।


उस समय, मेरे पास पहले से ही ऊंचाई नियंत्रण था, लेकिन फिर भी स्थिर क्षैतिज स्तर प्राप्त नहीं कर सका, भले ही मैंने इसके लिए पीआईडी नियंत्रण लागू किया था। मैंने इसके कई कारणों का अनुमान लगाया और मुझे यकीन नहीं है कि उनमें से किसने समस्या में सबसे ज्यादा योगदान दिया। लेकिन यहाँ वे हैं:


  • पहले और शायद सबसे महत्वपूर्ण के लिए, मैंने सस्ते प्रोपेलर का इस्तेमाल किया (और उन्हें प्रिंट करने की भी कोशिश की) और उन्हें संतुलित करने की आवश्यकता की उपेक्षा की, जो बदले में आईएमयू सेंसर को शोर से अधिभारित करता है जो उनकी सटीकता को कम करता है। जब मैंने अंततः इस मुद्दे को हल करने का फैसला किया तो मैंने अपने ऐप में अंतिम 100 जीरोस्कोप रीडिंग और आउटपुट रेंज को सबसे बड़े और सबसे छोटे मूल्य के बीच लेने के लिए एक फीचर जोड़ा। जब प्रोपेलर काम कर रहा होता है तो वह जितना बड़ा होता है, उतना ही असंतुलित होता है। मैं बेतरतीब ढंग से डक्ट टेप को प्रोपेलर के ब्लेड से चिपका देता हूं, फिर उन्हें मूल्य की जांच करने के लिए चलाता हूं, अगर यह बढ़ा हुआ है - शायद वहां छड़ी करने के लिए एक बुरी जगह है, अगर शोर कम हो गया है - मैं सही रास्ते पर हूं, तो मैंने छड़ी करने की कोशिश की यह आगे या केंद्र के करीब है और फिर से जांचें, इसलिए इस तरह मैंने प्रत्येक प्रोपेलर पर शोर कम कर दिया।
  • दूसरा संभावित मुद्दा यह है कि रास्पबेरी पाई में केवल दो पीडब्लूएम चैनल हैं, लेकिन इसके साथ चार ईएससी नियंत्रित हैं, और सॉफ्टवेयर पीडब्लूएम पर्याप्त सटीक नहीं हो सकता है और सीपीयू चक्र भी बर्बाद कर सकता है। इसलिए मैंने इस कार्य के लिए ESP32 का उपयोग करने का निर्णय लिया क्योंकि वे सस्ते हैं, आसानी से उपलब्ध हैं, और उनमें बहुत सारे इंटरफेस हैं जिनमें रास्पबेरी पाई की कमी है। मैंने एसपीआई पर रास्पबेरी पाई से जुड़े ईएसपी 32 के माध्यम से ईएससी को नियंत्रित करने के साथ शुरुआत की और सभी उड़ान नियंत्रक तर्क को ईएसपी 32 में ले जाना समाप्त कर दिया।
  • तीसरा मुद्दा शायद एक कठोर पर्याप्त फ्रेम नहीं था, जिसे मैंने कई बार फिर से डिजाइन और मुद्रित किया।
  • एक अन्य मुद्दा पूरक फिल्टर के लिए उप-इष्टतम गुणांक है जिसका उपयोग मैंने झुकाव कोण का आकलन करने के लिए किया था। एकीकृत जाइरोस्कोप रीडिंग द्वारा अनुमानित कोण के लिए इष्टतम 0.999 है और एक्सेलेरोमीटर द्वारा मापे गए कोण के लिए 0.001 है।
  • मैंने यह नहीं माना कि पिच रोल में बदल जाती है और इसके विपरीत अगर झुका हुआ ड्रोन अपने स्थानीय जेड-अक्ष के चारों ओर घुमाया जाता है।
  • झुकाव कोण के बहुत धीमी गति से दोलनों को कम करने के बजाय पी गुणांक को कई बार बढ़ाकर तय किया जा सकता है जैसा कि कुछ स्रोतों का सुझाव है।



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


वास्तव में, यह मेरे विचार से आसान निकला, मैंने अपने पीसीबी का डिज़ाइन बनाने के लिए KiCAD पर कुछ ट्यूटोरियल देखे। मैंने 40 डॉलर में एक सेकेंड-हैंड लेजर प्रिंटर खरीदा, 5 डॉलर में बिना छेद वाला एक नियमित लोहा भी खरीदा, और सबसे महंगा उपकरण 75 डॉलर में ड्रिलिंग प्रेस था। रसायन इतने खतरनाक नहीं निकले, अगर आप उन्हें छूते हैं तो वे आपकी त्वचा को भंग नहीं करेंगे।


KiCAD में डिजाइन

सोल्डर मास्क लगाने और लगाने के बाद


इसलिए मैंने चौथे प्रयास में यह पीसीबी बनाया। सबसे कठिन हिस्सा वास्तव में सोल्डर मास्क लगाना था। यह पीसीबी क्या करता है कि यह सेंसर, ESP32 और रास्पबेरी पाई को आपस में जोड़ता है और विभिन्न भागों में उपयुक्त वोल्टेज वितरित करता है।


ऐप में वर्तमान सेंसर रीडिंग दिखाने वाले फैंसी चार्ट ड्रोन को दुर्घटनाग्रस्त होने से रोकने की कोशिश करते समय विश्लेषण करना मुश्किल हो गया। इसलिए मैंने सेंसर डेटा को रिकॉर्ड करने की क्षमता को जोड़ा और उड़ान के वीडियो रिकॉर्ड के साथ फ्रेम द्वारा फ्रेम का विश्लेषण करने के लिए एक पायथन स्क्रिप्ट लिखी।

उड़ान विश्लेषक स्क्रिप्ट


अगर मैंने पहले ऐसा किया होता तो मैं दोषपूर्ण अल्ट्रासोनिक सेंसर के कारण होने वाली समस्याओं की जांच में बहुत कम समय लगाता, जिसका मैंने पहले उल्लेख किया था।


कुछ बिंदु पर, मैंने अपेक्षाकृत स्थिर ऊंचाई, दिशा और क्षैतिज समतल नियंत्रण प्राप्त किया लेकिन फिर भी क्षैतिज बहाव से बच नहीं सका। और अगर किसी को पता है कि क्या केवल IMU सेंसर का उपयोग करके क्षैतिज बहाव से छुटकारा पाना संभव है, तो कृपया मुझे टिप्पणियों में बताएं।


मैंने कुछ शोध किया और मुझे पता चला कि कुछ ड्रोन पोजिशन होल्ड के लिए जीपीएस का इस्तेमाल करते हैं और मैंने उसी तकनीक को लागू करने की कोशिश की। लेकिन समस्या यह है कि यह केवल बाहर काम करता है, लेकिन बाहर भी मैं कोई संतोषजनक परिणाम प्राप्त नहीं कर सका। उस मौसम में हवा, बारिश और बर्फ के साथ मौसम भयानक था, इसलिए मैंने बहुत प्रयास नहीं किए, जीपीएस के साथ जमानत दी, और कंप्यूटर दृष्टि दृष्टिकोण की कोशिश की।


एक स्क्रिप्ट का स्केच जो नीले निशान को ट्रैक करता है


मैंने ड्रोन के नीचे एक कैमरा लगाया और ओपनसीवी लाइब्रेरी का उपयोग करके इस नीले निशान को फर्श पर रखने की कोशिश की। कई प्रयासों और बदलावों के बाद यहाँ परिणाम है:


https://www.youtube.com/watch?v=poqQmvoBlP8

अब यह बिना किसी मैनुअल नियंत्रण और बिना किसी तार के एक बिंदु पर होवर कर सकता है। यह मेरा मध्यवर्ती लक्ष्य था जिसे मैंने आखिरकार हासिल कर लिया, इसलिए मैंने अपनी प्रगति का दस्तावेजीकरण और साझा करने का फैसला किया।



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




वर्तमान कॉन्फ़िगरेशन में, ड्रोन इस तरह बनाया गया है: ESP32 ऊंचाई, दिशा और समतल नियंत्रण के लिए जिम्मेदार है। यह IMU सेंसर और नीचे की तरफ एक लेज़र डिस्टेंस सेंसर से डेटा लेता है। यह मोटर नियंत्रकों को आदेश देता है और यह रास्पबेरी पाई से भी आदेश लेता है, जो स्वयं कैमरे से डेटा का उपयोग करके ऐप और स्थिति नियंत्रण के साथ संचार के लिए जिम्मेदार है।


अगर किसी को कोड देखने में दिलचस्पी है

ESP32 भाग

रास्पबेरी पाई भाग

क्लाइंट एंड्रॉइड ऐप


कोड बहुत साफ नहीं है, क्योंकि मैंने इसे ठीक से काम करने के लिए अक्सर कार्यान्वयन को बदल दिया है। शायद मैं इसे भविष्य में साफ कर दूंगा :)


इसके अलावा, मैंने इसके बारे में एक वीडियो बनाया:

https://www.youtube.com/watch?v=3mAFEW0YOJ0


ध्यान देने के लिए आपको धन्यवाद! प्रोत्साहित करना!