王家威,吳曉軍,趙河明,趙田麗,趙紫甜,曾繁明
(中北大學機電工程學院,山西 太原 030051)
擂臺機器人控制系統(tǒng)設計
王家威,吳曉軍,趙河明,趙田麗,趙紫甜,曾繁明
(中北大學機電工程學院,山西 太原 030051)
擂臺機器人因其激烈的對抗性和多樣化的結構設計,具有極好的競技性和觀賞性,已成為各大高校研制的熱點。針對現(xiàn)有擂臺機器人控制系統(tǒng)采集誤差較大、數(shù)據(jù)處理速度緩慢、目標信號應答效率低下等問題,設計了一套基于STM32的擂臺機器人控制系統(tǒng)。系統(tǒng)設計主要包括目標檢測模塊采集對方機器人信號、STM32處理器對采集的數(shù)據(jù)進行處理、STM32處理器通過控制驅動器控制直流減速電機輸出、人機交互模塊將采集的數(shù)據(jù)進行顯示這4部分內容。通過大量比賽和試驗驗證表明,該系統(tǒng)整體簡潔高效、對目標的識別率較高、能夠準確識別對方機器人的位置和距離,并能夠快速作出相應的應答。
STM32;擂臺機器人;控制系統(tǒng);目標檢測;數(shù)據(jù)處理;應答算法;人機交互;傳感器
隨著中國科技的飛速進步和電子產業(yè)的不斷發(fā)展,機器人技術逐漸成熟。擂臺機器人以其獨特的結構、靈活的競技策略和極佳的觀賞性,逐漸成為各大高校研制的熱點。
目前,國內已有多所高校對擂臺機器人設計進行研究,并且已有多種設計方式。擂臺機器人多數(shù)采用AVR單片機作為處理器,利用灰度傳感器識別不同顏色的目標并配合超聲測距和避障傳感器完成目標定位。這種系統(tǒng)設計存在運行不穩(wěn)定、運算速度慢、傳感器受震動因素影響大且檢測距離有限等問題[1]。
本文以Cortex-M4內核的32位處理器STM32作為機器人的主控器,并結合高精度的紅外測距傳感器,設計了一種新型的擂臺機器人控制系統(tǒng)。高精度的紅外測距傳感器能夠確保目標采集信號的準確性,高頻的STM32處理器能夠確保系統(tǒng)處理信號的時效性和信號輸出的快速性。
擂臺機器人控制系統(tǒng)設計原理圖如圖1所示。紅外測距傳感器對對方機器人進行目標檢測,STM32處理器利用自身集成的ADC對信號進行轉換和處理,并根據(jù)內部的算法作出應答,通過控制驅動器控制電機輸出;人機交互模塊將采集的數(shù)據(jù)進行顯示,從而方便操作者對數(shù)據(jù)的讀取。
圖1 系統(tǒng)設計原理圖Fig.1 Principle of the system design
2.1 硬件選擇
STM32F407ZGT6是基于ARM Cortex-M4為內核開發(fā)的一種高性能微控制器。STM32 F4主頻可達168 MHz,內部集成了單周器DSP指令和浮點單元(floating point unit,F(xiàn)PU),用于提升計算能力[2]。其內部有12位ADC轉換器,方便數(shù)據(jù)轉化,性能優(yōu)良。
Sharp GP2D12是Sharp公司生產的紅外線測距傳感器。該傳感器的光敏接收管接收前方物體反射光,據(jù)此判斷前方是否有障礙物[3]。其整體性能優(yōu)良、價格便宜、測量距離遠、測量范圍廣、響應時間短、可多個傳感器同步測量,能夠實時、準確檢測對方機器人。Sharp GP2D12紅外測距傳感器參數(shù)如表1所示。
表1 傳感器參數(shù)Tab.1 The parameters of sensor
AQMH2407ND是一種直流減速電機驅動器。H橋模塊使用門電路與MOS管組合的方式,實現(xiàn)電機正反轉、制動及調速控制。
HGS128649是一款12864 OLED顯示屏。該顯示屏具備自發(fā)光、無需背光源、對比度高、厚度薄、視角廣、反應速度快的優(yōu)點[4]。OLED是全固態(tài)、非真空器件,具有抗震蕩性。
2.2 硬件電路設計
2.2.1 目標檢測電路設計
使用Sharp GP2D12紅外測距傳感器時,VOUT接單片機的PD0引腳,GND接模擬地、VCC接+5 V電源線[5]。由多個GP2D12連接單片機時,因為供電量的加大,會造成電壓波動,從而對測量結果產生影響。解決方法是在VCC與GND之間并聯(lián)電容來穩(wěn)定對GP2D12的供電,減少電壓波動對信號結果穩(wěn)定的影響。同時,在GND與信號線之間并聯(lián)一個電容來減小輸出電壓波動,從而濾除出現(xiàn)的誤差信號,提高數(shù)據(jù)的可靠性。
2.2.2 數(shù)據(jù)處理電路設計
數(shù)據(jù)處理電路的核心器件采用型號為STM32F407ZGT6的單片機。利用單片機內部集成的A/D轉化電路,對紅外測距傳感器采集回來的數(shù)據(jù)進行轉換。通過查閱手冊,可得到紅外測距傳感器測量的距離。
2.2.3 電機電路設計
電機電路模塊選用型號為N-F-0321的直流減速電機。電機驅動器選擇AQMH2407ND。其電機為兩線控制模式,供電電源是 24 V 直流電源[6]。M(+)、M(-)分別為電機的正負端,OUT1、OUT2分別為驅動器信號的 輸 出 端 ,VCC、ENA、IN1、IN2、GND、POWER、PGND 分別為驅動器的電源正極、使能端、信號輸入口1、信號輸入口2、電源負極、電機電源正極和電機電源負極。電機控制方式如表2所示。
表2 電機控制方式Tab.2 The control modes of motor
M(+)接 OUT1、M(-)串聯(lián) 10 A 保險絲與 OUT2端連接,VCC、GND分別與單片機的+5 V和GND連接,ENA、IN1、IN2分別與單片機的 PD1、PD2和 PD3連接。POWER串聯(lián)15 A保險絲后與電池24 V相連、PGND連接電池的負極。
2.2.4 人機交互電路設計
STM32F407ZGT6通過GPIO口與ILI9325 TFT液晶模組連接,大多數(shù)TFT液晶模組中內置的液晶屏控制器支持SPI通信。但由于SPI傳輸速度較慢,會影響液晶數(shù)據(jù)的傳輸速率,因此本系統(tǒng)采用并口通信。PB0~PB15分別與 D0~D15相連作為數(shù)據(jù)通信口,PA0、PA4~PA7分別連接 RESET、CS、RS、WR、RD,實現(xiàn)復位、片選、指令數(shù)據(jù)切換、讀寫等控制功能[7]。
系統(tǒng)軟件部分主要包括目標檢測模塊、數(shù)據(jù)處理和應答模塊、電機模塊和人機交互模塊。系統(tǒng)主程序流程圖如圖2所示。
圖2 系統(tǒng)主程序流程圖Fig.2 Flowchart of main system program
首先,由于這是擂臺機器人控制系統(tǒng)設計,故需要對對方機器人進行目標采集,需要有目標采集子程序;其次,處理器要對采集回來的數(shù)據(jù)進行處理和根據(jù)算法作出相應的應答,故需要數(shù)據(jù)處理和應答子程序;再次,采集的數(shù)據(jù)要通過人機交互電路顯示在TFT顯示屏上,故需要數(shù)據(jù)顯示子程序;然后,處理器根據(jù)算法輸出相應的控制信號,故需要輸出信號子程序;最后,由主程序來調度各個子程序運行,從而實現(xiàn)相應的功能。
①目標采集程序。
目標采集程序主要有程序初始化、目標數(shù)據(jù)采集子程序。程序初始化主要是對紅外測距傳感器參數(shù)進行初始化。目標數(shù)據(jù)采集子程序主要是對對方機器人進行檢測,因為檢測對方機器人要實時進行,所以目標數(shù)據(jù)采集子程序需要一直循環(huán)進行。
②數(shù)據(jù)處理和應答程序。
數(shù)據(jù)處理和應答程序主要是對目標采集的程序采集回來的數(shù)據(jù)進行處理,并根據(jù)內部的算法進行應答。數(shù)據(jù)處理程序主要是對采集回來的數(shù)據(jù)進行A/D轉換和濾波處理[8];應答程序主要根據(jù)內部算法,對數(shù)據(jù)處理程序處理完成的數(shù)據(jù)進行應答。
③數(shù)據(jù)顯示程序。
數(shù)據(jù)顯示程序的作用是對處理過后的數(shù)據(jù)進行顯示,以便操作者讀取傳感器的返回數(shù)值。因為目標采集的程序不斷采集目標信息,故數(shù)據(jù)顯示函數(shù)需不斷循環(huán)進行以顯示讀取的數(shù)據(jù)。
④輸出信號程序。
輸出信號程序主要是輸出根據(jù)內部算法對采集回來的數(shù)據(jù)進行應答的信號,繼而控制直流減速電機的動作。當目標采集的程序未采集到數(shù)據(jù)時,輸出信號函數(shù)輸出巡邏信號。當目標采集的程序采集到數(shù)據(jù)時,輸出信號函數(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)));
}}
試驗結果表明,該系統(tǒng)具有目標檢測準確、數(shù)據(jù)處理和應答速度快等特點。
①目標檢測準確。
系統(tǒng)目標檢測準確主要體現(xiàn)在目標檢測電路信號穩(wěn)定和處理器處理算法優(yōu)化等方面。通過測量直徑為45 mm、高度為30 mm的松木棋子的識別數(shù)量,計算系統(tǒng)目標檢測的準確率。測量結果如表3所示。
表3 測量結果Tab.3 Results of measurement
②數(shù)據(jù)處理和應答速度快。
本系統(tǒng)采用的是基于ARM Cortex-M4的STM32F407ZGT6,主頻可達到168 MHz,內部集成了單周器DSP指令和浮點單元,數(shù)據(jù)處理速度為主頻16 MB的AVR單片機的10倍[10]。內部算法均采用直接操作寄存器,加快了數(shù)據(jù)處理的速度。
本文介紹了一種基于STM32的擂臺機器人控制系統(tǒng)設計。系統(tǒng)采用高主頻的STM32F407芯片作為處理器,能夠快速對紅外測距傳感器采集的數(shù)據(jù)進行處理。編寫的控制算法,能夠對機器人在賽場上遇到的各種情況作出準確的分析并進行應答,確保了機器人目標檢測的及時性、數(shù)據(jù)處理的快速性和應答的準確性。系統(tǒng)可用于各大比賽中擂臺機器人的控制。該系統(tǒng)對于今后擂臺機器人系統(tǒng)的開發(fā)和研究具有重要的作用,其應用前景廣闊。
[1]耿亞南,張曉丹.圖像處理在擂臺機器人設計中的應用[J].物聯(lián)網技術,2016(1):21-23.
[2]劉劍.基于STM32的電動按摩椅控制板卡設計[J].計算機光盤軟件與應用,2014(6):251-252.
[3]沈旭,潘彩霞.基于AVR單片機的挖掘機器人控制系統(tǒng)設計[J].制造業(yè)自動化,2010,32(14):45-47.
[4]高敬.如何選擇新聞演播室的顯示設備[J].內蒙古廣播與電視技術,2013,30(4):22-24.
[5]楊劍.STM8S單片機式濕度傳感器及校檢系統(tǒng)研究[D].武漢:華中科技大學,2013.
[6]王偉.基于DSP的自備電源控制系統(tǒng)設計[D].武漢:華中科技大學,2009.
[7]STM32F103F103與TFT液晶屏模塊控制器的接口電路[EB/OL].[2017-05-24].http://www.hqew.com/tech/news/1852625.html.
[8]侯逢勃.基于多處理器的激光雷達數(shù)據(jù)采集處理平臺設計[D].西安:西安理工大學,2015.
[9]陳曉暉.CO2激光-TIG復合熱源脈沖協(xié)調控制與焊接特性研究[D].哈爾濱:哈爾濱工業(yè)大學,2010.
[10]趙磊,李衛(wèi)國,王利利.新型非標準平臺武術擂臺機器人的研究與實踐[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—),男,在讀碩士研究生,主要從事信息處理與目標識別方向的研究。E-mail:229798743@qq.com。吳曉軍(通信作者),男,博士,副教授,主要從事機電系統(tǒng)設計與分析技術、機電系統(tǒng)控制技術等的研究。E-mail:wxjun67@nuc.edu.com。