Агуулгын хүснэгт:

Zybo Zynq-7000 хавтанг ашигладаг квадрокоптер: 5 алхам
Zybo Zynq-7000 хавтанг ашигладаг квадрокоптер: 5 алхам

Видео: Zybo Zynq-7000 хавтанг ашигладаг квадрокоптер: 5 алхам

Видео: Zybo Zynq-7000 хавтанг ашигладаг квадрокоптер: 5 алхам
Видео: Осваиваем Zynq-7000S с бесплатной отладкой 2024, Арваннэгдүгээр
Anonim
Zybo Zynq-7000 хавтанг ашигладаг квадрокоптер
Zybo Zynq-7000 хавтанг ашигладаг квадрокоптер

Биднийг эхлүүлэхийн өмнө төсөлд хэрэгтэй зарим зүйлийг энд оруулав: Эд ангиудын жагсаалт1x Digilent Zybo Zynq-7000 самбар 1x Quadcopter Frame нь Zybo-ийг холбох боломжтой (лазер огтлох зориулалттай Adobe Illustrator файл) 4x Turnigy D3530/14 1100KV Brushless Motors 4x Turnigy ESC Basic -18А хурд хянагч 4х сэнс (эдгээр нь таны квадрокоптерийг өргөж чадахуйц том хэмжээтэй байх ёстой) 2x nRF24L01+ дамжуулагч 1х IMU BNO055 Програм хангамжийн шаардлага Xilinx Vivado 2016.2. ТАЙЛБАР: Дээрх моторууд нь зөвхөн ашиглах боломжтой хөдөлгүүр биш юм. Эдгээр нь зөвхөн энэ төсөлд ашиглагддаг хүмүүс юм. Үлдсэн хэсгүүд болон програм хангамжийн шаардлагад мөн адил хамаарна. Энэхүү зааварчилгааг уншихад хэлээгүй ойлголт гэж найдаж байна.

Алхам 1: ХОУХШ -ийн модулийг ажиллуулах

Оролтын унтраалга ашиглан HI тохируулагч ба LO тохируулагчийг бүртгэхийн тулд энгийн SystemVerilog (эсвэл бусад HDL програм) програмчлах. ХБХ -ийг ганц ESC болон Turnigy Brushless мотороор холбоно уу. ESC -ийг хэрхэн тохируулах талаар дараах файлуудыг шалгана уу. Эцсийн кодыг PWM модулийн 5 -р алхамд хавсаргасан болно. ХОУХШ -ийн асаагуурыг энэ алхамд хавсаргасан болно ESC мэдээллийн хуудас: Turnigy ESC мэдээллийн хуудас PDF (Анхаарах зүйл бол HI ба LO тохируулагчийг ашиглан өөр өөр горимыг сонгох боломжтой)

Алхам 2: Блок дизайныг тохируулна уу

Блок дизайн үүсгэх Шинээр үүсгэсэн блок дээр дарж эндээс татаж авсан XPS тохиргоог хоёр дарна уу: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Тохиргоог өөрчлөх PS-PL тохиргоо M AXI GP0 интерфейс Захын 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 ба давтамжийг 100 MHz болгож тохируулна уу I2C ба SPI -ийг гадаад байдлаар холбоно

Алхам 3: IMU -ийг тохируулна уу

IMU -ийг тохируулах
IMU -ийг тохируулах

BNO055 дамжуулагч нь I2C холболтыг ашигладаг. (Эхлэгчдэд санал болгож буй уншлага: https://learn.sparkfun.com/tutorials/i2c) IMU -г ажиллуулах драйвер энд байна: https://github.com/BoschSensortec/BNO055_driver Квадкоптер нь соронзон хэмжигчийг ашиглах шаардлагагүй. BNO055. Ийм учраас шаардлагатай горим нь IMU горим юм. Үүнийг xxxx1000 гэсэн хоёртын дугаарыг OPR_MODE регистрт бичих замаар өөрчилдөг бөгөөд энд 'x' нь 'хамаагүй' гэсэн үг юм. Эдгээр битүүдийг 0 болгож тохируулна уу.

Алхам 4: Утасгүй дамжуулагчийг нэгтгэх

Утасгүй дамжуулагчийг нэгтгэх
Утасгүй дамжуулагчийг нэгтгэх
Утасгүй дамжуулагчийг нэгтгэх
Утасгүй дамжуулагчийг нэгтгэх

Утасгүй дамжуулагч нь SPI холболтыг ашигладаг. NRF24L01+ nrf24l01+, гэхдээ arduino-той сайн зааварчилгааны хүснэгтийг хавсаргав:

Алхам 5: Zybo FPGA програмчлах

Эдгээр модулиуд нь quadcopter -ийн PWM -ийг хянахад ашигладаг эцсийн модулиуд юм. motor_ctl_wrapper.svЗорилго: Боолт нь Эйлерийн өнцөг ба тохируулагчийн хувийг авдаг. Энэ нь квадрокоптерийг тогтворжуулах боломжийг олгодог нөхөн олговортой ХБХ гаргадаг. Энэ блок байдаг, учир нь квадкоптер нь агаарт үймээн самуунд өртөмтгий бөгөөд ямар нэгэн тогтворжуулалт шаарддаг. Gimbal Lock-ийг үүсгэж болзошгүй эргэлт эсвэл хүнд өнцгийг төлөвлөөгүй тул бид Эйлерийн өнцгийг ашиглаж байна. Оролт: 25 битийн өгөгдлийн автобус CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] Тохируулагчийн хувь}, Цаг (clk), Синхрон CLR (sclr) гаралт: Мотор 1 PWM, Мотор 2 PWM, Мотор 3 PWM, Мотор 4 PWM, Throttle хувь PWM Хяналтын хувь PWM нь ESC -ийг эхлүүлэхэд ашигладаг бөгөөд энэ нь Мотор 1-4 PWM -ийн утгыг биш харин 30% - 70% -ийн ХОУХ -ийн цэвэр хүрээг шаарддаг. Дэвшилтэт - Vivado Zynq IP блокууд: 8 Нэмэлт (LUTs) 3 Хасах (LUTs) 5 Үржүүлэгчид (Блок санах ой (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Зорилго: MUX, PWM гаралт, sc_rl зэрэг motor_ctl_wrapper -ийн тоног төхөөрөмжийг хянах. Аливаа хязгаарлагдмал төлөв байдлын машиныг (FSM) нэг зүйлд ашигладаг: бусад техник хангамжийг хянах. Энэ зорилгоос ямар нэгэн том хазайлт нь FSM -ийг өөр төрлийн модуль (тоолуур, нийлүүлэгч гэх мэт) хэлбэрээр үүсгэж болно. хүссэн. Mux_pwm руу бүх хөдөлгүүрт шууд ХОУХ гаргадаг сонгосон дохио илгээдэг. GO == '1'. CLR: motor_ctl_wrapper болон pwm out модулийн өгөгдлийг цэвэрлэнэ. Оруулсан: GO, RESET, clkOutput: Бусад модулийг дахин тохируулах RST, FLY горимд дохио өгөх FullFlight, atmux_pwm.sv -ийг ажиллуулах хугацаа:

Зөвлөмж болгож буй: