Съдържание:
- Стъпка 1: Включете PWM модула
- Стъпка 2: Настройте дизайна на блока
- Стъпка 3: Калибрирайте IMU
- Стъпка 4: Интегрирайте безжичния трансивър
- Стъпка 5: Програмирайте Zybo FPGA
Видео: Квадрокоптер, използващ платка Zybo Zynq-7000: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Преди да започнем, ето някои неща, които искате за проекта: Списък на частите1x Digilent Zybo Zynq-7000 борда 1x Quadcopter рамка, която може да монтира 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 модула
Програмирайте прост SystemVerilog (или друга HDL програма), за да регистрирате HI дросела и LO дросела с помощта на входни превключватели. Закачете PWM с един ESC и Turnigy безчетков двигател. Проверете следните файлове, за да разберете как да калибрирате ESC. Крайният код е приложен в стъпка 5 за PWM модула. В тази стъпка е прикрепен ШИМ стартер ESS Datasheet: Turnigy ESC Datasheet 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 Конфигурационен таймер 0 WatchdogClock Конфигурация FCLK_CLK0 и задайте честота на 100 MHz Направете I2C и SPI външно Свързване FCLK_CLK0 на M_AXI_GP0_ACLK Изпълнете автоматизирайте и създайте
Стъпка 3: Калибрирайте 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
Преглед Тези модули са последните модули, използвани за управление на 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, Процент дроселна клапа PWM Процентът на дроселната клапа PWM е използва се за инициализиране на ESC, който ще иска чист 30% - 70% обхват на PWM, а не този от стойностите на Motor 1-4 PWM. Разширени - Vivado Zynq IP блокове: 8 добавя (LUTs) 3 изважда (LUT) 5 Множители (Блокова памет (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Предназначение: Контролира хардуера, включително MUX, PWM изход и sclr за motor_ctl_wrapper. Всяка машина с крайни състояния (FSM) се използва за едно: управление на друг хардуер. Всяко голямо отклонение от тази цел може да накара предполагаемия FSM да приеме формата на различен тип модул (брояч, суматор и т.н.). Pwm_fsm има 3 състояния: INIT, CLR и FLYINIT: Позволете на потребителя да програмира ESC като желани. Изпраща сигнал за избор към mux_pwm, който извежда директно ШИМ към всички двигатели. Връща се към себе си до GO == '1'. CLR: Изчистване на данните в motor_ctl_wrapper и модула pwm out. FLY: Цикъл завинаги за стабилизиране на квадрокоптера (освен ако не сме нулирани). Изпраща компенсираната PWM през mux_pwm.:
Препоръчано:
Блок за управление на квадрокоптер ArDrone 2.0 на модул MPU6050 и ESP8266: 7 стъпки
Блок за управление на Quadcopter ArDrone 2.0 на модул MPU6050 и ESP8266: Размерът, цената и наличността на Wi-Fi ви позволяват да направите бюджетен блок за управление на квадрокоптера ArDrone 2.0 на модула ESP8266 (цени на AliExpress, Gearbest). За контрол ще използваме модула Gy-521 на чипа MPU6050 (жироскоп, в съответствие с
Arduino Nano часовник с адаптивна яркост, използващ прототипна печатна платка от NextPCB.com: 11 стъпки
Arduino Nano часовник с адаптивна яркост, използващ прототипна печатна платка от NextPCB.com: Всеки искаше часовник, който показва времето и датата заедно Така че, в този проект ще ви покажа как можете да изградите нано часовник arduino с адаптивна яркост, използвайки RTC и дизайн PCB от NextPCB
Модулна неопикселова пробивна платка с отворен код, подходяща за създаване на платка: 4 стъпки (със снимки)
Модулна неопикселова пробивна платка с отворен код, подходяща за създаване на платка: Тази инструкция е за малка (8 мм х 10 мм) лесна за разбиване дъска за неопикселови светодиоди, която може да се подрежда и споява една върху друга, но също така осигурява много по-структурна твърдост от тънката LED лента в много по -малка форма фактически
WIDI - Безжичен HDMI, използващ Zybo (Zynq Board за разработка): 9 стъпки (със снимки)
WIDI - Безжичен HDMI с помощта на Zybo (Zynq Development Board): Искали ли сте някога да можете да свържете телевизора си към компютър или лаптоп като външен монитор, но не сте искали да имате всички тези досадни кабели по пътя? Ако е така, този урок е само за вас! Въпреки че има някои продукти, които постигат тази цел
Издушете вашата платка (как да добавите LED индикатор за захранване към прозрачна платка на Solarbotics): 7 стъпки
Издушете вашата платка (как да добавите LED индикатор за захранване към прозрачна платка на Solarbotics): Тези прозрачни дъски са много подобни на всяка друга електроника, но са ясни! И така, какво може да се направи с ясна таблица? Мисля, че очевидният отговор е добавяне на светодиоди за захранване