Kazalo:

Quadcopter z uporabo plošče Zybo Zynq-7000: 5 korakov
Quadcopter z uporabo plošče Zybo Zynq-7000: 5 korakov

Video: Quadcopter z uporabo plošče Zybo Zynq-7000: 5 korakov

Video: Quadcopter z uporabo plošče Zybo Zynq-7000: 5 korakov
Video: Шокирующая правда о нечеловеческих НЛО: Джон Гриневальд раскрывает все 2024, Julij
Anonim
Štirikopter s ploščo Zybo Zynq-7000
Štirikopter s ploščo Zybo Zynq-7000

Preden začnemo, si za projekt želite nekaj stvari: Seznam delov1x Digilent Zybo Zynq-7000 plošča 1x okvir Quadcopter, ki lahko namesti Zybo (priložena datoteka Adobe Illustrator za lasersko rezanje) 4x Turnigy D3530/14 1100KV brezkrtačni motorji 4x Turnigy ESC Basic -18A krmilnik hitrosti 4x propelerji (ti morajo biti dovolj veliki, da dvignete vaš štirikopter) 2x nRF24L01+ oddajnik 1x IMU BNO055 Zahteve glede programske opreme Xilinx Vivado 2016.2 OPOMBA: Zgoraj navedeni motorji niso edini motorji, ki jih je mogoče uporabiti. Le te so bile uporabljene v tem projektu. Enako velja za ostale zahteve po delih in programski opremi. Upajmo, da je to neizrečeno razumevanje pri branju tega navodila.

1. korak: Zaženite modul PWM

Programirajte preprost SystemVerilog (ali drug program HDL) za registracijo dušilke dušilke HI in dušilke dušilke LO s pomočjo vhodnih stikal. PWM priklopite z enim samim brezkrtačnim motorjem ESC in Turnigy. Preverite naslednje datoteke, če želite izvedeti, kako umeriti ESC. Končna koda je priložena v 5. koraku za modul PWM. V tem koraku je pritrjen zaganjalnik PWM. Podatkovni list ESC: Podatkovni list Turnigy ESC PDF (Na kaj morate biti pozorni so različni načini, ki jih lahko izberete s pomočjo dušilke HI in LO)

2. korak: Nastavite zasnovo bloka

Ustvari zasnovo bloka Dvokliknite novo ustvarjeni blok Uvozi nastavitve XPS, ki ste jih prenesli tukaj: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Spremenite nastavitve Konfiguracija PS-PL M Vmesnik AXI GP0 Periferija I/ O Pins Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Konfiguracijski časovnik 0 WatchdogClock Konfiguracija FCLK_CLK0 in nastavite frekvenco na 100 MHz Naredite I2C in SPI zunanji Connect FCLK_CLK0 na M_AXI_GP0_ACLK Zaženi blokiraj in ustvari"

3. korak: Umerite IMU

Umerite IMU
Umerite IMU

Oddajnik BNO055 uporablja I2C komunikacijo. (Predlagano branje za začetnike: https://learn.sparkfun.com/tutorials/i2c) Gonilnik za zagon IMU se nahaja tukaj: https://github.com/BoschSensortec/BNO055_driver Štirikopter ne zahteva uporabe magnetometra BNO055. Zaradi tega je potreben način delovanja način IMU. To se spremeni tako, da se v register OPR_MODE zapiše binarna številka xxxx1000, kjer je 'x' 'vseeno'. Te bite nastavite na 0.

4. korak: Vključite brezžični oddajnik

Vključite brezžični oddajnik
Vključite brezžični oddajnik
Vključite brezžični oddajnik
Vključite brezžični oddajnik

Brezžični oddajnik uporablja komunikacijo SPI. V prilogi je specifikacijski list za nRF24L01+ Dobra vadnica o nrf24l01+, vendar z arduinom:

5. korak: Programirajte Zybo FPGA

Ti moduli so zadnji moduli, ki se uporabljajo za krmiljenje PWM -ja štirikontropterja. motor_ctl_wrapper.sv Namen: Ovoj zajema Eulerjeve kote in odstotek dušilke. Oddaja kompenziran PWM, ki bo omogočil stabilizacijo kvadrokopterja. Ta blok obstaja, ker so štirikopterji nagnjeni k motnjam v zraku in zahtevajo nekakšno stabilizacijo. Uporabljamo Eulerjeve kote, saj ne načrtujemo zrcaljenja ali težkih kotov, ki bi lahko povzročili Gimbal Lock. Vhod: 25-bitno vodilo podatkov CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] Odstotek dušilke}, Ura (clk), Sinhroni CLR (sclr) Izhod: Motor 1 PWM, Motor 2 PWM, Motor 3 PWM, Motor 4 PWM, Odstotek plina PWM uporablja se za inicializacijo ESC, ki bo želela čisti 30% - 70% obseg PWM, ne tistega iz vrednosti motorja 1-4 PWM. Napredno - bloki IP Vivado Zynq: 8 seštevkov (LUT) 3 odštevanj (LUT) 5 Množitelji (blokovski pomnilnik (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Namen: Nadzira strojno opremo, vključno z izhodom MUX, PWM in sclr za motor_ctl_wrapper. Vsak stroj s končnim stanjem (FSM) se uporablja za eno stvar: nadzor druge strojne opreme. Vsako veliko odstopanje od tega cilja lahko povzroči, da ima domnevni FSM obliko druge vrste modula (števec, seštevalnik itd.). Pwm_fsm ima 3 stanja: INIT, CLR in FLYINIT: uporabniku omogoči, da ESC programira kot želeno. Pošlje izbrani signal mux_pwm, ki oddaja naravni PWM na vse motorje. Vrne se sam sebi do GO == '1'. CLR: Počisti podatke v motor_ctl_wrapperju in modulu pwm out. Pošlje kompenziran PWM prek mux_pwm. Vhod: GO, RESET, clk Izhod: RST za druge ponastavitve modulov, FullFlight za signal načina FLY, obdobje za izvajanje atmux_pwm.sv Namen: Vhod: Izhod: PWM za vse 4 motorspwm.sv Namen: Vhod: Izhod:

Priporočena: