Obsah:
- Krok 1: Spusťte modul PWM
- Krok 2: Nastavte návrh bloku
- Krok 3: Kalibrace IMU
- Krok 4: Integrujte bezdrátový vysílač
- Krok 5: Naprogramujte Zybo FPGA
Video: Kvadrokoptéra využívající desku Zybo Zynq-7000: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
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
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č
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:
Časosběrná kamera využívající desku ESP32-CAM: 6 kroků
Časosběrná kamera využívající desku ESP32-CAM: Tento projekt navazuje na předchozí projekt digitální digitální kamery a pomocí desky ESP32-CAM stavíme časosběrnou kameru. Všechny obrázky se postupně ukládají na kartu microSD a deska po pořízení snímku usne, aby pomohla uložit
Domácí kvadrokoptéra: 8 kroků (s obrázky)
Domácí kvadrokoptéra: Pokud chcete vyrobit kvadrokoptéru poprvé, je to 100% vaše a nemáte 3D tiskárnu, pak je tento návod pro vás! Jedním z hlavních důvodů, proč jsem dal tento instruktáž dohromady, je, aby jste nemuseli procházet sam
WIDI - Bezdrátové HDMI pomocí Zybo (Zynq Development Board): 9 kroků (s obrázky)
WIDI - Bezdrátové HDMI pomocí Zybo (Zynq Development Board): Přáli jste si někdy, abyste mohli připojit svůj televizor k počítači nebo notebooku jako externí monitor, ale nechtěli jste mít v cestě všechny ty otravné kabely? Pokud ano, tento návod je právě pro vás! Přestože existuje několik produktů, které tohoto cíle dosahují
Drobný poplašný systém využívající Super Tiny kompatibilní desku Arduino!: 10 kroků
Drobný poplašný systém využívající Super Tiny kompatibilní desku Arduino!: Dobrý den, dnes uděláme malý skvělý projekt. Postavíme malé poplašné zařízení, které měří vzdálenost mezi sebou a objektem před ním. A když se objekt pohybuje za nastavenou vzdálenost, zařízení vás upozorní
Meteorologická stanice využívající jednu desku - SLabs -32: 5 kroků
Meteorologická stanice využívající jednu desku-SLabs-32: V tomto návodu vyrobíme meteorologickou stanici, která měří teplotu, vzdušnou vlhkost a vlhkost půdy pomocí naší desky SLabs-32, která tato data také posílá do cloudu Cayenne pro sběr dat. Současně získáváme také kurzor