Obsah:

Kvadrokoptéra využívajúca dosku Zybo Zynq-7000: 5 krokov
Kvadrokoptéra využívajúca dosku Zybo Zynq-7000: 5 krokov

Video: Kvadrokoptéra využívajúca dosku Zybo Zynq-7000: 5 krokov

Video: Kvadrokoptéra využívajúca dosku Zybo Zynq-7000: 5 krokov
Video: Полная разборка DJI Mavic 2 Pro - инопланетные технологии ??? 2024, November
Anonim
Quadcopter využívajúci dosku Zybo Zynq-7000
Quadcopter využívajúci dosku Zybo Zynq-7000

Predtým, ako začneme, uvádzame niekoľko vecí, ktoré by ste k projektu chceli: Zoznam dielov 1 x doska Digilent Zybo Zynq-7000 1x rám kvadrokoptéry s možnosťou pripevnenia Zybo (priložený súbor Adobe Illustrator na laserové rezanie) 4x striedavý motor Turnigy D3530/14 1100KV 4x Turnigy ESC Basic -18A Ovládač rýchlosti 4x Vrtule (tieto musia byť dostatočne veľké na zdvihnutie kvadrokoptéry) 2x nRF24L01+ transceiver 1x IMU BNO055 Požiadavky na softvér Xilinx Vivado 2016.2 UPOZORNENIE: Vyššie uvedené motory nie sú jediné motory, ktoré je možné použiť. Sú to práve tie, ktoré sa používajú v tomto projekte. To isté platí pre ostatné časti a softvérové požiadavky. Našťastie je to nevyslovené porozumenie pri čítaní tohto návodu.

Krok 1: Spustite modul PWM

Naprogramujte jednoduchý SystemVerilog (alebo iný program HDL) na registráciu škrtiacej klapky HI a LO pomocou vstupných spínačov. Pripojte PWM k jedinému bezkartáčovému motoru ESC a Turnigy. V nasledujúcich súboroch zistíte, ako kalibrovať ESC. Konečný kód je priložený v kroku 5 pre modul PWM. V tomto kroku je pripojený štartér PWM. Technický list EHS: Technický list Turnigy ESC vo formáte PDF (Je potrebné venovať pozornosť rôznym režimom, ktoré je možné zvoliť pomocou škrtiacej klapky HI a LO)

Krok 2: Nastavte dizajn bloku

Create Block Design Dvakrát kliknite na novo vygenerovaný blok Import nastavení XPS stiahnutých tu: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Upraviť nastavenia Konfigurácia PS-PL M Rozhranie AXI GP0 Periférne I/ O kolíky Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Časovač konfigurácie 0 Konfigurácia WatchdogClock FCLK_CLK0 a nastavenie frekvencie na 100 MHz Vykonajte externé pripojenie I2C a SPI Pripojte FCLK_CLK0 k M_AXI_GP0_ACLK Spustite automatizáciu bloku Vytvorte port a nazvite ho

Krok 3: Kalibrujte IMU

Kalibrujte IMU
Kalibrujte IMU

Prijímač BNO055 používa komunikáciu I2C. (Odporúčané čítanie pre začiatočníkov: https://learn.sparkfun.com/tutorials/i2c) Ovládač na spustenie IMU sa nachádza tu: https://github.com/BoschSensortec/BNO055_driver Kvadrokoptéra nevyžaduje použitie magnetometra z BNO055. Z tohto dôvodu je nevyhnutným prevádzkovým režimom režim IMU. To sa zmení zapísaním binárneho čísla xxxx1000 do registra OPR_MODE, kde „x“je „je mi to jedno“. Nastavte tieto bity na 0.

Krok 4: Integrujte bezdrôtový transceiver

Integrujte bezdrôtový transceiver
Integrujte bezdrôtový transceiver
Integrujte bezdrôtový transceiver
Integrujte bezdrôtový transceiver

Bezdrôtový transceiver používa komunikáciu SPI. V prílohe je špecifikačný list pre nRF24L01+ Dobrý návod k nrf24l01+, ale s arduino:

Krok 5: Naprogramujte Zybo FPGA

Prehľad Tieto moduly sú konečnými modulmi používanými na ovládanie PWM kvadrokoptéry. motor_ctl_wrapper.svÚčel: Obal zaberá Eulerove uhly a percento plynu. Vytvára kompenzovaný PWM, ktorý umožní stabilizáciu kvadrokoptéry. Tento blok existuje, pretože kvadrokoptéry sú náchylné na poruchy vzduchu a vyžadujú určitý druh stabilizácie. Používame Eulerove uhly, pretože neplánujeme prevrátenie alebo ťažké uhly, ktoré by mohli spôsobiť zablokovanie kardana. Vstup: 25-bitová zbernica dát CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] Percento škrtiacej klapky}, Hodiny (clk), Synchrónny CLR (sclr) Výstup: Motor 1 PWM, Motor 2 PWM, Motor 3 PWM, Motor 4 PWM, Plynový percentuálny PWM Percentuálny plyn PWM je používa sa na inicializáciu ESC, ktorá bude chcieť čistý 30% - 70% rozsah PWM, nie ten z hodnôt PWM motora 1-4. Rozšírené - IP bloky Vivado Zynq: 8 pripočíta (LUTs) 3 odčíta (LUTs) 5 Multiplikátory (blok pamäte (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Účel: Ovládať hardvér vrátane výstupu MUX, PWM a sclr pre motor_ctl_wrapper. Any Finite State Machine (FSM) sa používa na jednu vec: ovládanie iného hardvéru. Akákoľvek veľká odchýlka od tohto cieľa môže spôsobiť, že predpokladaný FSM bude mať formu iného typu modulu (počítadlo, sčítač atď.). Pwm_fsm má 3 stavy: INIT, CLR a FLYINIT: Umožňuje používateľovi naprogramovať ESC ako žiaduce. Pošle výberový signál na mux_pwm, ktorý vysiela priamy PWM do všetkých motorov. Slučky späť k sebe, kým GO == '1'. CLR: Vymazanie údajov v motore_ctl_wrapper a module pwm out. FLY: Večná slučka na stabilizáciu kvadrokoptéry (pokiaľ nie sme resetovaní). Odošle kompenzovaný PWM cez mux_pwm. Vstup: GO, RESET, clk Výstup: RST pre ďalšie resetovanie modulov, FullFlight na signál režimu FLY, Obdobie na spustenie atmux_pwm.sv Účel: Vstup: Výstup: PWM pre všetky 4 motorypwm.sv Účel: Vstup: Výstup:

Odporúča: