
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57

В този урок ще напишем Verilog код за управление на серво мотора. Серво SG-90 се произвежда от Waveshare. Когато купувате серво мотора, може да получите лист с данни, който изброява работното напрежение, максималния въртящ момент и предложената модулация на ширината на импулса (PWM) … и т.н. Въпреки това, FPGA DuePrologic осигурява входно напрежение от 3.3V, където работното напрежение на серво SG -90 е 5V - 7V. При липса на електрическо захранване ще изброя моята калибрирана ШИМ, за да завъртя успешно серво мотора.
Нашата задача: Серво моторът се върти напред -назад с период от 5 секунди
Пълно меню:
Стъпка 1: Изградете електронна схема

Стъпка 2: Настройте Pin Planner

Щракнете върху „Стартиране на анализ на задачите на I/O“, за да проверите дали щифтовият планировчик е настроен правилно. В противен случай трябва да импортирате всички имена на портове сами.
Стъпка 3: Verilog код
Създаваме таймер "servo_count". Когато "servo_A" е HIGH, PWM е 1,5ms и следователно сервото е разположено на 120 °. За разлика от това, когато "servo_A" е НИСКО, PWM е 0,15ms и следователно сервото остава на 0 градуса.
задайте XIO_2 [3] = servo_pulse; // за V '
reg [31: 0] servo_count;
начален старт
servo_count <= 32'b0;
servo_A <= 1'b0;
край
винаги @(поставен CLK_66)
започнете
servo_count <= servo_count + 1'b1;
if (servo_count> 400000000) // Часовник 66MHz, 1/66M * 400000000 ~ 5 секунди
започнете
servo_A <=! servo_A;
servo_count <= 32'b0;
край
край
reg [31: 0] ex_auto;
начален старт
ex_auto <= 32'b0;
servo_auto <= 1'b0;
край
винаги @(поставен CLK_66)
започнете
ако (servo_A == 1'b1)
започнете
ex_auto <= ex_auto + 1'b1;
if (ex_auto> 100000) // Тактовият цикъл 66MHz, тази ШИМ е ~ 1.5ms, серво се завърта до 120 градуса
започнете
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
край
край
ако (servo_A == 1'b0)
започнете
ex_auto <= ex_auto + 1'b1;
if (ex_auto> 10000) // Тактовият цикъл 66MHz, тази ШИМ е ~ 0.15ms, серво се завърта на 0 градуса
започнете
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
край
край
край
Стъпка 4: Качете Verilog код


Кликнете върху „Стартиране на компилацията“. Ако не се показва съобщение за грешка, отидете на „Програмист“, за да завършите хардуерната настройка. Не забравяйте да актуализирате pof файла в „Промяна на файла“, ако е необходимо. Щракнете върху „Старт“, за да качите кода.
В края на краищата трябва да видите, че серво моторът се върти периодично.
Препоръчано:
Направи си сам Как да контролирате ъгъла на серво мотора с помощта на компонент на Visuino Sequence: 10 стъпки

Направи си сам Как да контролираме ъгъла на серво мотора с помощта на компонент на последователността на Visuino: В този урок ще използваме серво мотор и Arduino UNO и Visuino за управление на ъгъла на серво мотора, използвайки компонент на последователността. Компонентът на последователността е идеален за ситуации, в които искаме да задействаме няколко събития в последователност в нашия случай серво мотор degr
FPGA Cyclone IV DueProLogic контролира Raspberry Pi камера: 5 стъпки

FPGA Cyclone IV DueProLogic контролира Raspberry Pi камерата: Въпреки че FPGA DueProLogic е официално проектиран за Arduino, ние ще направим FPGA и Raspberry Pi 4B комуникативни. Три задачи се изпълняват в този урок: (A) Едновременно натиснете двата бутона FPGA, за да обърнете ъгъла на
FPGA Cyclone IV DueProLogic - Бутон и LED: 5 стъпки

FPGA Cyclone IV DueProLogic - Бутон и LED: В този урок ще използваме FPGA за управление на външна LED верига. Ще изпълним следните задачи (A) Използвайте бутоните на FPGA Cyclone IV DuePrologic за управление на LED. (B) LED светкавицата свети & периодично се изключва Видео демо лаборатория
Управление на серво мотора със STM32F4 ARM MCU: 4 стъпки

Управление на серво мотора със STM32F4 ARM MCU: Здравейте отново приятели :) Така че в този проект ще управляваме серво мотор със STM32F4 ARM MCU. В моя случай ще използвам борда за откриване, но ако схванете същността на проблема, тогава можете да го приложите за всеки MCU. Така. Да започваме:)
Управление на 3 серво мотора с 3 потенциометра и Arduino: 11 стъпки (със снимки)

Управление на 3 серво мотора с 3 потенциометра и Arduino: Здравейте. Това е първият ми инструктаж, така че се надявам да бъдете търпеливи с мен, ако направя някакви грешки при настройването му. Той е написан за начинаещи, така че по -напредналите сред вас могат да пропуснат много от това и просто да го свържат. Целта, която си поставих