文章快速检索 高级检索
VB中电脑鼠微型机器人走迷宫模拟仿真

Simulation of a micromouse micro-robot walking inside a maze on the basis of VB
ZHAO Xinhua, BAI Junting, MA Zhongli
College of Automation, Harbin Engineering University, Harbin 150001, China
Abstract: In order to increase the efficiency of the micromouse micro-maze robot development personnel for developing an advanced control method and path optimization algorithm, and save development costs with the "IEEE International Micromouse competition" as the background, by applying the visualized program development tool oriented to objects, Visual Basic(VB), a set of simulation software for a micromouse walking inside a maze was developed. In addition, the realization algorithm of the contour table was improved. This software can generate random mazes, display traveling states and actual paths for the micromouse. The software can also realize the operation and display of the contour lines, design, develop and demonstrate the maze search algorithm, and compare the efficiencies of several search algorithms for the purpose of obtaining the optimum optimization algorithm. The simulation software is able to provide a demonstration platform for the actual competition team, and improve the work efficiency of the hardware development.
Key words: micromouse     visual basic     maze     simulation     microrobot

1 迷宫的建立与设计

IEEE标准迷宫由16×16个的正方形单元所组成。迷宫的起始单元可选设在迷宫4个角落之中的任何一个。起始单元必须三面有隔墙，只留1个出口。例如，如果没有隔墙的出口为“北”时，那么迷宫的外墙就构成位于“东”、“西”和“南”的隔墙。电脑鼠竞赛的终点设在迷宫中央，由4个正方形单元构成。

1.1 迷宫的建立

H(0)=“1111111011111100”

H(14)=“0101000001110101”

For j= 2 To 16

For i= 1 To 16

B(i,j)= Mid( H(j - 2), i, 1)

Next i

Next j

 图 1 IEEE标准迷宫 Fig. 1 IEEE standard maze
1.2 随机迷宫的设计

VB部分程序如下：

Do

If当前单元周围的单元有未访问过 then

A:Suiji=Int(Rnd * 4)

Select Case Suiji

Case 0

If当前单元右单元有未访问过 then

移动到右单元

指针数+1

右单元访问过

Else

Goto A

End if

…‘另3个方向进行判断

End Select

Else

指针数-1‘返回上一单元

End if

Loop until 指针=0

 图 2 随机迷宫示意图 Fig. 2 The diagram of random maze
1.3 迷宫的显示

2 电脑鼠走迷宫的VB实现

VB是一套可视化的具有面向对象的程序开发工具，是一种非常方便的Windows应用程序开发平台。它可以实现Windows的绝大多数功能(包括大型游戏软件的开发)，最大的优势就是可快速创建用户界面，把复杂而完善的Windows操作系统的使用融于易于学习和应用的高级程序设计语言中，使得它具有易学易懂易用的特点，因而受到初学者和广大工程技术开发人员的普遍喜欢。

2.1 电脑鼠的显示

2.2 电脑鼠的移动

2.2.1 电脑鼠主程序的实现

 图 3 主程序流程图 Fig. 3 Flow chart of the main program

1)迷宫子程序。在没有预知迷宫路径的情况下，电脑鼠必须优先探索迷宫中的所有单元格，直到抵达终点为止。为了完成这个功能，电脑鼠要随时知道自己的位置及姿态，同时要记录所有访问过的方块四周是否有墙壁，并且在搜索过程中尽量避免重复搜索它搜索过的地方[12]

2)路径优化子程序。通过对迷宫环境进行搜索检测，数组自动记录迷宫地图信息以及迷宫中每一单元格到起始点的路程。运行最优路径子程序，就能找到一条从起点到终点的最短路径。

3)冲刺子程序。此程序可使电脑鼠循着最短路径从起点以最快的速度冲到终点。

4)路口检测子程序。由安装在正前、左前、右前方向的3个红外发射管发射信号完成远距检测，根据传感器的读入值，判断迷宫中的障碍信息、路口信息。

5)行走控制子程序。根据左右两侧红外传感器接收的反馈信号来判断电脑鼠偏离迷宫巷道中轴线的程度，通过调整步进电机工作脉冲使某一边电机减速来修正电脑鼠的行驶方向，使其基本行走在中轴线附近。

6)路口控制子程序。当电脑鼠检测到岔路口，且需要转弯时，调用该子程序。应用VB进行仿真模拟时，可在窗口增加一个Timer控件，其Value值用HScroll控件的Value值来表示，以方便观察电脑鼠的走向。软件运行时，实时检测电脑鼠的位置，根据其不同的状态，进行不同的控制，其中，状态的变化可用Select函数进行选择。

2.3 迷宫搜索算法的实现

VB部分程序代码如下：

Public Sub Chalu()

可前进方向数=0

If 当前迷宫单元上方满足搜索要求

Then

可前进方向数+1

End If

…‘判断其余各个方向可前进的方向数

If可前进方向数>1

Then

可前进方向数指针+1

保存当前坐标

End If

End Sub

2.4 等高表的实现

VB部分程序代码如下：

Public Function mapEdit(ByVal cx As Integer, ByVal cy As Integer) As String

If上方无挡板And上方等高值大1

Then

上方等高值=当前等高值+1

Call mapEdit(上方单元坐标)

End If

If … then‘其他三方向的等高表制作

End if

End Function

 图 4 等高表路径规划及加权等高表 Fig. 4 The path planning of the contour line and the weighting contour line
3 软件仿真测试

VB实现的电脑鼠走迷宫模拟软件最终效果图如5所示，运用右手法则对迷宫进行全搜索，步数为400步，转弯244次，掉头27次；最短路径步数为59步，转弯43次。经测试，制作的模拟仿真软件可以很好地模拟电脑鼠走迷宫竞赛，运行稳定。

 图 6 改进的迷宫搜索算法对比 Fig. 6 The comparison of the maze search algorithm
 图 5 软件最终效果图(全搜索) Fig. 5 The final picture of the soft(full search)

 搜索算法 搜索阶段 最短路径 搜索空间/% 步数 转弯 掉头 步数 转弯 全搜索 400 244 27 59 43 100 死胡同排除 386 238 22 59 43 97.7 死区域排除 370 234 22 59 43 94.1 死岔路口排除 394 238 27 59 43 100 死区域结合死岔路口排除 346 216 19 59 43 94.1

5 结束语

 [1] XUE Yan. Fuzzy PID control algorithm research of the micromouse[D]. Chang'an University, 2010: 12-15. [2] 周亦敏, 傅俊华. 基于模糊控制的电脑鼠行进速度的控制[J]. 微计算机信息 , 2010, 26 (5) : 79-81 ZHOU Yimin, FU Junhua. Speed control of miciro-mouse based on fuzzy control[J]. Micro Computer Information , 2010, 26 (5) : 79-81 [3] 孙舟, 雷斌. 电脑鼠走迷宫转弯算法的改进与实现[J]. 电子元器件应用 , 2011, 13 (1) : 54-57 SUN Zhou, LEI Bin. Improvement and implementation of the turn algorithm of the micro mouse maze[J]. Electronic Component & Device Applications , 2011, 13 (1) : 54-57 [4] 温如春, 许樱, 王祖麟. 改进蚁群算法在迷宫路径规划问题中的研究和应用[J]. 江西理工大学学报 , 2010, 31 (2) : 26-28 WEN ruchun, XU Ying, WANG Zulin. Study and application on Maze path planning based on improved ant colony algorithm[J]. Journal of Jiangxi University of Science and Technology , 2010, 31 (2) : 26-28 [5] 康冰, 梁艳磊. 基于机器人迷宫搜索中心算法的优化[J]. 长春师范学院学报:自然科学版 , 2011, 30 (4) : 25-29 KANG Bing, LIANG Yanlei. The optimization of central algorithm based on robot maze searching[J]. Journal of Changchun Normal University: Natural science , 2011, 30 (4) : 25-29 [6] 贺少波, 孙克辉. 基于向心法则的电脑鼠走迷宫算法设计与优化[J]. 计算机系统与应用 , 2012, 21 (9) : 79-82 HE Shaobo, SUN Kehui. Design and optimization of micro-mouse solving the maze algorithm based on central method[J]. Computer Systems and Applications , 2012, 21 (9) : 79-82 [7] 屈传坤, 徐国政, 崔建伟, 等. 基于DSP的电脑鼠系统设计[J]. 电器电子教学学报 , 2008, 30 (4) : 32-34 QU Chuankun, XU Guozheng, CUI Jianwei, et al. Design of a micro-mouse system based on DSP[J]. Journal of Electrical and Electronic Education , 2008, 30 (4) : 32-34 [8] 夏炎. 基于ARM7的电脑鼠的设计与实现[J]. 煤炭技术 , 2010, 29 (12) : 188-189 XIA Yan. Design and implementation of micromouse based on ARM7[J]. Coal Technology , 2010, 29 (12) : 188-189 [9] 方金亮, 谈英姿, 周怡君. 基于ARM的IEEE标准电脑鼠研究与实现[J]. 机械制造与自动化 , 2008, 37 (5) : 99-101 FANGJinliang, TAN Yingzi, ZHOU Yijun. Micro mouse based on ARM of IEEE standard[J]. Machine Building and Automation , 2008, 37 (5) : 99-101 [10] 杜凯, 朱泽民. 基于图的深度遍历产生随机迷宫的算法研究[J]. 黄冈师范学院学报 , 2008, 28 : 68-71 DU Kai, ZHU Zemin. Algorithm research based on traversal depth for the random maze[J]. Journal of Huanggang Normal University , 2008, 28 : 68-71 [11] 朱姗, 傅或哲, 吴忠丽, 等. 一种走迷宫电脑鼠的设计与实现[J]. 微型电脑应用 , 2008, 24 (9) : 59-62 ZHU SAN, FU Yuzhe, WU Zhongli, et al. Design and realization of micro mouse maze[J]. Microcomputer Applications , 2008, 24 (9) : 59-62 [12] 蒋雄, 任化龙, 马忠丽. 基于ARM的电脑鼠走迷宫的研究[J]. 现代电子技术 , 2011, 34 (8) : 14-16 JIANG Xiong, REN Hualong, MA Zhongli. Research on how ARM-based micromouse gets out of maze[J]. Modern Electronics Technique , 2011, 34 (8) : 14-16
DOI: 10.3969/j.issn.1673-4785.201310035

0

#### 文章信息

ZHAO Xinhua, BAI Junting, MA Zhongli
VB中电脑鼠微型机器人走迷宫模拟仿真
Simulation of a micromouse micro-robot walking inside a maze on the basis of VB

CAAI Transactions on Intelligent Systems, 2014, 9(2): 485-490
http://dx.doi.org/10.3969/j.issn.1673-4785.201310035