
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04

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

Шаг 2. Настройте Планировщик контактов

Нажмите «Начать анализ назначения ввода-вывода», чтобы проверить, правильно ли настроен планировщик выводов. В противном случае вам придется импортировать все имена портов самостоятельно.
Шаг 3. Код Verilog
Создаем таймер «servo_count». Когда «servo_A» имеет значение HIGH, ШИМ составляет 1,5 мс, и, следовательно, сервопривод находится под углом 120 градусов. Напротив, когда «servo_A» имеет значение LOW, PWM составляет 0,15 мс, и поэтому сервопривод остается на 0 градусов.
назначить XIO_2 [3] = servo_pulse; // для V '
reg [31: 0] servo_count;
начальное начало
servo_count <= 32'b0;
servo_A <= 1'b0;
конец
всегда @ (posedge CLK_66)
начинать
servo_count <= servo_count + 1'b1;
if (servo_count> 400000000) // Тактовый цикл 66 МГц, 1 / 66M * 400000000 ~ 5 секунд
начинать
servo_A <=! servo_A;
servo_count <= 32'b0;
конец
конец
рег [31: 0] ex_auto;
начальное начало
ex_auto <= 32'b0;
servo_auto <= 1'b0;
конец
всегда @ (posedge CLK_66)
начинать
если (servo_A == 1'b1)
начинать
ex_auto <= ex_auto + 1'b1;
if (ex_auto> 100000) // Тактовый цикл 66 МГц, этот ШИМ составляет ~ 1,5 мс, сервопривод вращается на 120 градусов
начинать
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
конец
конец
если (servo_A == 1'b0)
начинать
ex_auto <= ex_auto + 1'b1;
if (ex_auto> 10000) // Тактовый цикл 66 МГц, этот ШИМ составляет ~ 0,15 мс, сервопривод вращается на 0 градусов
начинать
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
конец
конец
конец
Шаг 4. Загрузите код Verilog


Щелкните «Начать компиляцию». Если сообщение об ошибке не отображается, перейдите к «Программисту», чтобы завершить настройку оборудования. Не забудьте обновить файл pof в «Изменить файл», если необходимо. Нажмите «Пуск», чтобы загрузить код.
Ведь вы должны видеть, что серводвигатель периодически вращается.
Рекомендуемые:
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 - кнопка и светодиод: 5 шагов

FPGA Cyclone IV DueProLogic - кнопка и светодиод: в этом руководстве мы собираемся использовать FPGA для управления внешней светодиодной схемой. Мы собираемся реализовать следующие задачи: (A) Используйте кнопки на FPGA Cyclone IV DuePrologic для управления светодиодом. (B) Светодиод мигает & периодически выключаетсяДемонстрационная видео-лаборатория
Беговая дорожка DIY VR - Basys3 FPGA-Digilent Contest: 3 шага

DIY VR Treadmill - Basys3 FPGA-Digilent Contest: Вы хотите создать беговую дорожку VR, на которой вы сможете запускать свои настольные приложения и игры? Тогда вы попали в нужное место! В обычных играх вы используете мышь и клавиатуру для взаимодействия с окружающей средой. Следовательно, нам нужно отправить
Плата разработки Mojo FPGA Shield: 3 шага

Плата разработки Mojo FPGA Shield: Подключите плату разработки Mojo к внешним входам с помощью этого экрана. Что такое плата разработки Mojo? Плата разработки Mojo - это плата разработки, основанная на Xilinx spartan 3 FPGA. Плата изготовлена компанией Alchitry. ПЛИС очень полезны
Cyclone LED Arcade Game: 4 шага

Cyclone LED Arcade Game: Целью этого проекта было создание простой игры с использованием Arduino, которая была бы интерактивной и занимательной для детей. Я помню, что аркадная игра Cyclone была одной из моих любимых аркадных игр, когда я был моложе, поэтому я решил повторить ее. Т