विषयसूची:

Zybo Zynq-7000 बोर्ड का उपयोग कर क्वाडकॉप्टर: 5 कदम
Zybo Zynq-7000 बोर्ड का उपयोग कर क्वाडकॉप्टर: 5 कदम

वीडियो: Zybo Zynq-7000 बोर्ड का उपयोग कर क्वाडकॉप्टर: 5 कदम

वीडियो: Zybo Zynq-7000 बोर्ड का उपयोग कर क्वाडकॉप्टर: 5 कदम
वीडियो: An LED Blinky on Xilinx Zynq XC7Z007S using Vivado 2018.3 2024, जुलाई
Anonim
Zybo Zynq-7000 बोर्ड का उपयोग करते हुए क्वाडकॉप्टर
Zybo Zynq-7000 बोर्ड का उपयोग करते हुए क्वाडकॉप्टर

इससे पहले कि हम शुरू करें, यहां कुछ चीजें हैं जो आप परियोजना के लिए चाहते हैं: पार्ट्स लिस्ट1x डिजीलेंट ज़ीबो ज़िनक-7000 बोर्ड 1x क्वाडकॉप्टर फ्रेम ज़ायबो को माउंट करने में सक्षम (लेज़रकटिंग के लिए एडोब इलस्ट्रेटर फ़ाइल संलग्न) 4x टर्निग डी 3530/14 1100 केवी ब्रशलेस मोटर्स 4x टर्निग ईएससी बेसिक -18A स्पीड कंट्रोलर 4x प्रोपेलर (ये आपके क्वाडकॉप्टर को उठाने के लिए पर्याप्त बड़े होने की आवश्यकता है) 2x nRF24L01 + ट्रांसीवर 1x IMU BNO055 सॉफ़्टवेयर आवश्यकताएँXilinx Vivado 2016.2नोट: ऊपर की मोटरें एकमात्र ऐसी मोटर नहीं हैं जिनका उपयोग किया जा सकता है। वे इस परियोजना में उपयोग किए जाने वाले ही हैं। वही बाकी हिस्सों और सॉफ्टवेयर आवश्यकताओं के लिए जाता है। उम्मीद है, इस निर्देश को पढ़ते समय यह एक अनकही समझ है।

चरण 1: पीडब्लूएम मॉड्यूल चालू करें

इनपुट स्विच का उपयोग करके HI थ्रॉटल और LO थ्रॉटल को पंजीकृत करने के लिए एक साधारण SystemVerilog (या अन्य HDL प्रोग्राम) प्रोग्राम करें। PWM को सिंगल ESC और टर्निग ब्रशलेस मोटर के साथ हुक करें। ईएससी को कैलिब्रेट करने का तरीका जानने के लिए निम्नलिखित फाइलों की जांच करें। पीडब्लूएम मॉड्यूल के लिए चरण 5 में अंतिम कोड संलग्न है। इस चरण ईएससी डेटाशीट में एक पीडब्लूएम स्टार्टर संलग्न है: टर्नजी ईएससी डेटाशीट पीडीएफ (चीजों पर ध्यान देने योग्य विभिन्न मोड हैं जिन्हें आप HI और LO थ्रॉटल का उपयोग करके चुन सकते हैं)

चरण 2: ब्लॉक डिज़ाइन सेट करें

ब्लॉक डिज़ाइन बनाएँ नव निर्मित ब्लॉक पर डबल क्लिक करें यहाँ डाउनलोड की गई XPS सेटिंग्स आयात करें: https://github.com/ucb-bar/fpga-zynq/tree/master/z… सेटिंग्स संशोधित करें PS-PL कॉन्फ़िगरेशन M AXI GP0 इंटरफ़ेस पेरिफेरल I/ O पिन ईथरनेट 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO कॉन्फ़िगरेशन टाइमर 0 वॉचडॉगक्लॉक कॉन्फ़िगरेशन FCLK_CLK0 और आवृत्ति को 100 MHz पर सेट करें I2C और SPI बाहरी कनेक्ट करें FCLK_CLK0 को M_AXI_GP0_ACLK रन ब्लॉक ऑटोमेशन पोर्ट बनाएं और इसे "gnd" कहें।

चरण 3: IMU को कैलिब्रेट करें

IMU को कैलिब्रेट करें
IMU को कैलिब्रेट करें

BNO055 ट्रांसीवर I2C संचार का उपयोग करता है। (शुरुआती सुझाव पढ़ने: https://learn.sparkfun.com/tutorials/i2c)IMU चलाने के लिए ड्राइवर यहां स्थित है: https://github.com/BoschSensortec/BNO055_driverA quadcopter को मैग्नेटोमीटर के उपयोग की आवश्यकता नहीं है बीएनओ055। इस वजह से, आवश्यक ऑपरेशन मोड IMU मोड है। इसे OPR_MODE रजिस्टर में एक बाइनरी नंबर xxxx1000 लिखकर बदल दिया जाता है, जहां 'x' एक 'डोंट केयर' है। उन बिट्स को 0 पर सेट करें।

चरण 4: वायरलेस ट्रांसीवर को एकीकृत करें

वायरलेस ट्रांसीवर को एकीकृत करें
वायरलेस ट्रांसीवर को एकीकृत करें
वायरलेस ट्रांसीवर को एकीकृत करें
वायरलेस ट्रांसीवर को एकीकृत करें

वायरलेस ट्रांसीवर SPI संचार का उपयोग करता है। संलग्न nRF24L01+ के लिए विनिर्देश पत्रक nrf24l01+ पर एक अच्छा ट्यूटोरियल है, लेकिन arduino के साथ:

चरण 5: ज़ीबो एफपीजीए प्रोग्राम करें

अवलोकनये मॉड्यूल क्वाडकॉप्टर के पीडब्लूएम के नियंत्रण के लिए उपयोग किए जाने वाले अंतिम मॉड्यूल हैं। motor_ctl_wrapper.svउद्देश्य: रैपर यूलर कोण और एक थ्रॉटल प्रतिशत लेता है। यह एक मुआवजा पीडब्लूएम आउटपुट करता है जो क्वाडकॉप्टर को स्थिर करने की अनुमति देगा। यह ब्लॉक मौजूद है, क्योंकि क्वाडकॉप्टर हवा में गड़बड़ी की संभावना रखते हैं और उन्हें किसी प्रकार के स्थिरीकरण की आवश्यकता होती है। हम यूलर कोणों का उपयोग कर रहे हैं, क्योंकि हम फ़्लिप या भारी कोणों पर योजना नहीं बनाते हैं जो जिम्बल लॉक का कारण बन सकते हैं। इनपुट: डेटा की 25-बिट बस CTL_IN = { [२४] GO, [२३:१६] यूलर एक्स, [१५: 8] यूलर वाई, [7:0] थ्रॉटल प्रतिशत}, घड़ी (सीएलके), सिंक्रोनस सीएलआर (एससीएलआर) आउटपुट: मोटर 1 पीडब्लूएम, मोटर 2 पीडब्लूएम, मोटर 3 पीडब्लूएम, मोटर 4 पीडब्लूएम, थ्रॉटल प्रतिशत पीडब्लूएम थ्रॉटल प्रतिशत पीडब्लूएम है ESC को इनिशियलाइज़ करने के लिए उपयोग किया जाता है, जो PWM की शुद्ध 30% - 70% रेंज चाहता है, मोटर 1-4 PWM मानों से नहीं। उन्नत - Vivado Zynq IP ब्लॉक: 8 जोड़ता है (LUTs)3 घटाव (LUTs)5 गुणक (ब्लॉक मेमोरी (BRAM))clock_div.sv (AKA pwm_fsm.sv) उद्देश्य: हार्डवेयर को नियंत्रित करें, जिसमें MUX, PWM आउटपुट और motor_ctl_wrapper के लिए sclr शामिल हैं। किसी भी परिमित राज्य मशीन (FSM) का उपयोग एक चीज़ के लिए किया जाता है: अन्य हार्डवेयर को नियंत्रित करें। इस उद्देश्य से किसी भी बड़े विचलन के कारण माना जाता है कि FSM एक अलग प्रकार के मॉड्यूल (काउंटर, योजक, आदि) का रूप ले सकता है। pwm_fsm में 3 अवस्थाएँ हैं: INIT, CLR, और FLYINIT: उपयोगकर्ता को ESC को इस रूप में प्रोग्राम करने की अनुमति दें इच्छित। mux_pwm को एक चुनिंदा सिग्नल भेजता है जो सभी मोटरों को सीधे PWM आउटपुट करता है। GO == '1'. CLR: motor_ctl_wrapper और pwm out मॉड्यूल में डेटा साफ़ करें। FLY: क्वाडकॉप्टर को स्थिर करने के लिए हमेशा के लिए लूप करें (जब तक कि हम रीसेट नहीं हो जाते)। mux_pwm के माध्यम से मुआवजा PWM भेजता है।:

सिफारिश की: