范縣成, 孫新柱, 房 穩(wěn), 彭 誠
(安徽工程大學(xué)電氣工程學(xué)院,安徽 蕪湖 214000)
?
基于STM32F407的新型迷宮機(jī)器人系統(tǒng)設(shè)計(jì)
范縣成, 孫新柱, 房 穩(wěn), 彭 誠
(安徽工程大學(xué)電氣工程學(xué)院,安徽 蕪湖 214000)
針對迷宮機(jī)器人走迷宮的要求,介紹了一種基于STM32F407和L6207雙核四輪新型迷宮機(jī)器人系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。根據(jù)迷宮機(jī)器人在走迷宮過程中,單一微控制器無法滿足迷宮機(jī)器人的頻繁啟動與制動,在此基礎(chǔ)上引入L6207芯片,從而減輕了迷宮機(jī)器人在走迷宮時(shí)STM32F407的工作量。然后通過重新設(shè)置硬件,并對設(shè)計(jì)的主要模塊做了詳細(xì)介紹,主要包括微控制器、紅外傳感器、電源模塊、電機(jī)控制等模塊。軟件模塊采用中心算法結(jié)合洪水算法進(jìn)行迷宮的搜索與沖刺。該算法簡單,模塊化容易移植,大大提高了迷宮機(jī)器人在時(shí)效性與穩(wěn)定性方面的性能。
迷宮機(jī)器人;STM32F407;中心算法;洪水算法
所謂迷宮機(jī)器人,是使用微處理器、傳感器和機(jī)電運(yùn)動部件構(gòu)成的智能性行走裝置[1]。迷宮機(jī)器人擁有行走、感知、判斷、存儲等基本功能,搜索整個(gè)迷宮,找到從起點(diǎn)到設(shè)定終點(diǎn)的最短路徑,并以最快的速度沖刺終點(diǎn)。
目前,對于迷宮機(jī)器人的硬件設(shè)計(jì)主要是基于ARM和單片機(jī)的單一微處理器,如文獻(xiàn)[2-3]提出的單一微處理器設(shè)計(jì)實(shí)現(xiàn)。由于受到單一微處理器硬件方面的限制,在迷宮機(jī)器人進(jìn)行頻繁的剎車和啟動過程中,加重了單一處理器的工作量,單一處理器將無法滿足迷宮機(jī)器人快速啟動與停止的要求,不利于高速迷宮機(jī)器人的發(fā)展。文獻(xiàn)[4]設(shè)計(jì)實(shí)現(xiàn)了兩輪迷宮機(jī)器人,但兩輪迷宮機(jī)器人在加速時(shí)會造成重心后移,使得迷宮機(jī)器人前部出現(xiàn)輕飄現(xiàn)象,即使在良好的路面上迷宮機(jī)器人也會打滑,可能出現(xiàn)撞墻的現(xiàn)象,而且為了滿足復(fù)雜情況下的頻繁加減速,要求單個(gè)驅(qū)動電機(jī)的功率較大,這會在一些相對需求較低的狀態(tài)下造成“大馬拉小車”的現(xiàn)象,不利于迷宮機(jī)器人系統(tǒng)能源的節(jié)約。軟件設(shè)計(jì)方面,主要是算法的設(shè)計(jì)。一些傳統(tǒng)迷宮求解算法需要遍歷整個(gè)迷宮,搜索時(shí)間長,時(shí)效性較差。而對于像蟻群算法[5]、粒子群算法、神經(jīng)網(wǎng)絡(luò)算法[6]等智能性算法,這些高智能性算法設(shè)計(jì)過于復(fù)雜,適用于大型迷宮求解,不適用于對小型迷宮的搜索求解。為了解決這類問題,人們在傳統(tǒng)算法的基礎(chǔ)上,進(jìn)行了算法優(yōu)化改進(jìn),如向心算法[7]、洪水算法[8]等。改進(jìn)算法大大縮短了搜索時(shí)間,提高了搜索效率。
為了實(shí)現(xiàn)迷宮機(jī)器人走迷宮的時(shí)效性與穩(wěn)定性要求,先進(jìn)的硬件與優(yōu)秀的算法設(shè)計(jì)已成必然趨勢,拋棄目前單一控制器模式,提出由STM32F407引入L6207的四輪迷宮機(jī)器人,以直流電機(jī)驅(qū)動芯片L6207為處理核心實(shí)現(xiàn)運(yùn)動控制。針對快速性的要求,設(shè)計(jì)了中心算法結(jié)合洪水算法的智能算法,克服了低級算法不能完成任務(wù)和用時(shí)長的缺點(diǎn),實(shí)現(xiàn)迷宮機(jī)器人的仿真與運(yùn)行。
1.1 系統(tǒng)概述
迷宮機(jī)器人設(shè)計(jì)主要有以下幾個(gè)模塊組成:
(1)微控制器:本文采用的是由STM32F407與L6207組成的雙核微控制器,這將大大提高迷宮機(jī)器人的性能。
(2)電源模塊:采用鋰離子電池,保證迷宮機(jī)器人的正常工作電壓[9]。
(3)紅外測距模塊:使用紅外發(fā)射器OPE5594A和紅外接收器TSL262,能大大提高運(yùn)算精度、克服CCD攝像頭復(fù)雜的圖像處理工作和超聲波相互干擾的問題,有利于迷宮探測。
(4)電機(jī)驅(qū)動模塊:負(fù)責(zé)迷宮機(jī)器人前、后、左、右輪的電機(jī)X、電機(jī)Y,電機(jī)的伺服控制是由L6207芯片控制。迷宮機(jī)器人的二維示意圖如圖1所示。其中,編號1~6是3對紅外線設(shè)備,X、Y、Z、R是四個(gè)車輪,由兩個(gè)直流電機(jī)控制。
圖1 迷宮機(jī)器人二維示意圖
1.2 迷宮機(jī)器人系統(tǒng)整體設(shè)計(jì)方案
由于迷宮算法的復(fù)雜性和對電機(jī)控制的要求,對單一處理器造成了負(fù)擔(dān),不利于迷宮的搜索,單一處理器不能滿足迷宮機(jī)器人穩(wěn)定性與快速性的要求。本文采用STM32F407和L6207雙核四輪新型迷宮機(jī)器人的設(shè)計(jì),由L6207控制兩個(gè)直流電機(jī)的伺服工作,大大減輕了STM32F407處理器的負(fù)擔(dān),并能時(shí)刻與STM32F407進(jìn)行數(shù)據(jù)的調(diào)用與共享。STM32F407和L6207控制的迷宮機(jī)器人的原理圖如圖2所示。
圖2 雙核四輪迷宮機(jī)器人原理圖
1.3 電源模塊
電源由11.1 V、100 mAh的鋰離子電池主要是為微控制器、電機(jī)驅(qū)動裝置和紅外線裝置提供其所需的電壓。紅外線傳感器工作電壓為5 V,采用L5973D系列的降壓單片開關(guān)功率穩(wěn)壓器降壓輸出提供;微處理器STM32F407需要3.3 V供電電壓,由LM2937型號的低壓差集成穩(wěn)壓器對5 V電壓輸入轉(zhuǎn)換為3.3 V電壓供電;電機(jī)驅(qū)動模塊由鋰離子電池直接供電。3.3 V和5 V電壓電路設(shè)計(jì)如圖3所示。
圖3 供電電源設(shè)計(jì)圖
1.4 紅外檢測模塊
為了能夠準(zhǔn)確地探測到迷宮墻壁信息,設(shè)計(jì)采用紅外發(fā)射器OPE5594A和紅外接收器TSL262作為探測部件??偣灿?對紅外發(fā)射器,如圖1所示。其中,1對位于迷宮機(jī)器人的正前方,與車輪平行,主要完成正前方的迷宮探測;1對位于左右垂直于車輪位置,主要完成左右方向的迷宮探測;1對與車輪向呈45°夾角,斜向前,主要完成輔助探測。工作原理是由紅外發(fā)射器OPE5594A發(fā)出紅外光,由紅外接收器TSL262感知從墻壁反射的紅外光線,計(jì)算墻壁距離。紅外發(fā)射器與接收器的電路如圖4所示。
圖4 紅外探測器電路圖
1.5 電機(jī)驅(qū)動模塊
L6207主要完成兩個(gè)直流電機(jī)的驅(qū)動,由STM32F407結(jié)合迷宮機(jī)器人檢測到的外部信息發(fā)布指令給L6207,L6207生成兩路PWM波信號控制直流電機(jī)X、電機(jī)Y,完成兩軸伺服系統(tǒng)的同步控制,經(jīng)驅(qū)動橋驅(qū)動迷宮機(jī)器人到達(dá)指定位置,完成迷宮機(jī)器人的轉(zhuǎn)彎、直走、加減速等動作。L6207電機(jī)驅(qū)動電路如圖5所示。
圖5 L6207電機(jī)驅(qū)動電路
2.1 主程序流程
一個(gè)完整的迷宮機(jī)器人既要有硬件設(shè)備也要有軟件。有好的軟件支持才能體現(xiàn)迷宮機(jī)器人的價(jià)值,才能發(fā)揮本身的意義。
軟件設(shè)計(jì)包括迷宮搜索、方向位置判斷、墻壁信息存儲以及尋優(yōu)路徑等功能。迷宮機(jī)器人行走過程主要包括等待階段、搜索階段以及沖刺階段[10]。主程序流程圖如圖6所示。
圖6 主程序流程圖
2.2 行走原理
迷宮機(jī)器人從起點(diǎn)出發(fā),在迷宮中將途中所有岔口探測一遍后,進(jìn)入目的地,并自動將所有單元格資料整理,存儲有效方位信息。再計(jì)算出最佳路徑,直接返回原點(diǎn),做直接沖刺,從而實(shí)現(xiàn)迷宮機(jī)器人快速高效地到達(dá)迷宮的終點(diǎn)[11]。
行走流程圖如圖7所示。
圖7 行走流程圖
2.3 搜索算法設(shè)計(jì)
本文采用中心算法與洪水算法(Flood-Fill Algorithm)相結(jié)合的方法進(jìn)行搜索算法設(shè)計(jì)。由中心算法搜索出局部最優(yōu)路徑,洪水算法在此基礎(chǔ)上進(jìn)行全局最優(yōu)路徑規(guī)劃。
迷宮機(jī)器人處在迷宮宮格中,當(dāng)檢測到多個(gè)出口時(shí),迷宮機(jī)器人就要選擇朝哪個(gè)方向行走。像左手法則、右手法則等簡單的搜索算法,用時(shí)較長,有時(shí)還不能完成迷宮搜索[12]。本著簡單有效的原則,采用的是通過右手法則、左手法則、中右法則、中左法則按照一定的規(guī)則組合的中心算法來搜索迷宮[7]。
右手法則:首先檢測迷宮機(jī)器人右邊是否可行,可行則右轉(zhuǎn),否則檢測前面是否可行,可行則不轉(zhuǎn)向,否則左轉(zhuǎn)。
左手法則:首先檢測迷宮機(jī)器人左邊是否可行,可行則左轉(zhuǎn),否則檢測前面是否可行,可行則不轉(zhuǎn)向,否則右轉(zhuǎn)。
中右法則:首先檢測迷宮機(jī)器人前面是否可行,可行則不轉(zhuǎn)向,否則檢測右邊是否可行,可行則右轉(zhuǎn),否則左轉(zhuǎn)。
中左法則:首先檢測迷宮機(jī)器人前面是否可行,可行則不轉(zhuǎn)向,否則檢測左邊是否可行,可行則左轉(zhuǎn),否則右轉(zhuǎn)[7]。
中心算法把迷宮分為四個(gè)區(qū)域,迷宮機(jī)器人在每個(gè)區(qū)域根據(jù)當(dāng)前所在位置進(jìn)行選擇行走策略。中心算法始終以趨向中心最近的方向前進(jìn),中心算法搜索策略如圖8所示。
圖8 中心算法搜索策略
中心算法可以達(dá)到最終搜索迷宮的目的,也能完成迷宮的路徑規(guī)劃,但中心算法規(guī)劃的路徑是局部最優(yōu)路徑,不一定是全局最優(yōu)路徑。
根據(jù)設(shè)計(jì)原則,通過中心算法來搜索迷宮,引入洪水算法進(jìn)行迷宮最優(yōu)路徑規(guī)劃。洪水算法的基本概念就好像洪水流動一樣。假設(shè)迷宮的終點(diǎn)的距離值是0,每流過一個(gè)迷宮格相對于前一個(gè)迷宮格到終點(diǎn)的距離就加1,利用這個(gè)想法來計(jì)算每一個(gè)迷宮格與迷宮終點(diǎn)的距離值,持續(xù)到計(jì)算出迷宮起點(diǎn)與迷宮終點(diǎn)的距離值為止。根據(jù)每個(gè)迷宮格與終點(diǎn)的距離值,這樣就構(gòu)成了多組由大到小路徑排列步數(shù),比較大小就能找出一條最短的迷宮路徑[13]。洪水算法用來從目的地到起點(diǎn)的沖刺最優(yōu)路徑算法,機(jī)器人將嘗試通過那些未知的宮格并加以更新迷宮信息[14]。當(dāng)機(jī)器人從目標(biāo)點(diǎn)返回起點(diǎn)的過程中,算法將計(jì)算迷宮信息,從而執(zhí)行一個(gè)最優(yōu)的路線,完成從目標(biāo)點(diǎn)到起點(diǎn)的最優(yōu)搜索,并進(jìn)入返程探索模式,這些位置的宮格墻將被當(dāng)作有墻來求解。因此,迷宮機(jī)器人可以直接去目標(biāo),而不會陷入“死胡同”,有效地節(jié)約了迷宮的搜索時(shí)間。
3.1 迷宮設(shè)計(jì)實(shí)物
設(shè)計(jì)的迷宮機(jī)器人實(shí)物如圖9所示,機(jī)器人長90 mm、寬50 mm。按迷宮每格180 mm計(jì)算,最大沖刺速度可達(dá)每秒11格。
圖9 迷宮機(jī)器人實(shí)物圖
3.2 仿真及分析
為了驗(yàn)證本次設(shè)計(jì)的可行性與時(shí)效性,設(shè)計(jì)了16×16的迷宮機(jī)器人搜索地圖(圖10(a))。對中心算法與本文算法進(jìn)行仿真,仿真結(jié)果如圖10(b)~圖10(d)所示。
整個(gè)試驗(yàn)過程是從起點(diǎn)到目標(biāo)點(diǎn)的搜索運(yùn)行、返回到起點(diǎn)、以及沖刺到終點(diǎn)的整個(gè)過程中的搜索步數(shù)、搜索轉(zhuǎn)彎次數(shù)、沖刺步數(shù)以及沖刺轉(zhuǎn)彎次數(shù)對比[15]。試驗(yàn)結(jié)果見表1。
圖10 算法仿真圖
表1 搜索算法結(jié)果對比
從表1數(shù)據(jù)知,由于在沖刺階段采用了洪水算法進(jìn)行路徑規(guī)劃,相對于中心算法來說,本文算法具有更為優(yōu)秀的路徑規(guī)劃能力,能夠更快速地完成迷宮的沖刺,有效縮短了迷宮搜索沖刺時(shí)間。
本文介紹了一種基于STM32F407微處理器和L6207芯片組成的雙核處理器的迷宮機(jī)器人系統(tǒng)設(shè)計(jì),克服了國內(nèi)單一處理器模式的不足。利用L6207芯片處理兩軸電機(jī)伺服工作,減輕了單一處理器的負(fù)擔(dān),有利于系統(tǒng)的穩(wěn)定性和快速性。在此基礎(chǔ)上研究了基于中心算法與洪水填充算法相結(jié)合的迷宮搜索算法,利用中心算法進(jìn)行迷宮搜索,克服了低級算法搜索時(shí)間慢或不能達(dá)到搜索目的的算法,節(jié)約了搜索時(shí)間。當(dāng)搜索完成后利用洪水填充算法,進(jìn)行返回起點(diǎn)搜索,直接按照全局最優(yōu)路徑直達(dá)“目標(biāo)”,有效地節(jié)約了迷宮的沖刺時(shí)間。仿真結(jié)果表明,在搜索沖刺時(shí)間和機(jī)器人性能上都得到了一定的提升。
[1] 劉世澤.基于嵌入式系統(tǒng)的迷宮機(jī)器人路徑規(guī)劃算法研究[D].西安:西安建筑科技大學(xué),2013.
[2] 張嘉夫,李迅波,余岷,等.基于ARM 的走迷宮電腦鼠的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2013,26(11):136-138.
[3] 李龍,林桂泉.基于AVR ATmega128的迷宮電腦鼠軟件設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識與技術(shù),2014,10(11):2660-2663.
[4] 楊晶菁,張浩.基于AVR單片機(jī)的電腦鼠硬件設(shè)計(jì)與實(shí)現(xiàn)[J].福州大學(xué)學(xué)報(bào):自然科學(xué)版,2014,42(6):876-882.
[5] ZHANG Rongrong,YANG Ming,WANG Fang.Design and implement of the complex maze shortest path simulation system based on improved ant colony optimization algorithm[C]//Proceeding of 2014 Fourth International Conference on Instrumentation and Measurement,Computer,Communication and Control, Harbin,September 18-20,2014:779-783.
[6] 劉世澤,段中興.基于人工神經(jīng)網(wǎng)絡(luò)的迷宮路徑策略問題研究[J].工業(yè)控制計(jì)算機(jī),2013,26(6):104-105.
[7] 賀少波,孫克輝.基于向心法則的電腦鼠走迷宮算法設(shè)計(jì)與優(yōu)化[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(9):79-82.
[8] 郭長生,龔濤,李龍.一種電腦鼠走迷宮搜索算法[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2013,41(1):388-391.
[9] 宮兆儉.新型電腦鼠的設(shè)計(jì)開發(fā)[D].青島:中國海洋大學(xué),2013.
[10] 仇之,李昂,張文錦.基于ARM和FPGA的新型電腦鼠系統(tǒng)設(shè)計(jì)[J].儀器儀表與分析監(jiān)測,2013(2):19-21.
[11] 付秀偉,鄒剛.電腦鼠走迷宮算法仿真設(shè)計(jì)[J].吉林化工學(xué)院學(xué)報(bào),2013,30(11):85-88.
[12] 王磊.基于IEEE電腦鼠走迷宮競賽的迷宮算法分析與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2013.
[13] LUTVICA K,VELAGIC J,KADIC N,et al.Remote path planning and motion control of mobile robot within indoor maze environment[C]//Proceeding of 2014 IEEE International Symposium on Intelligent Control,Juan Les Pins,France,October 8-10,2014:1596-1601.
[14] HUANG H H,SU J H,LEE C S.A contest-oriented project for learning intelligent mobile robots[J].IEEE Transactions on Education,2013,56(1):88-97.
[15] 趙新華,白峻汀,馬忠麗.VB中電腦鼠微型機(jī)器人走迷宮模擬仿真[J].智能系統(tǒng)學(xué)報(bào),2014,9(4):485-490.
Design of a New Maze Robot System Based on STM32F407
FANXiancheng,SUNXinzhu,FANGWen,PENGCheng
(College of Electrical Engineering, Anhui Polytechnic University, Wuhu 241000, China)
According to the maze requirement for maze robot, a kind of system based on STM32F407 and L6207 dual four wheel maze robot is designed and implemented. In the process of solving mazes, frequent starting and breaking of the maze robot will increase burden on the single micro controller, and hence the introduction of chip L6207 will greatly reduce the load of STM32F407. The hardware was reset, and the design of the main module was detailed, which consisted of the micro controller, infrared sensor, power module, motor control module etc. A new algorithm for maze robots to solve mazes by combining center algorithm with the flood algorithm was used for software module. This algorithm is simple, modularized and easy to be transplanted, and greatly improves the performance of the maze robots in the timeliness and stability.
maze robot; STM32F407; central algorithm; flood algorithm
2015-12-21
安徽省高校自然科學(xué)研究重大項(xiàng)目(KJ2014ZD04)
范縣成(1990-),男,安徽阜陽人,碩士生,主要從事運(yùn)動控制系統(tǒng)方面的研究,(E-mail)2382493123@qq.com
1673-1549(2016)01-0048-06
10.11863/j.suse.2016.01.11
TP242.6
A