Satura rādītājs:

Quadcopter Izmantojot Zybo Zynq-7000 dēli: 5 soļi
Quadcopter Izmantojot Zybo Zynq-7000 dēli: 5 soļi

Video: Quadcopter Izmantojot Zybo Zynq-7000 dēli: 5 soļi

Video: Quadcopter Izmantojot Zybo Zynq-7000 dēli: 5 soļi
Video: Дрон заснял то, чего никто не должен был видеть! Кадры не для слабонервных! 2024, Novembris
Anonim
Quadcopter, izmantojot Zybo Zynq-7000 plati
Quadcopter, izmantojot Zybo Zynq-7000 plati

Pirms darba sākšanas šeit ir dažas lietas, ko vēlaties projektam: Daļu saraksts 1x Digilent Zybo Zynq-7000 plate 1x Quadcopter Frame, kas spēj piestiprināt Zybo (pievienots Adobe Illustrator fails lāzergriešanai) 4x Turnigy D3530/14 1100KV Brushless Motors 4x Turnigy ESC Basic -18A ātruma regulatora 4x dzenskrūves (tām jābūt pietiekami lielām, lai paceltu jūsu kvadkopteri) 2x nRF24L01+ raiduztvērējs 1x IMU BNO055Prasības programmatūrai Xilinx Vivado 2016.2. PIEZĪME. Iepriekš minētie motori nav vienīgie izmantojamie motori. Tie ir tikai tie, kas izmantoti šajā projektā. Tas pats attiecas uz pārējām detaļām un programmatūras prasībām. Cerams, ka tā ir neizteikta izpratne, lasot šo pamācību.

1. darbība: aktivizējiet PWM moduli

Programmējiet vienkāršu SystemVerilog (vai citu ABL programmu), lai reģistrētu HI un LO droseļvārstu, izmantojot ievades slēdžus. Pievienojiet PWM ar vienu ESC un Turnigy bezsuku motoru. Pārbaudiet šādus failus, lai uzzinātu, kā kalibrēt ESC. Galīgais kods ir pievienots 5. darbībai PWM modulim. Šajā solī ir pievienots PWM starteris ESC datu lapa: Turnigy ESC datu lapa PDF (Jāpievērš uzmanība dažādiem režīmiem, kurus varat izvēlēties, izmantojot HI un LO droseļvārstu)

2. darbība: iestatiet bloka dizainu

Izveidot bloka dizainu Veiciet dubultklikšķi uz jaunizveidotā bloka Importēt XPS iestatījumus, kas lejupielādēti šeit: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Iestatījumu maiņa PS-PL Configuration M AXI GP0 saskarne Perifērijas I/ O Tapas Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO konfigurācijas taimeris 0 WatchdogClock konfigurācija FCLK_CLK0 un iestatiet frekvenci uz 100 MHz Padara I2C un SPI ārējo savienojumu FCLK_CLK0 uz M_AXI_GP0_ACLK Palaist bloka automatizāciju "Izveidot portu un to izsaukt"

3. darbība: kalibrējiet IMU

Kalibrējiet IMU
Kalibrējiet IMU

Uztvērējs BNO055 izmanto I2C sakarus. (Iesācēja ieteiktais lasījums: https://learn.sparkfun.com/tutorials/i2c) IMU palaišanas draiveris atrodas šeit: https://github.com/BoschSensortec/BNO055_driver Quadcopter neprasa magnetometra izmantošanu no BNO055. Šī iemesla dēļ nepieciešamais darbības režīms ir IMU režīms. Tas tiek mainīts, ierakstot bināro skaitli xxxx1000 reģistrā OPR_MODE, kur “x” ir “vienalga”. Iestatiet šos bitus uz 0.

4. solis: integrējiet bezvadu uztvērēju

Integrējiet bezvadu uztvērēju
Integrējiet bezvadu uztvērēju
Integrējiet bezvadu uztvērēju
Integrējiet bezvadu uztvērēju

Bezvadu uztvērējs izmanto SPI sakarus. Pievienota specifikācijas lapa nRF24L01+ Laba apmācība par nrf24l01+, bet ar arduino:

5. darbība: ieprogrammējiet Zybo FPGA

Pārskats Šie moduļi ir pēdējie moduļi, ko izmanto kvadkoptera PWM kontrolei. motor_ctl_wrapper.sv Mērķis: iesaiņojumā tiek ņemti Eilera leņķi un droseļvārsta procents. Tas izvada kompensētu PWM, kas ļaus kvadracopterim stabilizēties. Šis bloks pastāv, jo kvadkopteri ir pakļauti traucējumiem gaisā un tiem ir nepieciešama sava veida stabilizācija. Mēs izmantojam Eilera leņķus, jo neplānojam apvērst vai smagus leņķus, kas varētu izraisīt gimbalu bloķēšanu. Ievads: 25 bitu datu kopne CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Eilers Y, [7: 0] droseļvārsta procents}, pulkstenis (clk), sinhronā CLR (sclr) izeja: motors 1 PWM, motors 2 PWM, motors 3 PWM, motors 4 PWM, droseles procents PWM Droseles procents PWM ir izmanto, lai inicializētu ESC, kas vēlēsies tīru 30–70% PWM diapazonu, nevis to, kas iegūts no motora 1–4 PWM vērtībām. Uzlaboti - Vivado Zynq IP bloki: 8 pievieno (LUT) 3 atņemumus (LUT) 5 Reizinātāji (bloka atmiņa (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Mērķis: kontrolēt aparatūru, ieskaitot MUX, PWM izeju un motor_ctl_wrapper sclr. Jebkura ierobežota stāvokļa mašīna (FSM) tiek izmantota vienam: citas aparatūras kontrolei. Jebkura liela novirze no šī mērķa var izraisīt iespējamo MFV cita veida moduļa (skaitītāja, saskaitītāja utt.) Veidā. Pwm_fsm ir 3 stāvokļi: INIT, CLR un FLYINIT: ļauj lietotājam programmēt ESC kā vēlamo. Nosūta atlases signālu uz mux_pwm, kas visiem motoriem izvada tiešu PWM. Atgriežas pie sevis, līdz GO == '1'. CLR: notīriet datus motor_ctl_wrapper un pwm out modulī. FLY: Loop uz visiem laikiem, lai stabilizētu quadcopter (ja vien mēs neesam atiestatīti). Nosūta kompensēto PWM caur mux_pwm. Ieeja: GO, RESET, clkIzeja: RST citiem moduļu atiestatījumiem, FullFlight, lai signalizētu FLY režīmu, Periods, lai palaistu atmux_pwm.sv:

Ieteicams: