Sadržaj:

Quadcopter pomoću Zybo Zynq-7000 ploče: 5 koraka
Quadcopter pomoću Zybo Zynq-7000 ploče: 5 koraka

Video: Quadcopter pomoću Zybo Zynq-7000 ploče: 5 koraka

Video: Quadcopter pomoću Zybo Zynq-7000 ploče: 5 koraka
Video: 🍁 DRONE X PRO - Set up - Probe 2020. 2024, Juli
Anonim
Kvadrokopter pomoću Zybo Zynq-7000 ploče
Kvadrokopter pomoću Zybo Zynq-7000 ploče

Prije nego što započnemo, evo nekoliko stvari koje želite za projekt: Lista dijelova1x Digilent Zybo Zynq-7000 ploča 1x okvir Quadcoptera koji može montirati Zybo (u privitku datoteka Adobe Illustrator za lasersko rezanje) 4x Turnigy D3530/14 motori 1100KV bez četkica 4x Turnigy ESC Basic -18A regulatori brzine 4x propeleri (oni moraju biti dovoljno veliki da podignu vaš quadcopter) 2x nRF24L01+ primopredajnik 1x IMU BNO055Zahtjevi za softverXilinx Vivado 2016.2NAPOMENA: Gore navedeni motori nisu jedini motori koji se mogu koristiti. Oni su samo oni koji su korišteni u ovom projektu. Isto vrijedi i za ostale dijelove i zahtjeve softvera. Nadajmo se da je to neizgovoreno razumijevanje prilikom čitanja ovog uputstva.

Korak 1: Pokrenite PWM modul

Programirajte jednostavan SystemVerilog (ili neki drugi HDL program) za registraciju HI gasa i LO gasa pomoću prekidača za unos. Priključite PWM s jednim ESC i Turnigy motorom bez četkice. Provjerite sljedeće datoteke da biste saznali kako kalibrirati ESC. Konačni kod je priložen u koraku 5 za PWM modul. PWM pokretač je priključen u ovom korakuESC podatkovni list: Turnigy ESC tehnički list PDF (Stvari na koje treba obratiti pažnju su različiti načini koje možete odabrati pomoću HI i LO gasa)

Korak 2: Postavite dizajn bloka

Kreiraj dizajn bloka Dvaput kliknite na novo generirani blok Uvoz XPS postavki preuzetih ovdje: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Izmjena postavki PS-PL konfiguracija M AXI GP0 sučelje Periferija I/ O Pinovi Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Konfiguracijski mjerač 0 WatchdogClock Konfiguracija FCLK_CLK0 i postavite frekvenciju na 100 MHzNapravite I2C i SPI vanjski Povežite FCLK_CLK0 na M_AXI_GP0_ACLK Pokrenite automatiku "Pozovi"

Korak 3: Kalibrirajte IMU

Kalibrirajte IMU
Kalibrirajte IMU

BNO055 primopredajnik koristi I2C komunikaciju. (Predloženo štivo za početnike: https://learn.sparkfun.com/tutorials/i2c) Upravljački program za pokretanje IMU -a nalazi se ovdje: https://github.com/BoschSensortec/BNO055_driverČetvorokopter ne zahtijeva upotrebu magnetometra sa BNO055. Zbog toga je potreban način rada IMU način rada. Ovo se mijenja upisivanjem binarnog broja xxxx1000 u OPR_MODE registar, gdje je 'x' 'nije me briga'. Postavite te bitove na 0.

Korak 4: Integrirajte bežični primopredajnik

Integrirajte bežični primopredajnik
Integrirajte bežični primopredajnik
Integrirajte bežični primopredajnik
Integrirajte bežični primopredajnik

Bežični primopredajnik koristi SPI komunikaciju. U privitku je tehnički list za nRF24L01+ Dobar vodič za nrf24l01+, ali s arduinom:

Korak 5: Programirajte Zybo FPGA

Pregled Ovi moduli su završni moduli koji se koriste za kontrolu PWM -a četvorokopterja. motor_ctl_wrapper.svNamjena: Omotač uzima Eulerove kutove i postotak gasa. On emitira kompenzirani PWM koji će omogućiti stabilizaciju kvadrokoptera. Ovaj blok postoji jer su četvorokopter skloni smetnjama u zraku i zahtijevaju neku vrstu stabilizacije. Koristimo Eulerove kutove jer ne planiramo preokrete ili teške kutove koji bi mogli uzrokovati Gimbal Lock. Ulaz: 25-bitna sabirnica podataka CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] Postotak gasa}, Sat (clk), Sinhroni CLR (sclr) Izlaz: Motor 1 PWM, Motor 2 PWM, Motor 3 PWM, Motor 4 PWM, Postotak gasa PWM Postotak gasa PWM je koristi se za inicijalizaciju ESC -a, koji će htjeti čisti raspon PWM -a od 30% - 70%, a ne onaj iz vrijednosti 1-4 PWM -a. Napredno - Vivado Zynq IP blokovi: 8 dodaje (LUT) 3 oduzima (LUT) 5 Množitelji (Blokovska memorija (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Svrha: Kontrolirajte hardver, uključujući MUX, PWM izlaz i sclr za motor_ctl_wrapper. Bilo koja mašina konačnih stanja (FSM) koristi se za jednu stvar: upravljanje drugim hardverom. Svako veliko odstupanje od ovog cilja može uzrokovati da pretpostavljeni FSM poprimi oblik drugačije vrste modula (brojač, sabirač itd.). Pwm_fsm ima 3 stanja: INIT, CLR i FLYINIT: Dopustite korisniku da programira ESC kao željeno. Šalje signal za odabir mux_pwm koji izravno šalje PWM na sve motore. Vraća se sam sebi sve do GO == '1'. CLR: Obriši podatke u motor_ctl_wrapper i modulu pwm out. FLY: Uvijek petlja do stabilizacije četverokopter (osim ako smo resetirani). Šalje kompenzirani PWM kroz mux_pwm. Ulaz: GO, RESET, clkOutput: RST za resetiranje drugih modula, FullFlight za signal FLY načina rada, Period za pokretanje atmux_pwm.sv Namjena: Ulaz: Izlaz: PWM za sva 4 motorspwm.svNamjena: Ulaz: Output:

Preporučuje se: