विषयसूची:

वाईबॉट: 10 कदम (चित्रों के साथ)
वाईबॉट: 10 कदम (चित्रों के साथ)
Anonim
वाईबोट
वाईबोट

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

  • 1 ZYBO विकास बोर्ड
  • १ TL-WR802N वायरलेस राउटर
  • 1 छाया चेसिस
  • 2 65mm पहिए
  • 2 140rpm गियरमोटर्स
  • 2 व्हील एनकोडर
  • 1 HC-SR04 अल्ट्रासोनिक सेंसर
  • 1 BSS138 लॉजिक लेवल कन्वर्टर
  • 1 एल२९३ एच-ब्रिज मोटर चालक
  • 1 12 वी से 5 वी डीसी / डीसी कनवर्टर
  • 1 2200 एमएएच लीपो बैटरी
  • 1 ईथरनेट केबल
  • 1 यूएसबी माइक्रो-बी केबल
  • 1 महिला XT60 कनेक्टर
  • 2 पुरुष-से-महिला जम्पर तार
  • 30 पुरुष-से-पुरुष जम्पर तार
  • 2 10kΩ प्रतिरोधी
  • 1 ब्रेडबोर्ड

इसके अतिरिक्त, निम्न सॉफ़्टवेयर को लक्ष्य कंप्यूटर पर स्थापित किया जाना चाहिए:

  • Xilinx Vivado Design Suite 2018.2
  • डिजीलेंट निपुण 2.19.2
  • फ्रीआरटीओएस 10.1.1
  • जावा एसई विकास किट 8.191

चरण 1: रोबोट चेसिस को इकट्ठा करें

रोबोट चेसिस को इकट्ठा करें
रोबोट चेसिस को इकट्ठा करें
रोबोट चेसिस को इकट्ठा करें
रोबोट चेसिस को इकट्ठा करें
रोबोट चेसिस को इकट्ठा करें
रोबोट चेसिस को इकट्ठा करें

छाया चेसिस को इकट्ठा करें और गियरमोटर्स और एन्कोडर्स को नीचे के फ्रेम में संलग्न करें। ZYBO, ब्रेडबोर्ड, और अल्ट्रासोनिक सेंसर को प्रदान किए गए भागों के साथ लगाया जा सकता है जो स्टैंडऑफ और दो तरफा टेप का उपयोग करके चेसिस पर 3D प्रिंट और तय किए जा सकते हैं। बैटरी को रोबोट के पीछे और अधिमानतः शीर्ष और के बीच में रखा जाना चाहिए। नीचे के तख्ते। राउटर को ZYBO के पास और DC/DC कन्वर्टर को ब्रेडबोर्ड के पास माउंट करें। बहुत अंत में पहियों को गियरमोटर्स से संलग्न करें।

चरण 2: वायर इलेक्ट्रॉनिक्स

वायर इलेक्ट्रॉनिक्स
वायर इलेक्ट्रॉनिक्स
वायर इलेक्ट्रॉनिक्स
वायर इलेक्ट्रॉनिक्स
वायर इलेक्ट्रॉनिक्स
वायर इलेक्ट्रॉनिक्स

DC/DC कनवर्टर के इनपुट और आउटपुट को क्रमशः ब्रेडबोर्ड पर दो पावर रेल से कनेक्ट करें। ये सिस्टम के लिए 12वी और 5वी आपूर्ति के रूप में काम करेंगे। चित्र में दिखाए अनुसार ZYBO को 5V रेल से कनेक्ट करें। राउटर को 5V रेल से भी जोड़ने के लिए USB माइक्रो-बी सप्लाई केबल का उपयोग करें। XT60 केबल को 12V रेल से जोड़ा जाना चाहिए। बैटरी को तब तक प्लग न करें जब तक कि बाकी इलेक्ट्रॉनिक्स ठीक से वायर्ड न हो जाएं। अल्ट्रासोनिक सेंसर को 5V रेल से तार दिया जाना चाहिए। ZYBO पर Pmod पोर्ट JC के पिन 6 का उपयोग करके ब्रेडबोर्ड पर 3.3V रेल बनाएं। लॉजिक कन्वर्टर के हाई वोल्टेज इनपुट को 5V रेल से वायर किया जाना चाहिए जबकि लॉजिक कन्वर्टर के लो वोल्टेज इनपुट को 3.3V रेल से वायर किया जाना चाहिए। मोटर एन्कोडर को 3.3V रेल से तार दें। मोटर चालक के VCC1 को 5V रेल से कनेक्ट करें और VCC2 को 12V रेल से कनेक्ट करें। सभी EN पिन को 5V से बांधें और सभी GND पिन को ग्राउंड करें।

अल्ट्रासोनिक सेंसर के TRIG और ECHO पिन को क्रमशः लॉजिक कन्वर्टर के HV1 और HV2 से कनेक्ट करें। LV1 को JC4 से और LV2 को JC3 से वायर किया जाना चाहिए। Pmod पिनआउट के लिए चार्ट देखें। मोटर्स को मोटर ड्राइवर से कनेक्ट करें। Y1 को दाएँ मोटर के धनात्मक टर्मिनल से जोड़ा जाना चाहिए और Y2 को दाएँ मोटर के ऋणात्मक टर्मिनल से जोड़ा जाना चाहिए। इसी तरह, Y3 को लेफ्ट मोटर के पॉजिटिव टर्मिनल से और Y4 को लेफ्ट मोटर के नेगेटिव टर्मिनल से जोड़ा जाना चाहिए। A1, A2, A3 और A4 को क्रमशः JB2, JB1, JB4, और JB3 में मैप किया जाना चाहिए। पिन नंबरों के लिए योजनाबद्ध देखें। JC2 को दाएं एन्कोडर और JC1 को बाएं एन्कोडर में वायर करें। सुनिश्चित करें कि इन संकेतों को 3.3V रेल से जोड़ने के लिए पुल-अप प्रतिरोधों का उपयोग किया जाता है। अंत में, ZYBO को राउटर से जोड़ने के लिए ईथरनेट केबल का उपयोग करें।

चरण 3: विवाडो में ब्लॉक आरेख बनाएं

विवाडो में ब्लॉक आरेख बनाएं
विवाडो में ब्लॉक आरेख बनाएं

विवाडो में एक नया आरटीएल प्रोजेक्ट बनाएं। सुनिश्चित करें कि इस समय कोई स्रोत निर्दिष्ट न करें। "xc7z010clg400-1" खोजें और फिनिश हिट करें। encoder_driver.sv और अल्ट्रासोनिक_driver.sv डाउनलोड करें। उन्हें अपने स्वयं के फ़ोल्डरों में रखें। "टूल्स" के तहत आईपी पैकेजर खोलें और एक निर्दिष्ट निर्देशिका को पैकेज करना चुनें। एन्कोडर ड्राइवर वाले फ़ोल्डर में पथ पेस्ट करें और "अगला" दबाएं। "पैकेज आईपी" पर क्लिक करें और अल्ट्रासोनिक सेंसर ड्राइवर के लिए प्रक्रियाओं को दोहराएं। बाद में, सेटिंग्स मेनू में आईपी उपखंड के तहत रिपोजिटरी प्रबंधक पर नेविगेट करें। ड्राइवर फ़ोल्डर में पथ जोड़ें और उन्हें आईपी लाइब्रेरी में शामिल करने के लिए लागू करें दबाएं।

एक नया ब्लॉक आरेख बनाएं और "ZYNQ7 प्रोसेसिंग सिस्टम" जोड़ें। ब्लॉक पर डबल-क्लिक करें और प्रदान की गई ZYBO_zynq_def.xml फ़ाइल आयात करें। "MIO कॉन्फ़िगरेशन" के अंतर्गत, टाइमर 0 और GPIO MIO सक्षम करें। कॉन्फ़िगरेशन को सहेजने के लिए "ओके" दबाएं। 3 "AXI GPIO" ब्लॉक और 4 "AXI टाइमर" ब्लॉक जोड़ें। S_AXI के लिए कनेक्शन ऑटोमेशन के बाद ब्लॉक ऑटोमेशन चलाएँ। GPIO ब्लॉक को कॉन्फ़िगर करने के लिए डबल क्लिक करें। एक ब्लॉक ४-बिट इनपुट और ४-बिट आउटपुट के साथ ड्यूल चैनल होना चाहिए। इन कनेक्शनों को बाहरी बनाएं और उन्हें इनपुट के लिए SW और आउटपुट के लिए LED लेबल करें। दूसरा ब्लॉक भी दो 32-बिट इनपुट के साथ दोहरी चैनल होना चाहिए। अंतिम GPIO ब्लॉक एक 32-बिट इनपुट होगा। प्रत्येक टाइमर ब्लॉक से pwm0 आउटपुट बाहरी बनाएं। उन्हें PWM0, PWM1, PWM2, और PWM3 लेबल करें।

एन्कोडर ड्राइवर को ब्लॉक आरेख में जोड़ें और CLK को FCLK_CLK0 से कनेक्ट करें। OD0 और OD1 को दूसरे GPIO ब्लॉक के इनपुट चैनल से कनेक्ट करें। ENC को बाहरी बनाएं और ENC_0 का नाम बदलकर ENC करें। अल्ट्रासोनिक सेंसर ब्लॉक जोड़ें और CLK को FCLK_CLK0 से कनेक्ट करें। TRIG और ECHO को बाहरी बनाएं और TRIG_0 का नाम TRIG और ECHO_0 का नाम ECHO करें। RF को तीसरे GPIO ब्लॉक से कनेक्ट करें। संदर्भ के लिए दिए गए ब्लॉक आरेख को देखें।

स्रोत फलक में अपनी ब्लॉक आरेख फ़ाइल पर राइट क्लिक करें और एक एचडीएल रैपर बनाएं। उपयोगकर्ता संपादन की अनुमति देना सुनिश्चित करें। प्रदान की गई ZYBO_Master.xdc फ़ाइल को एक बाधा के रूप में जोड़ें। "जेनरेट बिटस्ट्रीम" को हिट करें और कॉफी ब्रेक लें।

चरण 4: सॉफ्टवेयर विकास पर्यावरण सेटअप करें

विवाडो एसडीके में हार्डवेयर निर्यात करने के लिए "फाइल" के तहत जाएं। बिटस्ट्रीम को शामिल करना सुनिश्चित करें। "CORTEX_A9_Zynq_ZC702" के अंदर RTOSDemo प्रोजेक्ट आयात करें। यह फ्रीआरटीओएस इंस्टॉलेशन डायरेक्टरी के भीतर स्थित होगा। एक नया बोर्ड सपोर्ट पैकेज बनाएं lwip202 लाइब्रेरी का चयन करें। RTOSDemo प्रोजेक्ट में संदर्भित BSP को उस BSP में बदलें जिसे आपने अभी बनाया है*।

* इस निर्देश को लिखने के समय, FreeRTOS में सही BSP को संदर्भित करने के साथ एक बग लगता है। इसका समाधान करने के लिए, पहले की तरह ही सेटिंग्स के साथ एक नया बसपा बनाएं। संदर्भित बीएसपी को नए में बदलें और फिर निर्माण में विफल होने के बाद इसे वापस पुराने में बदल दें। FreeRTOS को अब त्रुटियों के बिना संकलन करना चाहिए। अप्रयुक्त बसपा को हटाने के लिए स्वतंत्र महसूस करें।

चरण 5: डेमो प्रोग्राम को संशोधित करें

RTOSDemo की "src" निर्देशिका के अंतर्गत "ड्राइवर" नामक एक नया फ़ोल्डर बनाएँ। दिए गए gpio.h को कॉपी करें। gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h, और motor.c फ़ाइलें "ड्राइवर" निर्देशिका में रखें।

main.c खोलें और mainSELECTED_APPLICATION को 2 पर सेट करें। main_lwIP.c को "lwIP_Demo" के तहत अपडेट किए गए संस्करण से बदलें। "lwIP_Demo/apps/BasicSocketCommandServer" के अंतर्गत BasicSocketCommandServer.c को भी एक नए संस्करण के साथ अद्यतन करना होगा। अंत में, "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" पर नेविगेट करें और दिए गए संस्करण के साथ नमूना-CLI-commands.c को बदलें। प्रोजेक्ट बनाएं और सुनिश्चित करें कि सब कुछ सफलतापूर्वक संकलित हो।

चरण 6: फ्लैश फर्मवेयर को क्यूएसपीआई

QSPI के लिए फ्लैश फर्मवेयर
QSPI के लिए फ्लैश फर्मवेयर
QSPI के लिए फ्लैश फर्मवेयर
QSPI के लिए फ्लैश फर्मवेयर
QSPI के लिए फ्लैश फर्मवेयर
QSPI के लिए फ्लैश फर्मवेयर

"Zynq FSBL" टेम्प्लेट का उपयोग करके "FSBL" नामक एक नया एप्लिकेशन प्रोजेक्ट बनाएं। FSBL प्रोजेक्ट को कंपाइल करने के बाद, RTOSDemo प्रोजेक्ट की बूट इमेज बनाएं। सुनिश्चित करें कि "FSBL/Debug/FSBL.elf" को "बूट छवि विभाजन" के अंतर्गत बूटलोडर के रूप में चुना गया है। यदि यह सूचीबद्ध नहीं है, तो मैन्युअल रूप से इस फ़ाइल में पथ जोड़ें।

JP5 जम्पर को ZYBO पर "JTAG" पर ले जाएँ। अपने कंप्यूटर को ZYBO से कनेक्ट करने के लिए USB माइक्रो-बी केबल का उपयोग करें। बैटरी कनेक्ट करें और ZYBO चालू करें। यह सुनिश्चित करने के लिए चलाएँ कि ZYBO को कंप्यूटर द्वारा सही ढंग से पहचाना गया है। Vivado SDK में "प्रोग्राम फ्लैश" पर क्लिक करें और RTOSDemo में BOOT.bin फ़ाइल और FSBL में FSBL.elf फ़ाइल को पथ प्रदान करें। "प्रोग्राम" को हिट करने से पहले "फ़्लैश के बाद सत्यापित करें" का चयन करना सुनिश्चित करें। फ्लैशिंग ऑपरेशन सफलतापूर्वक पूरा हुआ यह सुनिश्चित करने के लिए कंसोल देखें। बाद में, ZYBO को बंद कर दें और USB केबल को डिस्कनेक्ट कर दें। JP5 जम्पर को "QSPI" पर ले जाएँ।

चरण 7: वायरलेस एक्सेस प्वाइंट कॉन्फ़िगर करें

बैटरी अभी भी कनेक्ट होने के साथ, राउटर के वाई-फाई नेटवर्क से कनेक्ट करें। डिफ़ॉल्ट SSID और पासवर्ड राउटर के नीचे होना चाहिए। बाद में, https://tplinkwifi.net पर नेविगेट करें और उपयोगकर्ता नाम और पासवर्ड के लिए "व्यवस्थापक" का उपयोग करके लॉगिन करें। डीएचसीपी सक्षम के साथ एक्सेस प्वाइंट मोड में राउटर को कॉन्फ़िगर करने के लिए त्वरित सेटअप विज़ार्ड चलाएँ। डिवाइस के लिए डिफ़ॉल्ट उपयोगकर्ता नाम और पासवर्ड को भी अपडेट करना सुनिश्चित करें। आपके समाप्त होने के बाद राउटर को स्वचालित रूप से एक्सेस प्वाइंट मोड में रीबूट करना चाहिए।

ZYBO को चालू करें और आपके द्वारा असाइन किए गए SSID का उपयोग करके राउटर से कनेक्ट करें। राउटर के या तो आईपी एड्रेस 192.168.0.100 या 192.160.0.101 पर आने की संभावना है। ZYBO को वह पता दिया जाएगा जो राउटर के पास नहीं है। राउटर के आईपी पते को जल्दी से निर्धारित करने के लिए, आप विंडोज़ में कमांड प्रॉम्प्ट से "ipconfig" चला सकते हैं या लिनक्स या मैकोज़ में टर्मिनल से "ifconfig" चला सकते हैं। यदि आप अभी भी राउटर से जुड़े हैं, तो आप अपने वायरलेस इंटरफेस के बगल में प्रदर्शित इसका आईपी पता देखेंगे। ZYBO का IP पता निर्धारित करने के लिए इस जानकारी का उपयोग करें। ZYBO के आईपी पते की पुष्टि करने के लिए, आप या तो इसे कमांड लाइन से पिंग कर सकते हैं या टेलनेट के माध्यम से कनेक्ट कर सकते हैं।

चरण 8: जावा प्रोग्राम चलाएँ

जावा प्रोग्राम चलाएँ
जावा प्रोग्राम चलाएँ

RobotClient.java डाउनलोड करें और कमांड लाइन से "javac RobotClient.java" कमांड का उपयोग करके फाइल को कंपाइल करें। "जावा रोबोट क्लाइंट" कमांड चलाएँ जहाँ "ip_address" ZYBO का IP पता है। यदि कंप्यूटर और ZYBO के बीच एक सफल कनेक्शन स्थापित हो जाता है तो नियंत्रण GUI पॉपअप हो जाएगा। विंडो को फोकस करने के बाद, रोबोट को कीबोर्ड पर तीर कुंजियों का उपयोग करके नियंत्रित किया जाना चाहिए। सत्र समाप्त करने और रोबोट से डिस्कनेक्ट करने के लिए एस्केप बटन दबाएं।

GUI दबाए गए कुंजियों को हाइलाइट करेगा और मोटर आउटपुट को ऊपर दाईं ओर दिखाएगा। बाईं ओर दूरी मीटर हर 2 मीटर में अधिकतम 10 मीटर तक एक बार भरता है।

चरण 9: रेंजफाइंडर को कैलिब्रेट करें

ZYBO के ऑनबोर्ड स्विच का उपयोग ऑनबोर्ड रेंजफाइंडर को कॉन्फ़िगर करने के लिए किया जा सकता है। न्यूनतम पता लगाने की दूरी d को स्विच इनपुट i के एक फ़ंक्शन के रूप में दिया गया है:

डी = 50i + 250

पूर्णांक चरणों में इनपुट 0 से 15 के बीच भिन्न हो सकता है। यह 0.25 मीटर से 1 मीटर की दूरी की सीमा में अनुवाद करता है। न्यूनतम दूरी पर, पहली एलईडी झपकने लगेगी। सक्रिय एल ई डी की संख्या वस्तु की निकटता के समानुपाती होती है।

चरण 10: अभिगम्यता

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

सिफारिश की: