FPGA“機甲大師”
作者:2016級王廣晗 精儀系
指導老師:馬騁 精儀系
關鍵詞: NIOSⅡ 軟核處理器 伺服控制
摘要
本作品是一輛搭載二軸云臺、攝像頭、水彈槍的三輪全向移動小車。小車可以通過手機藍牙遙控全向移動和轉動,云臺開啟追蹤模式時,無論小車如何運動,依靠OpenMV攝像頭伺服控制始終保持水彈槍指向某個顏色的目標。本作品作為“系統(tǒng)芯片設計實踐”的課程設計,獲得A+。
方案設計
本作品最大特點是主控是FPGA,而非常用的單片機。
圖1 實物照片和機械結構示意圖
3個編碼器減速電機互成120°角,配合全向輪,讓小車具有平面內全向移動能力。水彈槍安裝在二軸舵機云臺上(AX-12A串行總線舵機),可以調節(jié)方向和俯仰角度,用繼電器控制開火。OpenMV攝像頭與水彈槍近似同軸,可以尋找色塊等目標,將其坐標發(fā)給主控。
主控芯片是Altera Cyclone EP4CE10 FPGA,開發(fā)板是黑金AX4010。FPGA工程中調用了一個NIOS Ⅱ軟核,并在軟核總線上掛載了多種官方和自定義外設,如NIOS Ⅱ官方的PIO,定時器,串口,用Verilog編寫的自定義編碼器、電機速度PID、特定串口接收等,用于完成底層功能,而遙控、色塊追蹤等上層邏輯則由NIOS Ⅱ中的軟件(C代碼)完成。
圖2 軟硬件架構/數據流圖
功能展示
小車控制方面,電機的編碼器計數,PID速度環(huán),PWM輸出控制都是FPGA硬件上完成的??刂浦芷跒?span lang="EN-AU">10ms,可實現(xiàn)與軟件PID相同的效果。結合三輪全向輪小車的速度映射關系,即可直接在軟件中控制小車的前后、左右、旋轉速度。偏差量和PID系數的乘法是用移位實現(xiàn)的,所以占用的資源不多。
藍牙遙控用的是手機APP Bluetooth Electronics,可以自定義一個GUI,比如按某個按鈕發(fā)送一個字符串。接收端判斷收到的字符串,可實現(xiàn)小車八個方向的移動、自轉,二軸云臺舵機角度調整,水彈槍開火,追蹤模式開關等。
圖3 遙控APP界面
除遙控外,水彈槍還具有目標追蹤功能,分為俯仰和方向兩個PID位置環(huán)。OpenMV攝像頭發(fā)現(xiàn)目標后,將其坐標發(fā)給FPGA,PID周期為20ms,輸入量為目標坐標與水彈槍瞄準點的偏差,輸出量為舵機角度增量,從而讓水彈槍迅速指向目標。在追蹤模式開啟時,云臺不可遙控而小車底盤仍可遙控,無論小車如何運動,云臺能保持水彈槍始終指向目標。