Мазмұны:

Zybo Zynq-7000 тақтасын қолданатын квадрокоптер: 5 қадам
Zybo Zynq-7000 тақтасын қолданатын квадрокоптер: 5 қадам

Бейне: Zybo Zynq-7000 тақтасын қолданатын квадрокоптер: 5 қадам

Бейне: Zybo Zynq-7000 тақтасын қолданатын квадрокоптер: 5 қадам
Бейне: Ubuntu 12.04 w/ Ubiquitous QuickBoot on Xilinx Zynq-7000 All Programmable SoC 2024, Шілде
Anonim
Zybo Zynq-7000 тақтасын қолданатын квадрокоптер
Zybo Zynq-7000 тақтасын қолданатын квадрокоптер

Жұмысқа кіріспес бұрын, жобаға қажет нәрселер: Бөлшектер тізімі 1x Digilent Zybo Zynq-7000 тақтасы 1x Quadcopter Frame, Zybo орнатуға қабілетті (Adobe Illustrator файлын лазермен кесуге арналған) 4x Turnigy D3530/14 1100KV щеткасыз қозғалтқыштар 4x Turnigy ESC Basic -18A жылдамдық реттегіші 4x пропеллер (олар сіздің квадрокоптерді көтеру үшін жеткілікті үлкен болуы керек) 2x nRF24L01+ қабылдағыш 1x IMU BNO055 Бағдарламалық қамтамасыз ету талаптары Xilinx Vivado 2016.2 ЕСКЕРТПЕ: Жоғарыдағы қозғалтқыштарды қолдануға болатын жалғыз қозғалтқыштар емес. Олар бұл жобада қолданылатындар. Қалған бөліктер мен бағдарламалық қамтамасыз ету талаптарына да қатысты. Нұсқаулықты оқығанда бұл түсініксіз болады деп үміттенемін.

1 -қадам: PWM модулін іске қосыңыз

HI дроссельін және LO дроссельін кіріс қосқыштары арқылы тіркеу үшін қарапайым SystemVerilog бағдарламасын (немесе басқа HDL бағдарламасын) бағдарламалаңыз. PWM -ді бір ESC және Turnigy щеткасыз қозғалтқышпен жалғаңыз. ESC калибрлеуді білу үшін келесі файлдарды тексеріңіз. Соңғы код PWM модулінің 5 -қадамында бекітілген. Бұл қадамда PWM стартері бекітілген

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 конфигурация таймері 0 WatchdogClock конфигурациясы FCLK_CLK0 және жиілікті 100 МГц -ке орнатыңыз I2C пен SPI сыртқы байланысын жасаңыз

3 -қадам: ХБҚ калибрлеу

ӨИҚ калибрлеу
ӨИҚ калибрлеу

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 бағдарламалау

Бұл модульдер квадрокоптердің PWM басқару үшін қолданылатын соңғы модульдер болып табылады. motor_ctl_wrapper.svМақсаты: орауыш Эйлер бұрыштарын және дроссель пайызын алады. Ол квадрокоптерге тұрақтандыруға мүмкіндік беретін өтемді PWM шығарады. Бұл блок бар, өйткені квадрокоптер ауаның бұзылуына бейім және тұрақтандырудың қандай да бір түрін қажет етеді. Біз Эйлер бұрыштарын қолданамыз, өйткені біз Gimbal Lock тудыруы мүмкін бұрылыстарды немесе ауыр бұрыштарды жоспарламаймыз. Енгізу: 25 биттік мәліметтер шинасы CTL_IN = {[24] GO, [23:16] Эйлер X, [15: 8] Euler Y, [7: 0] Дроссельдік пайыз}, Сағат (clk), Синхронды CLR (sclr) Шығу: 1 -моторлы қозғалтқыш, 2 -ші моторлы қозғалтқыш, 3 -ші моторлы қозғалтқыш, 4 -ші моторлы, дроссельді пайыздық PWM - дроссельдік пайыздық PWM ESC инициализациялау үшін пайдаланылады, ол PWM моторының 1-4 PWM мәндерінің емес, 30% - 70% таза диапазонын қажет етеді. Қосымша - Vivado Zynq IP блоктары: 8 қосады (LUT) 3 шегеру (LUT) 5 Мультипликаторлар (Block Memory (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Мақсаты: MUX, PWM шығысы мен motor_ctl_wrapper үшін sclr қосылған жабдықты басқару. Кез келген соңғы күй машинасы (FSM) бір нәрсе үшін қолданылады: басқа жабдықты басқару. Бұл мақсаттан кез келген үлкен ауытқу болжамды FSM модульдің басқа түріне (есептегіш, қосқыш және т. Б.) Айналуына әкелуі мүмкін. қалаған. Mux_pwm -ге барлық қозғалтқыштарға тікелей PWM шығаратын таңдау сигналын жібереді. GO == '1'. CLR: motor_ctl_wrapper мен pwm out модуліндегі деректерді өшіру. MUX_PWM арқылы өтемді PWM жібереді. Кіріс: GO, RESET, clkOutput: басқа модульді қалпына келтіру үшін RST, FLY режиміне сигнал беру үшін FullFlight, atmux_pwm.sv қосылатын кезең Мақсаты: Кіріс: Шығу: PWM барлық 4 моторға арналған.:

Ұсынылған: