FPGA實現(xiàn)SG90舵機控制及運動目標跟蹤
一、SG90簡單控制



舵機內(nèi)部有一個基準電路,產(chǎn)生周期為20ms、寬度為1.5ms的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經(jīng)過電路板IC方向判斷,再驅動無核心馬達開始轉動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經(jīng)到位。
舵機轉動的角度是通過調(diào)節(jié)PWM信號的占空比來實現(xiàn)的。標準的PWM信號的周期固定為20ms,理論上脈寬分布應該在1ms到2ms之間,實際上在0.5ms到2.5ms之間,脈寬與轉角0°—180°相對應。不同廠家不同型號的舵機也會有所差異。
FPGA按鍵控制舵機轉動代碼(因為板子PL端只有兩個按鍵,所以只設置了左右兩個方向):
二、運動目標跟蹤
幀差法運動目標檢測代碼參考 B站UP主大磊FPGA?(板子:正點原子領航者7020)
block design在運動目標檢測基礎上加了自動拍照存入SD卡、檢測到運動目標自動提示、攝像頭搭舵機上實現(xiàn)上下左右轉動自動跟蹤

舵機自動跟隨運動目標轉動模塊代碼:
該模塊輸入為目標框的中心點坐標及目標有效信號(檢測到運動目標),先比較目標坐標與中心點坐標大小,再相減是否超過屏幕中心為中心的100正方形范圍。若超過,則根據(jù)方向加減0.005ms脈沖寬度去使目標框中心坐標趨近屏幕中心。最后根據(jù)占空比和計數(shù)值之間的大小關系來輸出pwm,實現(xiàn)攝像頭跟蹤運動目標轉動。