Mundarija:

Zybo Zynq-7000 taxtasi yordamida kvadrokopter: 5 qadam
Zybo Zynq-7000 taxtasi yordamida kvadrokopter: 5 qadam

Video: Zybo Zynq-7000 taxtasi yordamida kvadrokopter: 5 qadam

Video: Zybo Zynq-7000 taxtasi yordamida kvadrokopter: 5 qadam
Video: Zybo Zynq-7000 DMA Audio Project Demo 2024, Noyabr
Anonim
Zybo Zynq-7000 kartasidan foydalangan holda kvadrokopter
Zybo Zynq-7000 kartasidan foydalangan holda kvadrokopter

Ishni boshlashdan oldin, loyiha uchun sizga kerak bo'lgan ba'zi narsalar: qismlar ro'yxati 1x Digilent Zybo Zynq-7000 taxtasi 1x Quadcopter Frame Zybo-ni o'rnatishi mumkin (lasercutting uchun Adobe Illustrator fayli biriktirilgan) 4x Turnigy D3530/14 1100KV Brushless Motors 4x Turnigy ESC Basic -18A tezlikni boshqaruvchi 4x pervanel (ular sizning kvadrokopteringizni ko'tarish uchun etarlicha katta bo'lishi kerak) 2x nRF24L01+ qabul qiluvchi 1x IMU BNO055 Dasturiy ta'minot talablari Ular faqat ushbu loyihada ishlatilganlar. Qolgan qismlar va dasturiy ta'minot talablari uchun ham xuddi shunday. Umid qilamanki, bu ko'rsatmalarni o'qiyotganda, bu aytilmagan tushuncha.

1 -qadam: PWM modulini ishga tushiring

Kirish tugmachalari yordamida HI gazni va LO gazni registratsiya qilish uchun oddiy SystemVerilog (yoki boshqa HDL dasturi) ni dasturlash. PWMni bitta ESC va Turnigy cho'tkasi bo'lmagan dvigatel bilan ulang. ESCni qanday sozlashni bilish uchun quyidagi fayllarni tekshiring. Oxirgi kod PWM moduli uchun 5 -qadamda biriktirilgan. Bu qadamda PWM boshlagichi biriktirilgan.

2 -qadam: Blok dizaynini o'rnating

Blok dizaynini yaratish Yangi yaratilgan blokni ikki marta bosing XPS parametrlarini bu yerdan yuklab oling: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Sozlamalarni o'zgartirish PS-PL konfiguratsiyasi M AXI GP0 interfeysi Periferik I/ O Pin Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO konfiguratsiya taymeri 0 WatchdogClock konfiguratsiyasi FCLK_CLK0 va chastotani 100 MGts ga qo'ying

3 -qadam: O'IHni sozlang

O'IHni sozlang
O'IHni sozlang

BNO055 qabul qiluvchi I2C aloqasidan foydalanadi. (Yangi boshlanuvchilar uchun tavsiya etilgan o'qish: https://learn.sparkfun.com/tutorials/i2c) IMUni ishga tushirish uchun haydovchi bu erda joylashgan: https://github.com/BoschSensortec/BNO055_driver Kvadrokopter magnitometrdan foydalanishni talab qilmaydi. BNO055. Shuning uchun IMU rejimi zarur bo'lgan ish rejimi. Bu xxxx1000 ikkilik raqamini OPR_MODE registriga yozish orqali o'zgartiriladi, bu erda "x" - "g'amxo'rlik qilmaydi". Bu bitlarni 0 ga o'rnating.

4 -qadam: Simsiz uzatgichni birlashtirish

Simsiz qabul qilgichni birlashtirish
Simsiz qabul qilgichni birlashtirish
Simsiz qabul qilgichni birlashtirish
Simsiz qabul qilgichni birlashtirish

Simsiz uzatuvchi SPI aloqasidan foydalanadi. NRF24L01+ uchun spetsifikatsiya varaqasi nrf24l01+ uchun yaxshi qo'llanma, lekin arduino bilan biriktirilgan:

5 -qadam: Zybo FPGA dasturlash

Ushbu modullar kvadrokopterning PWM boshqaruvida ishlatiladigan oxirgi modullardir. motor_ctl_wrapper.svMaqsad: o'rash materiali Eyler burchaklari va gaz kelebeği foizini oladi. U kvadrokopterni barqarorlashtirishga imkon beradigan kompensatsiyalangan PWM chiqaradi. Bu blok mavjud, chunki kvadrokopterlar havodagi buzilishlarga moyil va qandaydir stabilizatsiyani talab qiladi. Biz Euler burchaklaridan foydalanmoqdamiz, chunki biz Gimbal Lockga olib kelishi mumkin bo'lgan burilishlar yoki og'ir burchaklarni rejalashtirmaymiz. Kirish: 25 bitli ma'lumotlar CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] Gaz kelebeği foizi}, Soat (clk), Sinxron CLR (sclr) Chiqish: Dvigatel 1 PWM, Dvigatel 2 PWM, Dvigatel 3 PWM, Dvigatel 4 PWM, Gaz kelebeği PWM Gaz kelebeği PWM foiz ESCni ishga tushirish uchun ishlatiladi, bu PWMning 1-4 PWM dvigatelidan emas, balki 30% dan 70% gacha bo'lgan PWM oralig'ini talab qiladi. Kengaytirilgan - Vivado Zynq IP -bloklari: 8 ta qo'shish (LUT) 3 ta ajratish (LUT) 5 Ko'paytiruvchilar (Xotirani blokirovka qilish (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Maqsad: M_X, PWM chiqishi va motor_ctl_wrapper uchun sclrni o'z ichiga olgan uskunani boshqarish. Har qanday cheklangan davlat mashinasi (FSM) bitta narsada ishlatiladi: boshqa uskunalarni boshqarish. Bu maqsaddan har qanday katta og'ish, taxmin qilingan FSMni boshqa turdagi modul (hisoblagich, yig'uvchi va hk.) Shaklini olishiga olib kelishi mumkin. xohlagan. Mux_pwm ga barcha dvigatellarga to'g'ri PWM chiqaradigan tanlangan signal yuboradi. GO == '1'. CLR: motor_ctl_wrapper va pwm out modulidagi ma'lumotlarni o'chirib tashlang. Kompensatsiyalangan PWMni mux_pwm orqali yuboradi. Kirish: GO, RESET, clkOutput: Boshqa modullarni tiklash uchun RST, FLY rejimini signalizatsiya qilish uchun FullFlight, atmux_pwm.sv -ni ishga tushirish davri Maqsad: Kirish: Chiqish: PWM barcha 4 motor uchun:

Tavsiya: