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: Novi srpski FPV Kamikaza dron ODONAT The New Serbian FPV Kamikaze Drone 2024, Studeni
Anonim
Quadcopter pomoću Zybo Zynq-7000 ploče
Quadcopter pomoću Zybo Zynq-7000 ploče

Prije nego što započnemo, evo nekoliko stvari koje želite za projekt: Popis dijelova1x Digilent Zybo Zynq-7000 ploča 1x okvir Quadcoptera koji može montirati Zybo (u prilogu datoteka Adobe Illustrator za lasersko rezanje) 4x Turnigy D3530/14 1100KV Motori 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 zahtjeve za dijelove i softver. Nadajmo se da je to neizgovoreno razumijevanje dok čitate ovaj Instructable.

Korak 1: Pokrenite PWM modul

Programirajte jednostavan SystemVerilog (ili neki drugi HDL program) za registriranje HI leptira za gas i LO zaklopke pomoću ulaznih prekidača. Priključite PWM s jednim motorom bez četkica ESC i Turnigy. Provjerite sljedeće datoteke kako biste saznali kako kalibrirati ESC. Završni kôd priložen je u koraku 5 za PWM modul. PWM starter je priključen u ovom korakuESC podatkovni list: Turnigy ESC podatkovni list PDF (Treba obratiti pozornost na različite načine koje možete odabrati pomoću HI i LO gasa)

Korak 2: Postavite dizajn bloka

Izradite dizajn bloka Dvaput kliknite na novo stvoreni 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 automatizirati "i pozvati"

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 radni način rada IMU način rada. To se mijenja upisivanjem binarnog broja xxxx1000 u registar OPR_MODE, 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 posljednji moduli koji se koriste za kontrolu PWM -a četverokopterca. 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 četverokopter 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 leptira za gas}, Sat (clk), Sinkroni 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 motora. Napredno - Vivado Zynq IP blokovi: 8 zbrajanja (LUT) 3 oduzimanja (LUT) 5 Množitelji (Blokovska memorija (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Svrha: Upravljajte hardverom, uključujući MUX, PWM izlaz i sclr za motor_ctl_wrapper. Bilo koji stroj 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 druge vrste modula (brojač, sabirač itd.). Pwm_fsm ima 3 stanja: INIT, CLR i FLYINIT: Dopustite korisniku da programira ESC kao željeni. Šalje signal odabira na mux_pwm koji izravno šalje PWM na sve motore. Vraća se sam sebi sve do GO == '1'. CLR: Brisanje podataka u motor_ctl_wrapper i modulu pwm out. FLY: Vječno 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, Razdoblje za pokretanje atmux_pwm.svNamjena: Ulaz: Izlaz: PWM za sva 4 motorspwm.svNamjena: Ulaz: Output:

Preporučeni: