舵機
一個常見的舵機有三個連接線。
黑色:電源地
紅色:電源(5伏直流)
白色:控制引腳(PWM)
PWM控制舵機位置。伺服系統(tǒng)每20毫秒要有一個脈沖,以便獲得正確的角度信息。脈沖寬度決定了舵機的角度運動范圍。也就是說,我們可以通過發(fā)送1毫秒脈沖設置舵機到一端位置,發(fā)送2毫秒脈沖將其設置到另一個位置。
控制波形
我們設計一個四個輸入,一個輸出的模塊,如下圖所示
控制模塊
reset:復位信號
button_l:用于PWM占空比的增加
button_r:用于PWM占空比的減小
Pwm:輸出信號驅(qū)動舵機。
首先,應該生成具有20毫秒周期的PWM信號,由于使用50MHz的時鐘產(chǎn)生PWM,為了產(chǎn)生20ms信號,我們將定義一個名為counter的變量和一個名為upper的常數(shù),它表示計數(shù)上邊界。
Upper boundary : 20ms/20ns = 1000 000
constant upper :integer:=1000000;
………………………..
process(clk,reset)
begin
if reset = '1' then
pwm_reg
counter
duty_cycle
elsif clk='1' and clk'event then
pwm_reg
counter
duty_cycle
end if;
end process;
counter_next
控制信號占空比的值應是1毫秒至2毫秒之間。我們將定義兩個常數(shù)命名dcycle_max和dcycle_min說明上下邊界。
dcycle_max:顯示脈沖寬度的最大值。
(2ms/clock period=2 ms/ 20 ns=100000)
dcycle_min:顯示脈沖寬度的最小值。
(1ms/clock period=1 ms/ 20 ns=50000)
脈寬(占空比)在每個PWM周期中改變,因此我們定義了一個稱為tick的變量。當tick為“1”時,占空比將發(fā)生變化。
signal tick : std_logic;
tick
定義了一個稱為duty_in的常數(shù),用于改變占空比。
VHDL代碼
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity servo_pwm is
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
button_l : in STD_LOGIC;
button_r : in STD_LOGIC;
pwm : out STD_LOGIC);
end servo_pwm;
architecture Behavioral of servo_pwm is
constant period:integer:=1000000;
constant dcycle_max:integer:=100000;
constant dcycle_min:integer:=50000;
constant duty_in:integer:=200;
signal pwm_reg,pwm_next:std_logic;
signal duty_cycle,duty_cycle_next:integer:=0;
signal counter,counter_next:integer:=0;
signal tick:std_logic;
begin
process(clk,reset)
begin
if reset = '1' then
pwm_reg
counter
duty_cycle
elsif clk='1' and clk'event then
pwm_reg
counter
duty_cycle
end if;
end process;
counter_next
tick
process(button_l,button_r,tick,duty_cycle)
begin
duty_cycle_next
if tick='1' then
if button_l ='1' and duty_cycle >dcycle_min then
duty_cycle_next
elsif button_r ='1' and duty_cycle
duty_cycle_next
end if;
end if;
end process;
pwm
pwm_next
end Behavioral;
-
FPGA
+關注
關注
1645文章
22042瀏覽量
618245 -
控制模塊
+關注
關注
2文章
138瀏覽量
19295 -
舵機
+關注
關注
17文章
298瀏覽量
41937
原文標題:FPGA控制舵機程序
文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
解鎖未來汽車電子技術:軟件定義車輛與區(qū)域架構深度解析
舵機精準定位背后的秘密

舵機與伺服電機有的區(qū)別

舵機的類型及其特點
舵機與伺服電機的區(qū)別
舵機精度大揭秘:微米級控制,引領精準定位新時代
舵機技術新突破,無線控制更自由!
安信可Ai-WB2+舵機控制(SG90)

評論