哈爾濱工業(yè)大學(威海)信息與電氣工程學院 董書航 王 超 劉振國
本系統(tǒng)的硬件電路主要由單片機控制模塊、攝像頭采集模塊、運動系統(tǒng)部分、電源模塊組成,下面分別論證這幾個模塊的選擇。
方案一:STC公司出產(chǎn)的STC15F2K60S2單片機。STC15F2K60S2單片機是宏晶科技生產(chǎn)的單時鐘的單片機,是高速新一代8051單片機,內(nèi)部集成專用復(fù)位電路,2路PWM,針對電機控制,強干擾場合,并且價格低廉。但是此芯片頻率較低,性能很弱,數(shù)據(jù)量大時速度難以滿足要求,無法承擔復(fù)雜的運算及顯示。而且其功能單一,片內(nèi)資源匱乏,且需要仿真器來實現(xiàn)軟硬件調(diào)試,較為煩瑣。
方案二:意法stm32f103zet6。此芯片為ARM 32位的Cortex-M3,具有最高72MHz工作頻率,在存儲器的0等待周期訪問時可達1.25DMips/MHZ并可進行單周期乘法和硬件除法,性能優(yōu)越,編程簡單,io口及片內(nèi)硬件資源豐富,可輕松進行大量的運算。但缺點是價格較高,而且對于攝像頭等高速器件處理能力較差,難以應(yīng)付大量的復(fù)雜運算。
方案三:kinetis MK60單片機,此芯片為ARM32位的cortex-M4內(nèi)核,具有最高180MHZ的工作頻率,具有硬件浮點單元,可進行快速單精度浮點運算。性能強大,編程簡單。配合CMSIS的DSP算法庫可輕松實現(xiàn)如FFT等功能,可以輕易應(yīng)對大量復(fù)雜計算,并且不需要專用的仿真裝置,可以非常方便的進行仿真模擬。片內(nèi)資源豐富,io口充足。缺點是價格較高。
綜合以上三種方案,選擇方案三(圖1)。
方案一:采用兩個CCD線性光學傳感器。CCD光學傳感器可以掃描一列的光學信號,采用兩個CCD傳感器即可交叉獲取小球的X軸及Y軸坐標,從而完成小球的定位。但是難以完成兩個傳感器的安放與固定,并且存在響應(yīng)檢測速度慢,平板的邊緣檢測精度不高等問題。

圖1 單片機系統(tǒng)電路
方案二:普通黑白攝像頭。黑白攝像頭經(jīng)過硬件二值化后可以輕易分辨整個板子的全貌,區(qū)分板子與小球并且完成定位,功能齊全,速度較快,可以實現(xiàn)題目的各項要求。但是由于只能識別單色,故采集信息單一,擴展性差。
方案三:彩色攝像頭。彩色攝像頭采集的信息非常豐富,可以識別板面上的顏色信息,通過顏色輔助小球定位,可以較好的達到抗畸變和識別精度的問題,可以實現(xiàn)各種各樣的功能,缺點在于采集的信息量大,對于算法和單片機的處理速度均有較高的要求,而當前采用的單片機仍然難以完成采集和處理。
綜合以上三種方案,選擇方案二。
方案一:采用直線電機或者步進電機配合絲桿。此方案的機械結(jié)構(gòu)和控制方式較為簡單,通過直線電機抬升和降低板子的高度,控制較為方便,運算工程量較少。缺點在于此結(jié)構(gòu)的運動速度較慢,存在無法及時調(diào)節(jié)板子的傾斜角度的問題。
方案二:采用舵機配合萬向桿。此方案機械結(jié)構(gòu)和控制方式略微復(fù)雜,用萬向桿將舵機的轉(zhuǎn)動轉(zhuǎn)化為板子高度的變化,運動速度較快,響應(yīng)及時,調(diào)節(jié)范圍和精度均能滿足要求,缺點是控制困難,而且舵機角度變化和板子高度變化并非線性關(guān)系,需要進行計算和換算。
綜合以上兩種方案,選擇方案二。
由攝像頭采集小球的當前坐標,設(shè)定目標地點的坐標,確定相對坐標,和當前小球坐標做差,得到水平方向與垂直方向的兩個誤差,然后用誤差帶入PID函數(shù),分別計算控制兩個軸的兩個舵機的參數(shù),然后換算得到相對于舵機中值的增量PWM值,控制舵機調(diào)節(jié)平板的運動狀況。
方案一:直接在白板上用黑色顏料標定多個目標點的位置,這樣做的優(yōu)點是,即使攝像頭發(fā)生偏移或是采集數(shù)據(jù)出現(xiàn)了誤差,仍然能準確的確定目標點位置,缺點在于采用黑白攝像頭時,難以區(qū)分目標點與小球,造成誤判。
方案二:用軟件直接存儲目標點的坐標,優(yōu)點是攝像頭需要采集的數(shù)據(jù)僅有小球的位置,清晰明了,程序容易處理和識別。缺點在于抗干擾性較差,小球的位置容易與目標點出現(xiàn)一定的偏差。
綜合考慮軟硬件的情況,方案二較為容易實現(xiàn),攝像頭帶來的誤差可以采用濾波以及各種圖像糾正算法解決,經(jīng)過測試效果良好。

圖2 系統(tǒng)總體框圖

圖3 電源部分系統(tǒng)電路
電源由電池、穩(wěn)壓部分組成。為整個系統(tǒng)和單片機提供穩(wěn)定5V與3.3V電壓,確保電路的正常穩(wěn)定工作。這部分電路比較簡單,都采用穩(wěn)壓管與穩(wěn)壓芯片實現(xiàn),故不作詳述。

圖4 其他外設(shè)電路
根據(jù)設(shè)計要求,程序主要實現(xiàn)對攝像頭信息的采集和處理、舵機位置的控制、數(shù)據(jù)的顯示和按鍵的輸入幾方面。
攝像頭的采集和處理部分主要負責定位在板面上的小球,將小球位置轉(zhuǎn)化為XY的坐標值供程序進一步處理。小球的質(zhì)心可以采用質(zhì)心算法進行計算,也可直接求中點坐標,二者差別不大,為減少運算量,采用求中點的方式來求小球的質(zhì)心坐標。
舵機位置控制主要由PID算法實現(xiàn),將目標位置和小球當前位置進行比較處理,從而計算出舵機的打角方向與大小,通過機械傳動進而控制平板的傾斜方向,使小球在重力的作用下滑向指定位置。
顯示與輸入:數(shù)據(jù)顯示主要由LCD顯示屏承擔,可以顯示小球運動的各項參數(shù),還可以顯示攝像頭采集的數(shù)據(jù),顯示系統(tǒng)的當前運行狀態(tài)等。輸入部分由按鍵實現(xiàn),按鍵檢測采用中斷或者輪詢的方式,負責調(diào)節(jié)程序的參數(shù)以及實現(xiàn)各項功能。

圖5 程序流程圖
本設(shè)計實現(xiàn)了攝像頭對物體位置及運動狀況的采集和處理,進而控制機械結(jié)構(gòu)做出相應(yīng)的動作。稍加改動即可應(yīng)用于許多需要精確控制的場合。相比于傳統(tǒng)識別方式,攝像頭具有采集信息量大,識別范圍廣,靈活多變等優(yōu)點。必將在未來得到廣泛的應(yīng)用。