王家威,吳曉軍,趙河明,趙田麗,趙紫甜,曾繁明
(中北大學(xué)機(jī)電工程學(xué)院,山西 太原 030051)
擂臺(tái)機(jī)器人控制系統(tǒng)設(shè)計(jì)
王家威,吳曉軍,趙河明,趙田麗,趙紫甜,曾繁明
(中北大學(xué)機(jī)電工程學(xué)院,山西 太原 030051)
擂臺(tái)機(jī)器人因其激烈的對抗性和多樣化的結(jié)構(gòu)設(shè)計(jì),具有極好的競技性和觀賞性,已成為各大高校研制的熱點(diǎn)。針對現(xiàn)有擂臺(tái)機(jī)器人控制系統(tǒng)采集誤差較大、數(shù)據(jù)處理速度緩慢、目標(biāo)信號應(yīng)答效率低下等問題,設(shè)計(jì)了一套基于STM32的擂臺(tái)機(jī)器人控制系統(tǒng)。系統(tǒng)設(shè)計(jì)主要包括目標(biāo)檢測模塊采集對方機(jī)器人信號、STM32處理器對采集的數(shù)據(jù)進(jìn)行處理、STM32處理器通過控制驅(qū)動(dòng)器控制直流減速電機(jī)輸出、人機(jī)交互模塊將采集的數(shù)據(jù)進(jìn)行顯示這4部分內(nèi)容。通過大量比賽和試驗(yàn)驗(yàn)證表明,該系統(tǒng)整體簡潔高效、對目標(biāo)的識別率較高、能夠準(zhǔn)確識別對方機(jī)器人的位置和距離,并能夠快速作出相應(yīng)的應(yīng)答。
STM32;擂臺(tái)機(jī)器人;控制系統(tǒng);目標(biāo)檢測;數(shù)據(jù)處理;應(yīng)答算法;人機(jī)交互;傳感器
隨著中國科技的飛速進(jìn)步和電子產(chǎn)業(yè)的不斷發(fā)展,機(jī)器人技術(shù)逐漸成熟。擂臺(tái)機(jī)器人以其獨(dú)特的結(jié)構(gòu)、靈活的競技策略和極佳的觀賞性,逐漸成為各大高校研制的熱點(diǎn)。
目前,國內(nèi)已有多所高校對擂臺(tái)機(jī)器人設(shè)計(jì)進(jìn)行研究,并且已有多種設(shè)計(jì)方式。擂臺(tái)機(jī)器人多數(shù)采用AVR單片機(jī)作為處理器,利用灰度傳感器識別不同顏色的目標(biāo)并配合超聲測距和避障傳感器完成目標(biāo)定位。這種系統(tǒng)設(shè)計(jì)存在運(yùn)行不穩(wěn)定、運(yùn)算速度慢、傳感器受震動(dòng)因素影響大且檢測距離有限等問題[1]。
本文以Cortex-M4內(nèi)核的32位處理器STM32作為機(jī)器人的主控器,并結(jié)合高精度的紅外測距傳感器,設(shè)計(jì)了一種新型的擂臺(tái)機(jī)器人控制系統(tǒng)。高精度的紅外測距傳感器能夠確保目標(biāo)采集信號的準(zhǔn)確性,高頻的STM32處理器能夠確保系統(tǒng)處理信號的時(shí)效性和信號輸出的快速性。
擂臺(tái)機(jī)器人控制系統(tǒng)設(shè)計(jì)原理圖如圖1所示。紅外測距傳感器對對方機(jī)器人進(jìn)行目標(biāo)檢測,STM32處理器利用自身集成的ADC對信號進(jìn)行轉(zhuǎn)換和處理,并根據(jù)內(nèi)部的算法作出應(yīng)答,通過控制驅(qū)動(dòng)器控制電機(jī)輸出;人機(jī)交互模塊將采集的數(shù)據(jù)進(jìn)行顯示,從而方便操作者對數(shù)據(jù)的讀取。

圖1 系統(tǒng)設(shè)計(jì)原理圖Fig.1 Principle of the system design
2.1 硬件選擇
STM32F407ZGT6是基于ARM Cortex-M4為內(nèi)核開發(fā)的一種高性能微控制器。STM32 F4主頻可達(dá)168 MHz,內(nèi)部集成了單周器DSP指令和浮點(diǎn)單元(floating point unit,F(xiàn)PU),用于提升計(jì)算能力[2]。其內(nèi)部有12位ADC轉(zhuǎn)換器,方便數(shù)據(jù)轉(zhuǎn)化,性能優(yōu)良。
Sharp GP2D12是Sharp公司生產(chǎn)的紅外線測距傳感器。該傳感器的光敏接收管接收前方物體反射光,據(jù)此判斷前方是否有障礙物[3]。其整體性能優(yōu)良、價(jià)格便宜、測量距離遠(yuǎn)、測量范圍廣、響應(yīng)時(shí)間短、可多個(gè)傳感器同步測量,能夠?qū)崟r(shí)、準(zhǔn)確檢測對方機(jī)器人。Sharp GP2D12紅外測距傳感器參數(shù)如表1所示。

表1 傳感器參數(shù)Tab.1 The parameters of sensor
AQMH2407ND是一種直流減速電機(jī)驅(qū)動(dòng)器。H橋模塊使用門電路與MOS管組合的方式,實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)、制動(dòng)及調(diào)速控制。
HGS128649是一款12864 OLED顯示屏。該顯示屏具備自發(fā)光、無需背光源、對比度高、厚度薄、視角廣、反應(yīng)速度快的優(yōu)點(diǎn)[4]。OLED是全固態(tài)、非真空器件,具有抗震蕩性。
2.2 硬件電路設(shè)計(jì)
2.2.1 目標(biāo)檢測電路設(shè)計(jì)
使用Sharp GP2D12紅外測距傳感器時(shí),VOUT接單片機(jī)的PD0引腳,GND接模擬地、VCC接+5 V電源線[5]。由多個(gè)GP2D12連接單片機(jī)時(shí),因?yàn)楣╇娏康募哟螅瑫?huì)造成電壓波動(dòng),從而對測量結(jié)果產(chǎn)生影響。解決方法是在VCC與GND之間并聯(lián)電容來穩(wěn)定對GP2D12的供電,減少電壓波動(dòng)對信號結(jié)果穩(wěn)定的影響。同時(shí),在GND與信號線之間并聯(lián)一個(gè)電容來減小輸出電壓波動(dòng),從而濾除出現(xiàn)的誤差信號,提高數(shù)據(jù)的可靠性。
2.2.2 數(shù)據(jù)處理電路設(shè)計(jì)
數(shù)據(jù)處理電路的核心器件采用型號為STM32F407ZGT6的單片機(jī)。利用單片機(jī)內(nèi)部集成的A/D轉(zhuǎn)化電路,對紅外測距傳感器采集回來的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。通過查閱手冊,可得到紅外測距傳感器測量的距離。
2.2.3 電機(jī)電路設(shè)計(jì)
電機(jī)電路模塊選用型號為N-F-0321的直流減速電機(jī)。電機(jī)驅(qū)動(dòng)器選擇AQMH2407ND。其電機(jī)為兩線控制模式,供電電源是 24 V 直流電源[6]。M(+)、M(-)分別為電機(jī)的正負(fù)端,OUT1、OUT2分別為驅(qū)動(dòng)器信號的 輸 出 端 ,VCC、ENA、IN1、IN2、GND、POWER、PGND 分別為驅(qū)動(dòng)器的電源正極、使能端、信號輸入口1、信號輸入口2、電源負(fù)極、電機(jī)電源正極和電機(jī)電源負(fù)極。電機(jī)控制方式如表2所示。

表2 電機(jī)控制方式Tab.2 The control modes of motor
M(+)接 OUT1、M(-)串聯(lián) 10 A 保險(xiǎn)絲與 OUT2端連接,VCC、GND分別與單片機(jī)的+5 V和GND連接,ENA、IN1、IN2分別與單片機(jī)的 PD1、PD2和 PD3連接。POWER串聯(lián)15 A保險(xiǎn)絲后與電池24 V相連、PGND連接電池的負(fù)極。
2.2.4 人機(jī)交互電路設(shè)計(jì)
STM32F407ZGT6通過GPIO口與ILI9325 TFT液晶模組連接,大多數(shù)TFT液晶模組中內(nèi)置的液晶屏控制器支持SPI通信。但由于SPI傳輸速度較慢,會(huì)影響液晶數(shù)據(jù)的傳輸速率,因此本系統(tǒng)采用并口通信。PB0~PB15分別與 D0~D15相連作為數(shù)據(jù)通信口,PA0、PA4~PA7分別連接 RESET、CS、RS、WR、RD,實(shí)現(xiàn)復(fù)位、片選、指令數(shù)據(jù)切換、讀寫等控制功能[7]。
系統(tǒng)軟件部分主要包括目標(biāo)檢測模塊、數(shù)據(jù)處理和應(yīng)答模塊、電機(jī)模塊和人機(jī)交互模塊。系統(tǒng)主程序流程圖如圖2所示。

圖2 系統(tǒng)主程序流程圖Fig.2 Flowchart of main system program
首先,由于這是擂臺(tái)機(jī)器人控制系統(tǒng)設(shè)計(jì),故需要對對方機(jī)器人進(jìn)行目標(biāo)采集,需要有目標(biāo)采集子程序;其次,處理器要對采集回來的數(shù)據(jù)進(jìn)行處理和根據(jù)算法作出相應(yīng)的應(yīng)答,故需要數(shù)據(jù)處理和應(yīng)答子程序;再次,采集的數(shù)據(jù)要通過人機(jī)交互電路顯示在TFT顯示屏上,故需要數(shù)據(jù)顯示子程序;然后,處理器根據(jù)算法輸出相應(yīng)的控制信號,故需要輸出信號子程序;最后,由主程序來調(diào)度各個(gè)子程序運(yùn)行,從而實(shí)現(xiàn)相應(yīng)的功能。
①目標(biāo)采集程序。
目標(biāo)采集程序主要有程序初始化、目標(biāo)數(shù)據(jù)采集子程序。程序初始化主要是對紅外測距傳感器參數(shù)進(jìn)行初始化。目標(biāo)數(shù)據(jù)采集子程序主要是對對方機(jī)器人進(jìn)行檢測,因?yàn)闄z測對方機(jī)器人要實(shí)時(shí)進(jìn)行,所以目標(biāo)數(shù)據(jù)采集子程序需要一直循環(huán)進(jìn)行。
②數(shù)據(jù)處理和應(yīng)答程序。
數(shù)據(jù)處理和應(yīng)答程序主要是對目標(biāo)采集的程序采集回來的數(shù)據(jù)進(jìn)行處理,并根據(jù)內(nèi)部的算法進(jìn)行應(yīng)答。數(shù)據(jù)處理程序主要是對采集回來的數(shù)據(jù)進(jìn)行A/D轉(zhuǎn)換和濾波處理[8];應(yīng)答程序主要根據(jù)內(nèi)部算法,對數(shù)據(jù)處理程序處理完成的數(shù)據(jù)進(jìn)行應(yīng)答。
③數(shù)據(jù)顯示程序。
數(shù)據(jù)顯示程序的作用是對處理過后的數(shù)據(jù)進(jìn)行顯示,以便操作者讀取傳感器的返回?cái)?shù)值。因?yàn)槟繕?biāo)采集的程序不斷采集目標(biāo)信息,故數(shù)據(jù)顯示函數(shù)需不斷循環(huán)進(jìn)行以顯示讀取的數(shù)據(jù)。
④輸出信號程序。
輸出信號程序主要是輸出根據(jù)內(nèi)部算法對采集回來的數(shù)據(jù)進(jìn)行應(yīng)答的信號,繼而控制直流減速電機(jī)的動(dòng)作。當(dāng)目標(biāo)采集的程序未采集到數(shù)據(jù)時(shí),輸出信號函數(shù)輸出巡邏信號。當(dāng)目標(biāo)采集的程序采集到數(shù)據(jù)時(shí),輸出信號函數(shù)輸出攻擊信號[9]。
巡邏信號的程序代碼如下。
void seek_edge(void)
{do
{
go();
}
while((test_enemy()==0)amp;amp;(test_edge()==0))
u8 test_enemy(void)
{
if(A1==0amp;amp;A2==0amp;amp;A3==0amp;amp;A4==0amp;amp;A5==0amp;amp;A6==0
amp;amp;A7==0amp;amp;A8==0amp;amp;A9==0amp;amp;A10==0amp;amp;A11==0)
return 0;
else return 1;
}
u8 test_edge(void)
{
if(A12>1500amp;amp;A13>1500)return 0;
else return 1;}}
攻擊信號的程序代碼如下:
void face_enemy(void)
{
if(!((A2==1)amp;amp;(A3==1)))
{if(A4==1amp;amp;A7==1amp;amp;A8==1amp;amp;A11==1)
do{
turn_right_yuandi();
delay_ms(100);
if(test_enemy()!=1)break;
}while(!((A2==1)amp;amp;(A3==1)));
else if(A1==1amp;amp;A5==1amp;amp;A6==1amp;amp;A9==1)
do{
turn_left_yuandi();
delay_ms(100);
if(test_enemy()!=1)break;
}while(!((A2==1)amp;amp;(A3==1)));
}}
試驗(yàn)結(jié)果表明,該系統(tǒng)具有目標(biāo)檢測準(zhǔn)確、數(shù)據(jù)處理和應(yīng)答速度快等特點(diǎn)。
①目標(biāo)檢測準(zhǔn)確。
系統(tǒng)目標(biāo)檢測準(zhǔn)確主要體現(xiàn)在目標(biāo)檢測電路信號穩(wěn)定和處理器處理算法優(yōu)化等方面。通過測量直徑為45 mm、高度為30 mm的松木棋子的識別數(shù)量,計(jì)算系統(tǒng)目標(biāo)檢測的準(zhǔn)確率。測量結(jié)果如表3所示。

表3 測量結(jié)果Tab.3 Results of measurement
②數(shù)據(jù)處理和應(yīng)答速度快。
本系統(tǒng)采用的是基于ARM Cortex-M4的STM32F407ZGT6,主頻可達(dá)到168 MHz,內(nèi)部集成了單周器DSP指令和浮點(diǎn)單元,數(shù)據(jù)處理速度為主頻16 MB的AVR單片機(jī)的10倍[10]。內(nèi)部算法均采用直接操作寄存器,加快了數(shù)據(jù)處理的速度。
本文介紹了一種基于STM32的擂臺(tái)機(jī)器人控制系統(tǒng)設(shè)計(jì)。系統(tǒng)采用高主頻的STM32F407芯片作為處理器,能夠快速對紅外測距傳感器采集的數(shù)據(jù)進(jìn)行處理。編寫的控制算法,能夠?qū)C(jī)器人在賽場上遇到的各種情況作出準(zhǔn)確的分析并進(jìn)行應(yīng)答,確保了機(jī)器人目標(biāo)檢測的及時(shí)性、數(shù)據(jù)處理的快速性和應(yīng)答的準(zhǔn)確性。系統(tǒng)可用于各大比賽中擂臺(tái)機(jī)器人的控制。該系統(tǒng)對于今后擂臺(tái)機(jī)器人系統(tǒng)的開發(fā)和研究具有重要的作用,其應(yīng)用前景廣闊。
[1]耿亞南,張曉丹.圖像處理在擂臺(tái)機(jī)器人設(shè)計(jì)中的應(yīng)用[J].物聯(lián)網(wǎng)技術(shù),2016(1):21-23.
[2]劉劍.基于STM32的電動(dòng)按摩椅控制板卡設(shè)計(jì)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(6):251-252.
[3]沈旭,潘彩霞.基于AVR單片機(jī)的挖掘機(jī)器人控制系統(tǒng)設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2010,32(14):45-47.
[4]高敬.如何選擇新聞演播室的顯示設(shè)備[J].內(nèi)蒙古廣播與電視技術(shù),2013,30(4):22-24.
[5]楊劍.STM8S單片機(jī)式濕度傳感器及校檢系統(tǒng)研究[D].武漢:華中科技大學(xué),2013.
[6]王偉.基于DSP的自備電源控制系統(tǒng)設(shè)計(jì)[D].武漢:華中科技大學(xué),2009.
[7]STM32F103F103與TFT液晶屏模塊控制器的接口電路[EB/OL].[2017-05-24].http://www.hqew.com/tech/news/1852625.html.
[8]侯逢勃.基于多處理器的激光雷達(dá)數(shù)據(jù)采集處理平臺(tái)設(shè)計(jì)[D].西安:西安理工大學(xué),2015.
[9]陳曉暉.CO2激光-TIG復(fù)合熱源脈沖協(xié)調(diào)控制與焊接特性研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[10]趙磊,李衛(wèi)國,王利利.新型非標(biāo)準(zhǔn)平臺(tái)武術(shù)擂臺(tái)機(jī)器人的研究與實(shí)踐[J].機(jī)械管理開發(fā),2016(7):9-10.
Design of the Control System for Arena Robots
WANG Jiawei,WU Xiaojun,ZHAO Heming,ZHAO Tianli,ZHAO Zitian,ZENG Fanming
(School of Mechanical and Electrical Engineering,North University of China,Taiyuan 030051,China)
The arena robots have been developed in recent years.Because of its intense antagonism and diversified structure design,it is competitive and ornamental,and has become a hot spot of research and development in major colleges and universities.Aiming at the disadvantages of the robot control system,such as big error,low speed of data processing and low response efficiency of the target signal,the control system based on STM32 has been designed.The system mainly consists of four parts,the system target detection module for collecting the signals from the other side of robot;the STM32 processor for processing the data collected;the STM32 processing controlling the output of DC geared motor through the control driver;and the man machine interaction module for displaying the data collected on the panel.Through a large amount of competitions and tests,it is verified that the system is overall simple and efficient;it is capable to recognize the position and distance of the robot of other side and response promptly.
STM32;Arena robots;Control system;Target detection;Data processing;Response algorithm;Human-computer interaction;Sensor
TH7;TP24
A
10.16086 /j.cnki.issn1000-0380.201711014
修改稿收到日期:2017-06-23
王家威(1991—),男,在讀碩士研究生,主要從事信息處理與目標(biāo)識別方向的研究。E-mail:229798743@qq.com。吳曉軍(通信作者),男,博士,副教授,主要從事機(jī)電系統(tǒng)設(shè)計(jì)與分析技術(shù)、機(jī)電系統(tǒng)控制技術(shù)等的研究。E-mail:wxjun67@nuc.edu.com。