Talaan ng mga Nilalaman:

Quadcopter Gamit ang Zybo Zynq-7000 Board: 5 Mga Hakbang
Quadcopter Gamit ang Zybo Zynq-7000 Board: 5 Mga Hakbang

Video: Quadcopter Gamit ang Zybo Zynq-7000 Board: 5 Mga Hakbang

Video: Quadcopter Gamit ang Zybo Zynq-7000 Board: 5 Mga Hakbang
Video: how to fly drone (tagaLog) 2024, Nobyembre
Anonim
Quadcopter Paggamit ng Zybo Zynq-7000 Board
Quadcopter Paggamit ng Zybo Zynq-7000 Board

Bago kami magsimula, narito ang ilang mga bagay na nais mo para sa proyekto: Mga Listahan ng Bahagi1x Digilent Zybo Zynq-7000 board 1x Quadcopter Frame na mai-mount ang Zybo (Adobe Illustrator file para sa lasercutting kalakip) 4x Turnigy D3530 / 14 1100KV Brushless Motors 4x Turnigy ESC Basic -18A Speed Controller 4x Propeller (ang mga ito ay kailangang sapat na malaki upang maiangat ang iyong quadcopter) 2x nRF24L01 + transceiver 1x IMU BNO055Mga Kinakailangan ng SoftwareXilinx Vivado 2016.2NOTE: Ang mga motor sa itaas ay hindi lamang ang mga motor na maaaring magamit. Sila lang ang ginamit sa proyektong ito. Parehas din para sa natitirang mga bahagi at mga kinakailangan sa software. Sana, iyon ay isang hindi nasasabi na pag-unawa kapag binabasa ang Instructable na ito.

Hakbang 1: Kunin ang Tumatakbo na PWM Module

Magprogram ng isang simpleng SystemVerilog (o iba pang programa ng HDL) upang irehistro ang throttle ng HI at throttle ng LO gamit ang mga switch ng input. I-hook ang PWM sa isang solong ESC at Turnigy Brushless Motor. Suriin ang mga sumusunod na file upang malaman kung paano i-calibrate ang ESC. Ang huling code ay nakakabit sa hakbang 5 para sa module na PWM. Ang isang starter ng PWM ay nakakabit sa stepESC Datasheet na ito: Ang Turnigy ESC Datasheet PDF (Ang mga bagay na dapat bigyang pansin ay ang iba't ibang mga mode na maaari mong piliin gamit ang HI at LO throttle)

Hakbang 2: I-set up ang Disenyo ng Block

Lumikha ng Disenyo ng Pag-block I-double click ang bagong nabuong mga setting ng pag-import ng XPS na na-download dito: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Baguhin ang mga setting ng 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 at itakda ang dalas sa 100 MHzMake I2C at SPI panlabas na Connect FCLK_CLK0 sa M_AXI_GP0_ACLK Patakbuhin ang pag-automate ng g Lumikha ng Port at tawagan ito

Hakbang 3: I-calibrate ang IMU

I-calibrate ang IMU
I-calibrate ang IMU

Ang transceiver ng BNO055 ay gumagamit ng komunikasyon ng I2C. (Iminungkahing Pagbasa ng Baguhan: https://learn.sparkfun.com/tutorials/i2c)Ang driver upang patakbuhin ang IMU ay matatagpuan dito: https://github.com/BoschSensortec/BNO055_driver Ang isang quadcopter ay hindi nangangailangan ng paggamit ng magnetometer mula sa BNO055. Dahil dito, ang mode ng operasyon na kinakailangan ay ang IMU mode. Binago ito sa pamamagitan ng pagsulat ng isang binary number na xxxx1000 sa rehistro ng OPR_MODE, kung saan ang 'x' ay isang 'walang pakialam'. Itakda ang mga piraso sa 0.

Hakbang 4: Isama ang Wireless Transceiver

Isama ang Wireless Transceiver
Isama ang Wireless Transceiver
Isama ang Wireless Transceiver
Isama ang Wireless Transceiver

Gumagamit ang wireless transceiver ng komunikasyon sa SPI. Nakalakip ang detalye ng sheet para sa nRF24L01 + Isang magandang tutorial sa nrf24l01 + ngunit may arduino:

Hakbang 5: I-program ang Zybo FPGA

Ang mga modyul na ito ay ang pangwakas na mga module na ginagamit para sa kontrol ng PWM ng quadcopter. motor_ctl_wrapper.svMay layunin: Ang balot ay tumatagal ng mga anggulo ng Euler at isang porsyento ng throttle. Ito ay naglalabas ng isang bayad na PWM na magpapahintulot sa quadcopter na magpapatatag. Ang bloke na ito ay umiiral, dahil ang mga quadcopters ay madaling kapitan ng mga kaguluhan sa hangin at nangangailangan ng ilang uri ng pagpapapanatag. Gumagamit kami ng mga anggulo ng Euler, dahil hindi namin pinaplano ang mga flip o mabibigat na anggulo na maaaring maging sanhi ng Gimbal Lock. Input: 25-bit na bus ng data CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] Throttle Porsyento}, Clock (clk), Synchronous CLR (sclr) Output: Motor 1 PWM, Motor 2 PWM, Motor 3 PWM, Motor 4 PWM, Throttle Percentage PWM Ang Throttle Percentage PWM ay ginamit para sa pagsisimula ng ESC, na kung saan ay nais ng isang purong 30% - 70% na saklaw ng PWM, hindi ang isa mula sa mga halaga ng Motor 1-4 PWM. Advance - Vivado Zynq IP Blocks: 8 Adds (LUTs) 3 Subtract (LUTs) 5 Mga Multiplier (Block Memory (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Layunin: Kontrolin ang hardware, kabilang ang MUX, output ng PWM, at sclr para sa motor_ctl_wrapper. Anumang Finite State Machine (FSM) ay ginagamit para sa isang bagay: kontrolin ang iba pang mga hardware. Ang anumang malaking paglihis mula sa layuning ito ay maaaring maging sanhi ng dapat na FSM na gumawa ng anyo ng isang iba't ibang uri ng module (counter, adder, atbp.). Ang pwm_fsm ay may 3 estado: INIT, CLR, at FLYINIT: Payagan ang gumagamit na i-program ang ESC bilang ninanais Nagpadala ng isang piling signal sa mux_pwm na naglalabas ng tuwid na PWM sa lahat ng mga motor. Loops bumalik sa sarili hanggang GO == '1'. CLR: I-clear ang data sa motor_ctl_wrapper at ang pwm out module. FLY: Loop magpakailanman upang patatagin ang quadcopter (maliban kung i-reset namin). Ipinapadala ang bayad na PWM sa pamamagitan ng mux_pwm. Input: GO, RESET, clkOutput: RST para sa iba pang mga module na i-reset, FullFlight upang signal FLY mode, Panahon upang patakbuhin ang atmux_pwm.svPurpose: Input: Output: PWM para sa lahat ng 4 motorspwm.svPurpose: Input: Output:

Inirerekumendang: