Obsah:

Kvadrokoptéra využívající desku Zybo Zynq-7000: 5 kroků
Kvadrokoptéra využívající desku Zybo Zynq-7000: 5 kroků

Video: Kvadrokoptéra využívající desku Zybo Zynq-7000: 5 kroků

Video: Kvadrokoptéra využívající desku Zybo Zynq-7000: 5 kroků
Video: SUT - Raspberry Pi 23.4.2013 2024, Červenec
Anonim
Quadcopter pomocí desky Zybo Zynq-7000
Quadcopter pomocí desky Zybo Zynq-7000

Než začneme, zde jsou některé věci, které byste pro projekt chtěli: Seznam dílů -18A Regulátor rychlosti 4x Vrtule (ty musí být dostatečně velké, aby zvedly vaši kvadrokoptéru) 2x nRF24L01+ transceiver 1x IMU BNO055 Požadavky na software Xilinx Vivado 2016.2 UPOZORNĚNÍ: Výše uvedené motory nejsou jediné motory, které lze použít. Jsou to právě ty, které byly použity v tomto projektu. Totéž platí pro ostatní části a softwarové požadavky. Naštěstí je to nevyslovené porozumění při čtení tohoto Instructable.

Krok 1: Spusťte modul PWM

Naprogramujte jednoduchý SystemVerilog (nebo jiný HDL program) pro registraci škrticí klapky HI a LO pomocí vstupních přepínačů. Zahákněte PWM pomocí jediného ESC a střídavého motoru Turnigy. Zkontrolujte následující soubory, abyste zjistili, jak kalibrovat ESC. Konečný kód je připojen v kroku 5 pro modul PWM. V tomto kroku je připojen spouštěč PWM.

Krok 2: Nastavte návrh bloku

Vytvořit návrh bloku Poklepejte na nově generovaný blok Import nastavení XPS staženého zde: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Upravit nastavení Konfigurace PS-PL M Rozhraní AXI GP0 Periferní I/ O Piny Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Časovač konfigurace 0 Konfigurace WatchdogClock FCLK_CLK0 a nastavení frekvence na 100 MHz Vytvořit I2C a SPI externí Připojit FCLK_CLK0 k M_AXI_GP0_ACLK Spustit automatizaci bloku Vytvořit port a nazvat to „gnd“

Krok 3: Kalibrace IMU

Kalibrujte IMU
Kalibrujte IMU

Transceiver BNO055 používá komunikaci I2C. (Doporučené čtení pro začátečníky: https://learn.sparkfun.com/tutorials/i2c) Ovladač pro spuštění IMU je umístěn zde: https://github.com/BoschSensortec/BNO055_driver Kvadrokoptéra nevyžaduje použití magnetometru z BNO055. Z tohoto důvodu je nezbytným provozním režimem režim IMU. To se změní zápisem binárního čísla xxxx1000 do registru OPR_MODE, kde „x“je „je mi to jedno“. Nastavte tyto bity na 0.

Krok 4: Integrujte bezdrátový vysílač

Integrujte bezdrátový vysílač
Integrujte bezdrátový vysílač
Integrujte bezdrátový vysílač
Integrujte bezdrátový vysílač

Bezdrátový vysílač používá komunikaci SPI. V příloze je specifikační list pro nRF24L01+ Dobrý návod k nrf24l01+, ale s arduino:

Krok 5: Naprogramujte Zybo FPGA

Přehled Tyto moduly jsou konečnými moduly používanými pro řízení PWM kvadrokoptéry. motor_ctl_wrapper.sv Účel: Obal má Eulerovy úhly a procento plynu. Vytváří kompenzovaný PWM, který umožní stabilizaci kvadrokoptéry. Tento blok existuje, protože kvadrokoptéry jsou náchylné k rušení ve vzduchu a vyžadují určitý druh stabilizace. Používáme Eulerovy úhly, protože neplánujeme převrácení nebo těžké úhly, které by mohly způsobit Gimbal Lock. Vstup: 25bitová sběrnice dat CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] Procento plynu}, Hodiny (clk), Synchronní CLR (sclr) Výstup: Motor 1 PWM, Motor 2 PWM, Motor 3 PWM, Motor 4 PWM, Procento plynu PWM Procento plynu PWM je používá se k inicializaci ESC, který bude chtít čistý 30% - 70% rozsah PWM, ne ten z hodnot PWM motoru 1-4. Pokročilý - IP bloky Vivado Zynq: 8 Přidá (LUTs) 3 Odečte (LUTs) 5 Multiplikátory (Block Memory (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Účel: Ovládat hardware, včetně výstupu MUX, PWM a sclr pro motor_ctl_wrapper. Any Finite State Machine (FSM) slouží k jedné věci: ovládání jiného hardwaru. Jakákoli velká odchylka od tohoto cíle může způsobit, že předpokládaný FSM bude mít podobu jiného typu modulu (čítač, sčítač atd.). Pwm_fsm má 3 stavy: INIT, CLR a FLYINIT: Umožňuje uživateli naprogramovat ESC jako žádoucí. Odešle výběrový signál na mux_pwm, který vysílá přímý PWM do všech motorů. Smyčky zpět k sobě, dokud GO == '1'. CLR: Vymažte data v motor_ctl_wrapper a modulu pwm out. FLY: Navždy smyčka ke stabilizaci kvadrokoptéry (pokud nebudeme resetováni). Odesílá kompenzovaný PWM přes mux_pwm. Vstup: GO, RESET, clkVýstup: RST pro další resetování modulu, FullFlight pro signalizaci režimu FLY, Období pro spuštění atmux_pwm.sv Účel: Vstup: Výstup: PWM pro všechny 4 motorypwm.sv Účel: Vstup: Výstup:

Doporučuje: