王润民, 刘占文, 杨 澜, 惠 飞
(长安大学 a.现代工程训练中心; b.信息工程学院; c.陕西省道路交通智能检测与 装备工程技术研究中心,陕西 西安 710064)
工程实践教学是部分高校针对我国现行教育体制下的大学生动手实践能力较弱的问题,在传统理论教学的基础上增加的实践性教学环节。该环节通过建立一整套完整的工程意识和工程训练培养体系,使大学工科学生参与工程实践、形成工程思维、获得工程经验,从而培养他们的创新能力、工程实践能力和社会适应能力[1]。然而我国高等教育中现有的工程实践教学体系存在着很多不足:工程实践教学环节多从教学工厂或金工实习发展转变而来,教学内容多局限于金工实习、工程材料、机械制造等传统基础实践课程,电气信息类等现代实践内容的教学能力较为薄弱;传统实践教学多以教师教学为中心,缺乏与工程、社会应用之间的交流互动;教学实践局限于单一学科门类,跨学科、跨学术领域间的协同教学能力不足[2]。
为了解决上述问题,我校在现有的工程训练中心的基础上增加了现代电子电气信息类的教学实训区,包括机器人设计开发、电工技能、可编程控制器、PCB制版、电子装配、计算机辅助设计及计算机辅助制造等工程实训室,并以此为依托开办了我校的“IEEE电脑鼠走迷宫竞赛”、“中国机器人创新大赛”、“全国电子设计大赛”、“挑战杯”全国大学生系列科技学术竞赛等实践竞赛项目。从而提高了我校现代工程实践环节的教学能力,促进了现代工程实践与传统工程训练的交流融合。
论文以我校全国IEEE“电脑鼠”走迷宫竞赛中的IEEE标准电脑鼠的设计与制作为例,从IEEE标准电脑鼠的软硬件开发、传感器及微控制器系统集成和算法设计等内容,阐述了学生在“IEEE标准电脑鼠设计与实作”这一工程实践课程中需要学习的工程实践技能,并通过长时间的实践教学总结了该工程实践课程的意义。
电脑鼠(Micromouse)是使用微控制器、传感器、电机以及机械构件所组成的一种智能自主移动的机电一体化机器人。电脑鼠可以在不同的未知迷宫中自主的搜索并记忆迷宫墙壁的存在情况,在找到迷宫终点后,电脑鼠返回迷宫起点并通过算法分析迷宫内部结构得到起点到终点的最短路径,然后根据最短路径的特性规划出最快的运动方式,由起点快速的移动到终点。电脑鼠的性能通过完成上述过程所耗费的时间衡量[3]。
自1979年以来,每年国际各地都会定期举办“电脑鼠走迷宫”的竞赛,最新的比赛规则是2006年国际电工和电子工程学会(IEEE)制定的电脑鼠走迷宫竞赛规则。如图1(a)所示,规则规定电脑鼠的迷宫由16×16个的18 cm×18 cm大小的迷宫方格组成,迷宫墙壁为白色,表面涂有反射红外线的涂料,迷宫地面为黑色,表面涂有吸收红外线的涂料;迷宫的起点位于迷宫四个角的一个,但必须三面有迷宫墙;迷宫的终点由迷宫中心的四个方格组成,内部无迷宫墙壁[4]。
一个完整的电脑鼠包含了微处理器、电机、传感器、车身机械结构、驱动电路、电池和车轮等硬件和负责控制电脑鼠正常运行的软件程序,如图1(b)所示,其开发实作过程融合了机械、机电、电子、传感、软件和智能控制等多领域的科技知识,非常适合作为相关学科领域综合性工程实践教学的教具[5]。
(a) IEEE标准迷宫
(b) IEEE电脑鼠
一个电脑鼠的开发包括了硬件设计、软件设计和算法设计等部分,而且每一部分的设计必须考虑其他部分的设计内容,因此设计一种性能优良的电脑鼠实质是采用软硬件协同设计的方法构造一种嵌入式系统的过程。
2.1.1硬件选型及原理分析
在进行电脑鼠具体硬件设计之前,项目小组成员首先需要根据所设计的电脑鼠的功能需求和设计目标按其所负责的方面分别进行各部分硬件种类及规格的选型和使用原理的分析,包括微处理器、传感器、电机、电源等,一般需要提供多种选型方案,并在实际设计过程中根据整体设计方案作出调整[6]。
电脑鼠最早是纯机械式的,由弹簧驱动,随着电子技术特别是微处理技术的发展,越来越多种类的微处理器被应用于现代电脑鼠中。微处理器作为执行控制部件和算术逻辑部件控制电脑鼠的运动和对迷宫的求解。学生必须首先考察所设计的电脑鼠对微处理性能的要求,如代码和数据的存储、模拟和数字传感器信号的接收处理、控制和驱动信号的发送、电平标准等,然后选择合适的微处理器,如ARM、DSP、MCU等[7]。
电脑鼠还需要用于检测周围环境和自身运行状态各种不同种类的传感器,如用于检测迷宫内部墙壁信息及其在某一迷宫格所处位置的红外传感器或超声波传感器,用于检测自身行走距离的旋转光电编码器和用于检测转弯车体运行姿态的陀螺仪等。学生必须查阅传感器手册同时使用各种仪器(如数字示波器、信号发生器等)通过一系列实验来研究测试各传感器的精度、分辨率、漂移、灵敏度、线性度和响应能力等,如通过确定不同种类的红外传感器因输出饱和而产生的“死区”的消除或避免方法以及其自身的感测敏感性,从而提出红外传感器的合理选型和布置方式。
电机是电脑鼠的运动控制部件,学生需要学习有刷直流电机、无刷直流电机、步进电机等不同类型电机的使用特性并考察其优缺点,并估计其实际应用对电脑鼠重量、能耗及运动控制等方面带来的的影响。然后针对选择的电机分别学习其驱动原理,如直流电机通常采用H桥电路和脉冲宽度调制(PWM)的方法进行控制。
2.1.2机械结构的设计
机械结构的设计是电脑鼠整体设计中较为重要的一部分,其设计结果影响到电脑鼠其他部分的设计以至其实际运行性能。但由于该部分的设计耗费时间长且难度较大因此最容易被设计者轻视,导致设计完成的电脑鼠结构不合理而达不到理想的运动效果。一般说来电脑鼠的整体机械结构的设计需要尽量遵从以下要求:电脑鼠的尺寸要尽量小(至少满足比赛规则规定的尺寸要求),重量要尽量轻,以降低其车身重心、运动惯性和着地摩擦力,从而进一步地降低其运动能量消耗和电机发热量,提高复杂运动状态下的稳定性和持续性。
除此之外设计者还需要根据各组成部件的使用特性,预估其使用目的,并确定其最优布局方式,例如采用红外传感器的电脑鼠在每进入一个迷宫格需要使用红外传感器检测其左、右、前三个方向是否存在迷宫墙壁,在运行过程中还要使用红外传感器检测车体与左右墙壁距离,防止碰触迷宫墙壁,因此红外传感器一般布置于电脑鼠车体前端边缘,但红外传感器存在“死区”问题,所以红外传感器的布置距离迷宫墙壁要尽量远,比如朝前向的红外传感器一般布置在车轮的前方而不是车体最前端。图2为几种种常见的红外传感器布置方式,其中朝向前方的红外传感器在迷宫搜索过程中用于检测电脑鼠前方是否有迷宫墙壁;左右水平朝向的传感器用于检测电脑鼠左右两侧是否存在迷宫墙壁;左右45度朝向的传感器用于矫正电脑鼠运行姿态防止碰撞。
(a) 6传感器布置 (b) 4传感器布置 (c) 5传感器布置
图2 常见电脑鼠红外传感器布置
电脑鼠机械结构的设计需要项目小组通过CAD/CAM、SolidWorks等工具软件进行电脑鼠整体机械结构和具体零部件(如车架、车轴、齿轮等)的建模、造型、仿真,并通过数控车床或传统机械加工设备进行必要零部件的加工制作,最终组装成一体化的电脑鼠。如图3(a)所示为台湾龙华科技大学电子工程研究所通过SolidWorks软件建模的电脑鼠整体机械结构图,图3(b)为参照该结构图实作的电脑鼠。
(a) 电脑鼠机械结构图
(b) 电脑鼠实作
2.1.3电路设计
硬件电路连接电脑鼠中的电源、微控制器、传感器、电机等,是各电子部件之间能源与控制信号传输的纽带。在经过硬件选型分析和完成电脑鼠机械结构的初步设计后,项目小组成员需要通过altium designer、Cadende spb等软件设计各部分的电路图并最终使用线路板雕刻机、显影机、镀锡机等设备进行PCB板的制作。一般一款电脑鼠中应包含电源电路、微控制器控制电路、传感器驱动电路、电机驱动电路及调试电路、按键电路等部分。
在电路设计过程中,学生必须首先掌握相关电子部件的电气特性和工作原理,然后根据相关特性和电脑鼠各部件实际需求设计合适有效的电路,并通过仿真验证各部分电路的有效性,最终设计出完整的电路图。例如直流电机的运转一般需要时钟产生的PWM信号驱动,PWM信号频率的高低决定了直流电机的运转速度,但其正反转的控制则需要搭建H桥电路完成,如图4所示,H桥电路采用4个三极管连接电机,当Q1和Q4导通时,电流从电源正极经Q1从左至右穿过电机,经Q4回到电源负极,从而驱动电机顺时针转动,同理,当Q2和Q3导通时,电路会驱动电机逆时针转动。学生应在详细分析此原理的基础上,设计合理的电脑鼠H桥电路,完成电机驱动电路的设计。
(a) H桥电路 (b) 正向导通 (c) 反向导通
图4 H桥电路原理示意图
2.2.1运动状态规划
算法设计的目的是根据不同的情况为电脑鼠提供稳定的控制方法,在算法设计之前,为了精确控制电脑鼠运行,学生需要在将电脑鼠的运动状态细分的基础上进行路径规划。电脑鼠的运动一般分为迷宫资料未知的迷宫搜索和迷宫资料已知的迷宫冲刺两个过程,迷宫搜索过程又可分为直行、90度弧形转和180度回转三种状态,而迷宫冲刺过程除了包含以上三种运动状态外,还需要项目小组算法设计成员通过分析所设计的电脑鼠自身能力,归纳总结竞赛迷宫的内部路径状况,然后设计电脑鼠的具体运动状态。如图5所示,一种典型的电脑鼠设计将迷宫冲刺过程细分为八种运动状态:直行、90°弧形转、180°回转、45°弧形转、斜线90°弧形转、135°弧形转、斜线直走和180°弧形转。
图5 一种电脑鼠运动状态规划
2.2.2运动控制策略
电脑鼠精确的运动状态规划依赖于对外界环境信息准确识别的基础上的精确控制。然而电脑鼠的每一个电机及其驱动电路并不完全相同,因此电脑鼠左右两轮的运动特性并非完全吻合,且电脑鼠在运动过程中始终存在着不可估计的运动误差,所以电脑鼠的实际运动状况与理想预期间存在较大差距,从电脑鼠运动方向上看,主要包括纵向上的误差、横向上的误差和朝向角度上的误差,如图6所示。因此项目小组必须根据所开发的电脑鼠硬件为电脑鼠运行的各个过程设计完善的运动控制策略。
图6 电脑鼠运动误差示意图
闭环控制是精确的运动控制过程中常采用的方法,红外传感器、光电编码器和陀螺仪均可为闭环控制策略提供硬件支持[8]。以图3(a)中的红外传感器布置方式为例,可以为在搜索过程中的电脑鼠设计如下的运动控制策略:如图7(a)所示,在刚进入一个迷宫格时,电脑鼠通过朝前的一对传感器检测该迷宫格前方是否有墙壁,如有则减速停止后反转180度继续前进;否则进入迷宫格,并用斜方向的传感器修正电脑鼠在迷宫格内的横向上和朝向角度误差,如图7(b);修正完成后控制电机直行并使用水平方向的传感器校正横向上的误差, 如图7(c);在该迷宫格的尽头,使用光电编码器校正纵向上的误差,然后通过左右斜方向的传感器判断下一格迷宫左右是否有墙壁,如图7(d),如果均有就重复以上几步过程;如果没有且需要转弯时,转弯结束后通过陀螺仪校正转弯误差;如果不需要转弯则保持电脑鼠直行,直到到达下一格迷宫。但如果连续几个迷宫格左右均没有墙壁,则通过朝前的传感器来纠正电脑鼠左右位置和朝向偏差,如图7(e)。
(a)
(b)
(c)
(d)
(e)
2.2.3迷宫求解算法
为了保证电脑鼠能够在未知的迷宫中尽快地找到从迷宫起点到迷宫终点的最短路径,项目小组成员需要深入考虑电脑鼠迷宫的求解问题,并在分析传统的电脑鼠迷宫求解算法和其它领域中单源最短路径求解算法在电脑鼠迷宫求解问题的适应性基础上,改进现有的迷宫求解算法或者设计新的迷宫求解算法[9]。
迷宫求解算法一般分为两个部分:迷宫搜索算法和最短路径求解算法,其中如沿壁法、左手法、右手法、中左法、中右法、向心法等算法仅具有迷宫搜索的功能,在搜索完成后还需要根据相应算法求解最短路径,而洪水填充法、Djikstra算法、A*算法、粒子群算法、遗传算法等同时具有迷宫搜索和最短路径求解的功能[10-11]。
然而相当多的迷宫求解算法执行时存在较多问题,如洪水填充法执行时系统资源消耗量较大、执行时间较长且所求解路径不一定为最快路径,因此设计者必须根据所设计的电脑鼠的系统资源,综合考虑迷宫求解算法和运动控制策略,优化迷宫信息搜索和方向选择等过程的先后顺序,精简算法中的冗余步骤,改进算法的最短路径求解策略,从而提高算法的执行效率。
电脑鼠的软件设计需要将包括运动控制策略和迷宫求解算法在内的电脑鼠的整个运行过程根据微控制器的特性通过高级编程语言实现[12]。在编程高级语言代码之前,项目小组首先需要针对电脑鼠各硬件部件的特性为其开发硬件设备驱动程序,为高级语言编写的应用程序提供一系列操作各硬件设备的接口;然后需要绘制电脑鼠运动控制策略和迷宫求解算法的流程图,并根据流程图采用编程工具(如Keil C、IAR Embedded Workbench等)通过高级语言(如C语言)编程实现;最后通过编译器将编程实现的高级编程语言编译成微控制器可以识别的机器语言,并将其烧写到电脑鼠的存储部件中,实现电脑鼠的自动运行。
在电脑鼠软件设计的过程中,项目小组成员必须学会使用仿真工具对所设计的软件进行仿真,这使得不需要搭建复杂的硬件环境即可完成对不同控制方法的测试,降低了开发成本,加速了开发进程。常见的仿真工具如MathWorks公司的Matlab/Simulink软件,该工具可针对电脑鼠的运动系统进行模拟、建模和分析[13-14]。例如设计者可以通过建立一个电机的运动控制Simulink模型,并在其中加入速度估测系统或者将速度PI控制器替换为位置PD控制器来检测电脑鼠的控制性能;或者通过将轨迹计算移动方程式构建为Simulink模型检测电脑鼠在各种运动状态下的运行轨迹并据此提出修正策略;或通过Matlab中的图形使用者界面发展环境与程序,以图形的方式直观地检测迷宫求解算法的运行效率[15]。
我中心自2011年开始,在以现代电子电气信息教学实训区和传统工艺实训区以及校内其它实验室或研究机构的教学设施和师资的基础上,通过将机械、电子、算法、软件等不同学科专业的学生组合成一个项目小组,在多名不同领域授课教师的综合指导下,试点IEEE标准电脑鼠的设计与实作这一综合性工程实践课程,到目前为止获得了良好的教学效果,达到了预期教学目标。
在电脑鼠的设计制作工程实践过程中,学生作为项目小组成员发现了很多传统课堂上未传授的新问题,学习了很多技术知识和问题解决方法,获得了很多实践技能,具体包括机械、电子、软件、控制等基础知识的实践应用能力,实验的设计及操作和数据分析的能力,系统性、整体性设计的能力,发现、分析、处理工程技术问题的能力,团队合作与交流的能力,技术技能和现代工程工具在工程实践中的应用能力,自主学习和创新能力,时间分配管理的能力等。
通过该实践课程将原有的单一和集中式的授课方式转变为综合和发散式的授课方式,减少了指导教师对同一课程的教学重复量,增加了课程的教学课时,提高了教学效率。同时以项目竞赛的形式替代传统理论色彩浓厚的实践教学方式,寓教于乐,提高了工程实践教学的实践性和学生的学习兴趣。
随着现代科技的迅速发展,我国现行教育体制下的传统工程实践教学内容和教学方法已不能满足现代高层次工程技术人才的培养要求。针对我国目前工程实践教学普遍存在教学能力不足的问题,我校现代工程训练中心近年来参考国外工科实践教学模式试点开设了“IEEE标准电脑鼠的设计与制作”这一工程实践课程。论文以该课程为例,从IEEE标准电脑鼠的设计开发深入阐述了学生在该工程实践课程中需要学习的工程实践技能。长时间的实践教学表明,工程实践课程“IEEE标准电脑鼠的设计与制作”使学生以项目小组的形式设计制作电脑鼠,并参与到实践竞赛当中,不仅可以提升教师教学效率、提高教学质量,还可以提高学生的工程实践、自主学习和研发创新能力,并掌握团队合作、时间分配和人际交流的技巧。
[1] 王章豹,刘光复,吴玉程. 强化工科实践教学培养学生的工程实践与创新能力[J]. 合肥工业大学学报(社会科学版),2006,20(4):1-5.
WANG Zhang-bao, LIU Guang-fu, WU Yu-cheng. Strengthening the practical teaching of engineering course to train students' ability of engineering practice and innovation[J]. Journal of Hefei University of Technology(Social Sciences),2006,20(4):1-5.
[2] 惠记庄,刘海明,邹亚科. 现代工程训练中心建设及训练模式的探索[J]. 实验技术与管理,2009,26(3):115-118.
HUI Ji-zhuang, LIU Hai-ming, ZOU Ya-ke. Exploration of construction of modern engineering training center and training mode[J].Experimental Technology and Management,2009,26(3):115-118.
[3] 祝学云,况迎辉,杨海波. “基于LM3S615的电脑鼠实践”研讨班课程建设[J]. 电气电子教学学报,2011,33(4):25-26,53.
ZHU Xue-yun, KUANG Ying-bo, YANG Hai-bo. Seminar course construction of lm3s615 based computer mouse practice[J]. Journal of EEE, 2011, 33(4):25-26,53.
[4] 宫兆俭. 新型电脑鼠的设计开发[D].青岛:中国海洋大学,2013.
[5] HUANG Hsin-Hsiung, SU Juing-Huei, LEE Chyi-Shyong. A Contest-Oriented Project for Learning Intelligent Mobile Robots[J]. IEEE Transactions on Education, 2013, 56(1):88-96.
[6] 周立功. ARM嵌入式系统基础教程(第2版)[M]. 北京:北京航空航天大学出版社,2008.
[7] 方金亮,谈英姿,周怡君. 基于ARM的IEEE标准电脑鼠研究与实现[J]. 机械制造与自动化,2008,37(5):99-101.
FANG Jin-liang, TAN Ying-zi, ZHOU Yi-jun. Micromouse based on ARM of IEEE standard[J]. Machine Building & Automation,2008, 37(5): 99-101.
[8] 赵俊逸,林志贤. 在电脑鼠设计中使用红外LED管测距的研究[J]. 单片机与嵌入式系统应用,2007(7):84-85.
ZHAO Jun-yi, LIN Zhi-xian. Study of using infrared LED tube to measure the distance in the design of Micromouse[J]. Microcontroller & Embedded Systems,2007(7):84-85.
[9] SINGH A, SEKHON G S. A new shortest path finding algorithm for a maze solving robot with simulator[J]. International Journal of Computer Science and Communication, 2011, 2(2):445-449.
[10] LAW George. Quantitative Comparison of Flood Fill and Modified Flood Fill Algorithms[J]. International Journal of Computer Theory and Engineering, 2013, 5(3):503-508.
[11] 郭长生,龚 涛,李 龙. 一种电脑鼠走迷宫搜索算法[J]. 华中科技大学学报(自然科学版),2013(S1):388-391.
GUO Chang-sheng, GONG Tao, LI Long. A solving algorithm for micromouse maze[J]. J.Huazhong Univ.of Sci.& Tech.(Natural Science Edition),2013(S1):388-391.
[12] 夏 炎. 基于ARM7的电脑鼠的设计与实现[J]. 煤炭技术,2010(12): 188-189.
XIA Yan. Design and implementation of micromouse based on ARM7[J]. Coal Technology, 2010(12): 188-189.
[13] 薛 艳. 电脑鼠模糊PID控制算法研究[D].西安:长安大学,2010.
[14] 王凤林,王宜怀. 一种电脑鼠走迷宫算法的设计与实现[J]. 计算机应用与软件,2010,27(12):270-272,290.
WANG Feng-lin, WANG Yi-huai. Designing and implementing a maze solving algorithm for micromouse[J]. Computer Applications and Software,2010,27(12): 270-272,290.
[15] 王 磊. 基于IEEE电脑鼠走迷宫竞赛的迷宫算法分析与实现[D].济南:山东大学,2013.