Sisukord:

Quadcopter, kasutades Zybo Zynq-7000 plaati: 5 sammu
Quadcopter, kasutades Zybo Zynq-7000 plaati: 5 sammu

Video: Quadcopter, kasutades Zybo Zynq-7000 plaati: 5 sammu

Video: Quadcopter, kasutades Zybo Zynq-7000 plaati: 5 sammu
Video: Electromagnetic Levitation Quadcopter 2024, November
Anonim
Quadcopter, kasutades Zybo Zynq-7000 plaati
Quadcopter, kasutades Zybo Zynq-7000 plaati

Enne alustamist on siin projekti jaoks mõned asjad: Osade nimekiri 1x Digilent Zybo Zynq-7000 tahvel 1x nelikopteri raam, millele saab paigaldada Zybo (lisatud Adobe Illustratori fail laserlõikamiseks) 4x Turnigy D3530/14 1100KV harjadeta mootorid 4x Turnigy ESC Basic -18A kiiruskontrolleri 4x propellerid (need peavad olema piisavalt suured, et nelikopterit üles tõsta) 2x nRF24L01+ transiiver 1x IMU BNO055 Nõuded tarkvarale Xilinx Vivado 2016.2. MÄRKUS. Ülaltoodud mootorid ei ole ainsad mootorid, mida saab kasutada. Neid on just selles projektis kasutatud. Sama kehtib ka ülejäänud osade ja tarkvara nõuete kohta. Loodetavasti on see juhendit lugedes sõnatu arusaam.

Samm: käivitage PWM -moodul

Programmeerige lihtne SystemVerilog (või muu HDL -programm) sisendlülitite abil HI- ja LO -gaasi registreerimiseks. Ühendage PWM ühe ESC ja Turnigy harjadeta mootoriga. Kontrollige järgmisi faile, et teada saada, kuidas ESC -d kalibreerida. Lõplik kood on lisatud PWM -mooduli 5. etapis. Selles etapis on lisatud PWM -käivitaja ESC -andmeleht: Turnigy ESC -i andmeleht PDF (Tasub pöörata tähelepanu erinevatele režiimidele, mida saate valida HI- ja LO -gaasi abil)

Samm: seadistage plokkide kujundus

Ploki kujunduse loomine Topeltklõpsake äsja loodud plokki Impordi XPS-i seaded, mis on alla laaditud siit: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Seadete muutmine PS-PL Configuration M AXI GP0 interface Peripheral I/ O Pins Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Configuration Timer 0 WatchdogClock Configuration FCLK_CLK0 and set sagedus 100 MHz Tee I2C ja SPI väline Connect FCLK_CLK0 väärtuseks M_AXI_GP0_ACLK Käivita ploki automatiseerimine "Loo port ja loo see"

Samm: kalibreerige IMU

Kalibreerige IMU
Kalibreerige IMU

BNO055 transiiver kasutab I2C sidet. (Algaja soovituslik lugemine: https://learn.sparkfun.com/tutorials/i2c) IMU käivitamise draiver asub siin: https://github.com/BoschSensortec/BNO055_driver Quadcopter ei nõua magnetomeetri kasutamist BNO055. Seetõttu on vajalik töörežiim IMU -režiim. Seda muudetakse, kirjutades OPR_MODE registrisse kahendnumbri xxxx1000, kus „x” on „ei hooli”. Seadke need bitid väärtuseks 0.

Samm: integreerige traadita transiiver

Integreerige traadita transiiver
Integreerige traadita transiiver
Integreerige traadita transiiver
Integreerige traadita transiiver

Traadita transiiver kasutab SPI -ühendust. Lisatud on nRF24L01+ spetsifikatsioonileht+ Hea õpetus nrf24l01+ kohta, kuid koos arduinoga:

Samm: programmeerige Zybo FPGA

Need moodulid on viimased moodulid, mida kasutatakse nelikopteri PWM -i juhtimiseks. motor_ctl_wrapper.sv Eesmärk: ümbris võtab arvesse Euleri nurki ja gaasihoovastiku protsenti. See väljastab kompenseeritud PWM, mis võimaldab nelikopteril stabiliseeruda. See plokk on olemas, kuna kvadrokopterid on õhuhäirete suhtes altid ja vajavad teatud tüüpi stabiliseerimist. Me kasutame Euleri nurki, kuna me ei plaani klappe ega raskeid nurki, mis võivad põhjustada käärluku. Sisend: 25-bitine andmesiin CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] gaasihoovastiku protsent}, kell (clk), sünkroonne CLR (sclr) väljund: mootor 1 PWM, mootor 2 PWM, mootor 3 PWM, mootor 4 PWM, drosseli protsent PWM Gaasihoovastiku protsent on kasutatakse ESC initsialiseerimiseks, mis soovib puhast 30–70% PWM vahemikku, mitte mootori 1–4 PWM väärtusi. Täiustatud - Vivado Zynq IP -plokid: 8 lisab (LUT) 3 lahutab (LUT) 5 Kordajad (plokkmälu (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Eesmärk: Juhtige riistvara, sealhulgas MUX -i, PWM -väljundit ja motor_ctl_wrapper -i sclr -d. Mis tahes lõpliku oleku masinat (FSM) kasutatakse ühe asja jaoks: muu riistvara juhtimiseks. Kõik suured kõrvalekalded sellest eesmärgist võivad põhjustada oletatava Mikroneesia eri tüüpi mooduli (loenduri, liituri jne) kujul. Pwm_fsm -l on 3 olekut: INIT, CLR ja FLYINIT: lubage kasutajal programmeerida ESC soovitud. Saadab valimissignaali mux_pwm -le, mis väljastab kõigile mootoritele otse PWM -i. Loopib end tagasi, kuni GO == '1'. CLR: Kustutage andmed motor_ctl_wrapperis ja pwm out moodulis. FLY: Loop igavesti, et stabiliseerida quadcopter (kui me pole lähtestatud). Saadab kompenseeritud PWM -i mux_pwm kaudu. Sisend: GO, RESET, clk Väljund: RST muude moodulite lähtestamiseks, FullFlight FLY -režiimi signaalimiseks, ajavahemik atmux_pwm.sv Eesmärk: Sisend: Väljund: PWM kõigi 4 mootorite jaoks:

Soovitan: