विषयसूची:

रास्पबेरी पाई के साथ ऑटोनॉमस लाइन फॉलोअर ड्रोन: 5 कदम
रास्पबेरी पाई के साथ ऑटोनॉमस लाइन फॉलोअर ड्रोन: 5 कदम

वीडियो: रास्पबेरी पाई के साथ ऑटोनॉमस लाइन फॉलोअर ड्रोन: 5 कदम

वीडियो: रास्पबेरी पाई के साथ ऑटोनॉमस लाइन फॉलोअर ड्रोन: 5 कदम
वीडियो: Raspberry Pi Based Marker Following Robot 2024, नवंबर
Anonim
रास्पबेरी पाई के साथ स्वायत्त रेखा अनुयायी ड्रोन
रास्पबेरी पाई के साथ स्वायत्त रेखा अनुयायी ड्रोन

यह ट्यूटोरियल दिखाता है कि आप अंततः लाइन फॉलोअर ड्रोन कैसे बना सकते हैं।

इस ड्रोन में एक "स्वायत्त मोड" स्विच होगा जो ड्रोन से मोड में प्रवेश करेगा। तो, आप अभी भी अपने ड्रोन को पहले की तरह उड़ा सकते हैं।

कृपया इस बात से अवगत रहें कि इसे बनाने में समय लगेगा और समायोजित होने में और भी अधिक समय लगेगा। लेकिन फाइनल… आपको इसके लायक सोचने पर मजबूर कर देता है।

अपना खुद का ऑटोनॉमस लाइन ट्रैकर ड्रोन बनाना शुरू करने के लिए, सुनिश्चित करें कि आपके पास है;

  • एसएसएच एक्सेस के साथ रास्पबेरी पाई 3 या रास्पबेरी पाई जीरो डब्ल्यू
  • एपीएम या पिक्सहॉक फ्लाइट कंट्रोलर के साथ रेडी-टू-फ्लाई ड्रोन
  • Arduino लियोनार्डो या अन्य Arduino तेज घड़ी की गति के साथ
  • कम से कम 6 सीएच ट्रांसमीटर
  • यूएसबी वेब कैमरा जो रास्पबेरी पाई और ओपनसीवी का समर्थन करता है
  • एक पीसी
  • 6 सामान्य प्रयोजन ट्रांजिस्टर
  • तारों के तार

चरण 1: विचार और कनेक्शन

आइडिया और कनेक्शन
आइडिया और कनेक्शन

APM, उर्फ ArduPilot, Arduino Mega पर आधारित एक फ़्लाइट कंट्रोलर है। इसका मतलब है कि हम इसे अपने मामले के लिए सर्वश्रेष्ठ होने के लिए संशोधित कर सकते हैं। लेकिन चूंकि मेरे पास ऐसा करने की जानकारी नहीं है, इसलिए मैं एक और रास्ता अपनाने जा रहा हूं।

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

इसलिए हमें अतिरिक्त Arduino बोर्ड की आवश्यकता है।

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

रास्पबेरी पाई डिटेक्शन लाइन के साथ टेलीमेट्री ट्रांसमीटर के रूप में व्यवहार करेगी।

आवश्यक सर्किट छवियों में दिखाया गया है। मैं अगले चरणों में समझाना जारी रखूंगा।

चरण 2: रास्पबेरी पाई कनेक्शन और कॉन्फ़िगरेशन

रास्पबेरी पाई कनेक्शन और कॉन्फ़िगरेशन
रास्पबेरी पाई कनेक्शन और कॉन्फ़िगरेशन
रास्पबेरी पाई कनेक्शन और कॉन्फ़िगरेशन
रास्पबेरी पाई कनेक्शन और कॉन्फ़िगरेशन

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

कॉन्फ़िगर करने के लिए, आपके पास दो विकल्प हैं: आवश्यक पैकेज के साथ शुद्ध रास्पियन या APSync नामक MAVLink कनेक्शन के लिए विशेष छवि। यदि आप रास्पियन का उपयोग करने जा रहे हैं, तो सुनिश्चित करें कि आपने इन पैकेजों को स्थापित किया है:

सुडो एपीटी-अपडेट प्राप्त करें

sudo apt-get install -y स्क्रीन python-wxgtk3.0 python-matplotlib sudo apt-get install -y python-opencv python-pip python-numpy python-dev sudo apt-get install -y libxml2-dev libxslt-dev python- lxml sudo pip भविष्य में स्थापित करें pymavlink mavproxy pyserial

रास्पबेरी पाई के अंतर्निर्मित सीरियल इंटरफ़ेस का उपयोग करने के लिए, आपको ओएस को इसका उपयोग न करने के लिए कहना होगा। ऐसा करने के लिए, टाइप करें

सुडो रास्पि-कॉन्फ़िगरेशन

और इंटरफेसिंग विकल्पों का पालन करें> सीरियल इंटरफ़ेस

आपको सीरियल इंटरफ़ेस को अक्षम करना होगा लेकिन सीरियल हार्डवेयर को सक्षम करना होगा।

इस बिंदु पर, बाकी रास्पियन और APSync दोनों के लिए उपयुक्त है।

होम डायरेक्टरी में, तीन फाइलें बनाएं: रीबूट स्क्रिप्ट और इमेज प्रोसेसर स्क्रिप्ट। दूसरी पंक्ति रिबूट स्क्रिप्ट को निष्पादन योग्य बनाती है।

रीबूट स्पर्श करें.sh image_processor.py

chmod +x रीबूट.sh

रास्पबेरी पाई में अपनी होम डायरेक्टरी (/home/pi) में नीचे दी गई फाइलों में सभी लाइनों को कॉपी करें।

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

नैनो रिबूट.शो

#!/बिन/बैश

python3 /home/pi/image_processor.py

इसे CTRL+O से सेव करें और CTRL+X से बाहर निकलें। इसके बारे में अंतिम चरण इसे OS स्टार्टअप फ़ाइल में पंजीकृत कर रहा है, rc.local

सुडो नैनो /etc/rc.local

इस लाइन को बाहर निकलें 0 के ऊपर जोड़ें:

/home/pi/reboot.sh

हमारी रीबूट स्क्रिप्ट प्रत्येक बूट पर निष्पादित की जाएगी।

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

रास्पबेरी पाई सीरियल पोर्ट के माध्यम से अपने इमेज प्रोसेसिंग आउटपुट को Arduino (मेरे मामले में Arduino लियोनार्डो) में भेजेगा। Arduino उस इनपुट से PPM सिग्नल जेनरेट करेगा और उसे जम्पर वायर के जरिए फ्लाइट कंट्रोलर को भेजेगा। यह सब रास्पबेरी पाई के लिए है।

आइए अगले चरण पर चलते हैं।

चरण 3: एपीएम कनेक्शन और कॉन्फ़िगरेशन

एपीएम कनेक्शन और कॉन्फ़िगरेशन
एपीएम कनेक्शन और कॉन्फ़िगरेशन

एपीएम के बारे में चीजें सरल हैं क्योंकि यह पहले से ही उड़ने के लिए तैयार है। हमें सीरियल पोर्ट के बॉड्रेट जानने की जरूरत है, और सुनिश्चित करें कि TELEM पोर्ट सक्षम है।

आपके ग्राउंड सॉफ़्टवेयर में, मेरे मामले में मिशन प्लानर, फ़्लाइट कंट्रोलर की पैरामीटर सूची की जाँच करें और बॉड्रेट्स का पता लगाएं। उदाहरण के लिए, SERIAL_BAUD USB बॉड्रेट है और SERIAL_BAUD1 APM के लिए TELEM पोर्ट बॉड्रेट है। ध्यान दें कि मान।

सबसे महत्वपूर्ण हिस्सा INPUT पिन का कनेक्शन है। जैसा कि छवि में दिखाया गया है, Arduino के डिजिटल पिन 4 को पूरी तरह से 9 से कनेक्ट करें। आप इसके लिए एक ब्रेडबॉर्ड का उपयोग करना चाह सकते हैं, क्योंकि हम कुछ ट्रांजिस्टर और रिसीवर आउटपुट जोड़ने जा रहे हैं। (चित्र देखें) (यदि आप अपने ड्रोन को नियंत्रित करना चाहते हैं तो ट्रांजिस्टर काम कर रहे होंगे)

एआरडी 4 एपीएम इनपुट 1

एआरडी 5 एपीएम इनपुट 2

एआरडी 6 एपीएम इनपुट 3

एआरडी 7 एपीएम इनपुट 4

एआरडी 8 एपीएम इनपुट 5

एआरडी 9 एपीएम इनपुट 6

APM इनपुट पर सभी 5V पिन को Arduino लियोनार्डो 5V पिन से कनेक्ट करें। इसी तरह सभी APM इनपुट GND पिन को Arduino लियोनार्डो GND पिन से कनेक्ट करें।

चरण 4: Arduino लियोनार्डो कॉन्फ़िगरेशन

हमने लियोनार्डो के लिए सभी तारों को जोड़ दिया है इसलिए केवल कोड बचा है।

नीचे दिए गए कोड को अपने Arduino लियोनार्डो पर अपलोड करें। बॉड्रेट्स पर ध्यान दें।

चरण 5: पहली उड़ान

जब आप पिछले सभी चरणों को पूरा कर लेते हैं, तो इसका मतलब है कि आप तैयार हैं।

सभी कार्ड चालू करें और SSH से रास्पबेरी पाई से कनेक्ट करें। टर्मिनल में टाइप करें:

सुडो सु

mavproxy.py --master=/dev/[सीरियल इंटरफेस] --बॉड्रेट [टेलेम पोर्ट बॉड्रेट] --एयरक्राफ्ट [कस्टम नाम

डिफ़ॉल्ट रास्पबेरी पाई बिल्ट-इन सीरियल इंटरफ़ेस ttyS0 (/ dev / ttyS0) है

डिफ़ॉल्ट APM TELEM पोर्ट बॉड्रेट 57600. है

डिफ़ॉल्ट एपीएम यूएसबी पोर्ट बॉड्रेट 115200. है

आप अपने विमान को कोई भी नाम दे सकते हैं, इसे बुद्धिमानी से चुनें, ताकि आप इसे बाद में पहचान सकें।

यदि सब कुछ ठीक है, तो अब VNC के माध्यम से अपने रास्पबेरी पाई से कनेक्ट करें, ताकि आप देख सकें कि ड्रोन वास्तविक समय में क्या देखता है।

अब, आप अपने ड्रोन को बांट सकते हैं। रोमांचक, है ना?

अपना ड्रोन उतारें, और लाइन ट्रैक के ऊपर से उड़ान भरें। अब, आप CH6 स्विच का उपयोग करके लाइन ट्रैकिंग मोड को सक्रिय कर सकते हैं।

सिफारिश की: