Բովանդակություն:

Quadcopter օգտագործելով Zybo Zynq-7000 խորհուրդը `5 քայլ
Quadcopter օգտագործելով Zybo Zynq-7000 խորհուրդը `5 քայլ

Video: Quadcopter օգտագործելով Zybo Zynq-7000 խորհուրդը `5 քայլ

Video: Quadcopter օգտագործելով Zybo Zynq-7000 խորհուրդը `5 քայլ
Video: Eachine Е58 как запустить квадрокоптер | Подробная видео инструкция 2024, Նոյեմբեր
Anonim
Quadcopter օգտագործելով Zybo Zynq-7000 տախտակ
Quadcopter օգտագործելով Zybo Zynq-7000 տախտակ

Նախքան սկսելը, այստեղ կան որոշ բաներ, որոնք ցանկանում եք նախագծի համար. Մասերի ցուցակ 1x Digilent Zybo Zynq-7000 տախտակ 1x Quadcopter Frame կարող է տեղադրվել Zybo (կցված է Adobe Illustrator ֆայլը լազերային կտրման համար) 4x Turnigy D3530/14 1100KV Brushless Motors 4x Turnigy ESC Basic -18A Արագության վերահսկիչ 4x պտուտակներ (դրանք պետք է լինեն բավականաչափ մեծ, որպեսզի բարձրացնեն ձեր քառանկյունիչը) 2x nRF24L01+ հաղորդիչ 1x IMU BNO055 wareրագրային ապահովման պահանջներ Xilinx Vivado 2016.2. ՈOTՇԱԴՐՈԹՅՈՆ. Վերևի շարժիչները միակ շարժիչները չեն, որոնք կարող են օգտագործվել: Նրանք պարզապես նրանք են, ովքեր օգտագործվում են այս նախագծում: Նույնը վերաբերում է մնացած մասերին և ծրագրային ապահովման պահանջներին: Հուսանք, որ սա չասված հասկացողություն է, երբ կարդում ես այս Ուղեցույցը:

Քայլ 1: Գործարկեք PWM մոդուլը

Programրագրեք պարզ SystemVerilog (կամ այլ HDL ծրագիր) `մուտքագրման անջատիչների միջոցով HI շնչափող և LO շնչափող գրանցելու համար: Միացրեք PWM- ին մեկ ESC և Turnigy Brushless Motor- ով: Ստուգեք հետևյալ ֆայլերը `պարզելու, թե ինչպես կարելի է չափագրել ESC- ն: Վերջնական ծածկագիրը կցված է 5 -րդ քայլում` PWM մոդուլի համար: Այս քայլում կցված է PWM սկիզբ ESC տվյալների թերթիկ. Turnigy ESC տվյալների թերթ

Քայլ 2: Կարգավորեք բլոկի դիզայնը

Ստեղծեք արգելափակման ձևավորում Կրկնակի կտտացրեք նոր ստեղծված բլոկի ներմուծման այստեղ ներբեռնված XPS կարգավորումները ՝ https://github.com/ucb-bar/fpga-zynq/tree/master/z… Փոփոխել կարգավորումները PS-PL կազմաձևում M AXI GP0 ինտերֆեյս ipայրամասային I/ O կապում Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO կազմաձևման ժմչփ 0 WatchdogClock կազմաձևում FCLK_CLK0 և հաճախությունը սահմանել 100 ՄՀց: Կատարեք I2C և SPI արտաքին միացրեք FCLK_CLK0- ին M_AXI_GP0_ACLK և արգելափակեք ավտոմատացում"

Քայլ 3: Կալիբրացնել IMU- ն

Կալիբրացնել IMU- ն
Կալիբրացնել IMU- ն

BNO055 հաղորդիչն օգտագործում է I2C հաղորդակցություն: (Սկսնակների համար առաջարկվող ընթերցում. BNO055: Դրա պատճառով անհրաժեշտ է շահագործման ռեժիմը IMU ռեժիմը: Սա փոխվում է երկուական թիվ xxxx1000 գրելով OPR_MODE գրանցամատյանում, որտեղ «x» - ը «չի հետաքրքրում»: Այդ բիթերը սահմանեք 0:

Քայլ 4: Միացրեք անլար հաղորդիչը

Միացրեք անլար հաղորդիչը
Միացրեք անլար հաղորդիչը
Միացրեք անլար հաղորդիչը
Միացրեք անլար հաղորդիչը

Անլար հաղորդիչն օգտագործում է SPI հաղորդակցություն: Կից ներկայացված է nRF24L01+-ի լավ ձեռնարկ nrf24l01+-ով, բայց arduino- ով ՝

Քայլ 5. Programրագրեք Zybo FPGA- ն

Այս մոդուլներն այն վերջին մոդուլներն են, որոնք օգտագործվում են քառանկյունի PWM- ի կառավարման համար: motor_ctl_wrapper.sv Նպատակը. Փաթեթավորումը վերցնում է Էյլերի անկյունները և շնչափողի տոկոսը: Այն թողարկում է փոխհատուցվող PWM, որը թույլ կտա քառանկյուն ինքնաթիռի կայունացմանը: Այս բլոկը գոյություն ունի, քանի որ քառակուսու համակարգերը հակված են օդում խախտումների և պահանջում են որոշակի կայունացում: Մենք օգտագործում ենք Էյլերի անկյունները, քանի որ չենք պլանավորում շրջադարձեր կամ ծանր անկյուններ, որոնք կարող են առաջացնել Gimbal Lock: Մուտք. Տվյալների 25-բիթանոց ավտոբուս CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] Շնչափողի տոկոսադրույք}, ockամացույց (clk), Synchronous CLR (sclr) Արդյունք. Շարժիչ 1 PWM, Շարժիչ 2 PWM, Շարժիչ 3 PWM, Շարժիչ 4 PWM, Շնչափողի տոկոսադրույք PWM օգտագործվում է ESC- ի սկզբնավորման համար, որը կպահանջի PWM- ի մաքուր 30% - 70% միջակայք, այլ ոչ թե շարժիչ 1-4 PWM արժեքներից: Ընդլայնված - Vivado Zynq IP բլոկներ. 8 ավելացում (LUT) 3 հանում (LUT) 5 Բազմապատկիչներ (Արգելափակման հիշողություն (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Նպատակը. Վերահսկել սարքավորումները, ներառյալ MUX, PWM ելքը և sclr- ը motor_ctl_wrapper- ի համար: Finանկացած սահմանափակ վիճակի մեքենա (FSM) օգտագործվում է մեկ բանի համար `վերահսկել այլ սարքավորումները: Այս նպատակից ցանկացած մեծ շեղում կարող է առաջացնել ենթադրյալ FSM- ի ձևը այլ տեսակի մոդուլի (հաշվիչ, գումարիչ և այլն): pwm_fsm- ն ունի 3 վիճակ ՝ INIT, CLR և FLYINIT. ցանկալի: Ուղղակի ազդանշան է ուղարկում mux_pwm- ին, որն ուղիղ PWM- ն թողարկում է բոլոր շարժիչներին: Վերադարձ դեպի իրեն ՝ մինչև GO == '1': CLR. Մաքրել տվյալները motor_ctl_wrapper- ում և pwm out մոդուլում: FLY: Ընդմիշտ շրջանցեք քառանկյունը կայունացնելու համար (եթե չվերակայվենք): Փոխհատուցվող PWM- ն ուղարկում է mux_pwm- ի միջոցով: Մուտք ՝ GO, RESET, clkOutput: RST այլ մոդուլների վերակայման համար, FullFlight ազդանշանի FLY ռեժիմ, ժամանակաշրջան ՝ atmux_pwm.sv գործարկման նպատակ: Մուտք ՝ ելք ՝ PWM բոլոր 4 շարժիչների համար.:

Խորհուրդ ենք տալիս: