基于时间片法的多任务智能小车实验设计
2019-12-27黄晓钰李昊汶吴朝阳
刘 恒,黄晓钰,李昊汶,吴朝阳
基于时间片法的多任务智能小车实验设计
刘 恒1,黄晓钰1,李昊汶2,吴朝阳1
(1. 南京信息工程大学 电子与信息工程学院,江苏 南京 210044;2. 南京信息工程大学 自动化学院,江苏 南京 210044)
针对电子信息类大类一年级新生构建了专业认知综合性实验。该实验选用基于Arduino UNO开源硬件平台的车形机器人套件为实验对象,以模拟火山岛营救为主题任务,针对单线程处理多任务,采用时间片法分配使用CPU。教学实践表明,基于开源的图形化编程的该实验平台入门简单、趣味性强,能有效拓展学生思维空间,增强学生学习兴趣和专业认同感,对培养学生解决复杂工程问题能力具有积极意义。
实验设计;时间片法;多任务;专业认同感
大学一年级是学生从高中到大学的转折期,也是大学生发展非常重要的时期。研究表明,大学生的成功与否在一定程度上取决于其在大一阶段的情况[1]。对于以实践为根本特征的高等工程教育,大一阶段获取的专业知识和早期工程体验,不仅可以加强学生对专业的认同感,而且可以有效地激发学生的专业学习兴趣,促使其完成从以追求好成绩为目标的被动式学习,向以探究科学知识、解决复杂工程问题为目标的主动式学习转变[2]。
我校自实行电子信息类大类招生以来,试点构建了电子信息类大类一年级学生创新实践体系,包括综合性专业认知实验、1个学分的开源Arduino软硬件平台编程、集中式开源平台命题比赛(智能爬虫)等,其中综合性专业认知实验是关键一环。面向大学一年级新生,认知实验内容的选择至关重要。由于学生基础知识储备不足,理论深度较高、软硬件平台复杂的认知实验,往往效果不理想[3]。认知实验的内容应能够快速吸引学生兴趣,开发软硬件平台也不应太复杂。同时,认知实验应具有较好的扩展性和张力,那些机械重复性的验证性实验,难以给学生提供实验拓展的空间[4]。
本文选择车型机器人mBot为实验硬件平台,以模拟火山岛营救故事为机器人任务,增加了综合实验的趣味性和吸引力。针对被困人员营救、路障清除、特定区域数据采集、能量补给等多重任务,采用时间片法来分配单片机CPU的工作,从而在最短时间内可靠地完成任务。
1 专业认知综合性实验任务
共有2项任务,第1项是营救被困队员(红色),第2项是搜集营区内的数据资料(黄色),场地尺寸为1.8 m×2.6 m,如图1所示。
图1 多任务火山岛营救场地平面图
营救被困队员时,车型机器人从启动区出发,需要将沿途的障碍物色块(A、B、C、D、E)移动到对应的区域(a、b、c、d、e)内。色块完全移入对应区域(投影面全部在区域内)可得20分,色块没有完全进入对应区域得10分,色块投影面全部不在区域内,得5分。
顺利通过落石道路X得10分,顺利通过倒下树木Y 区域得10 分。
营救被困人员时,机器人需要靠近被困人员(红色圆形区域,共有1、2、3、4、5 等5处),所携带的传感器每感应到一个人员所在位置,LED屏上的数字相应加1,成功营救一位队员得20分。
搜集数据时,机器人需推动障碍物D通过营区大门放入到对应的d区域,顺利通过大门得10分,碰倒大门不得分。通过传感器识别道路上的黄色数据采集区,顺利通过每一个黄色数据采集区,并播放不同音调声音,可用主控板上的蜂鸣器完成此过程,可得20分。
数据采集尽头有一个补给区,车辆到达补给区需停止不低于5 s。完成停止5 s得20分,否则不得分。只要车辆的投影面接触到补给区,就算停在了补给区。
车辆行驶过程中,需碰倒路边2处树木障碍,每碰倒一处得20分,否则不得分。
每项任务开始时,机器人需要从启动区出发,完成任务后,需要回到启动区,成功回到启动区得20分,否则不得分。车辆的投影面只要接触到启动区,就算停在了启动区。
比赛给每支队伍40 min的调试时间,每提前1分钟完成,可获得额外的1分加分,20分封顶。
2 车型机器人及图形化编程
mBot车型机器人平台包括Arduino UNO系统板、红外模块、底板、左右电机驱动板、左右侧轮轴、RGB巡线传感器、LED颜色传感器、LED点阵显示屏、金属舵机、机械摆杆,如图2所示。模块利用螺丝紧固装配,电源模块供电,底盘下固定电机及车轮,RGB巡线传感器感应赛道位置和形状,LED颜色传感器感应模拟救人的红色圈和黄色数据区,LED点阵显示屏显示待救援人数,固定在金属舵机上的摆杆用来推倒路边的2处模拟树木。
图2 mBot车型机器人硬件结构
mBlock是一款基于Scratch 3.0的积木式编程软件,中文名“慧编程”,主要面向青少年用户。用户不仅可在软件中使用积木编程语言创作各种有趣的故事、游戏、动画等,还可对Makeblock体系、micro:bit等硬件进行编程,还支持一键切换Python等代码语言,支持Python输入模式,并可融入AI(人工智能)和IoT(物联网)等前沿技术[5-7]。mBlock允许利用图形化的编程方式来对Arduino进行编程,尤其是学习过Scratch之后,用Scratch给Arduino编程相对比较容易。在软件里,加载5个驱动库:Me Color Sensor(颜色传感器)、RGBLineFollower、RGBLineFollowerAdvanced(RGB巡线传感器)、Arduino(系统板)、 Makeblock。
利用mBlock软件平台图形化编程环境,根据赛道任务,结合时间片法进到图形化编程,程序编译后利用USB线将程序代码下载到主控单片机程序存储器中[8-9],脱机按复位键即可启动车型机器人上赛道完成任务。
3 多任务的时间片实现策略
RGB巡线传感器模块包括4个RGB补光灯和4个光敏接收管,该模块可用于深色背景浅色赛道巡线,也可用于浅色背景深色赛道巡线,只要背景与赛道色差灰度值大于阈值(背景与赛道在RGB域的色差越大,巡线效果越好)即可。该模块具有检测速度快、可通过按键学习场地功能、适应性良好等优点。当赛道宽度与两个RGB间距相等且在传感器水平方向4个RGB补光灯与赛道垂直时,对应的4个传感器检测值为“1001”。RGB灯在赛道上是0,在背景上是1,RGB巡线传感器负责检测赛道情况。
颜色传感器(Me Color Sensor)是一款可识别黑、黄、红、蓝、绿、白6种颜色的传感器。主动探测(开补光LED)时,色板越大可测范围越大,一般取1~3 cm;被动检测(关闭补光)时,测环境光需要足够的光照强度,无距离要求。实验中,颜色传感器负责检测被困人员的红圈和数据采集区的黄色区域。
机器人的运行状态包括前进、后退、转向,具体到赛道,有直线前进运行、直线后退、原地转向。转向是通过左右两轮差速实现的,左轮快、右轮慢,机器人右转;左轮慢、右轮快,机器人左转;转向角度与差速持续时间长短有关。直线运行时,通过RGB巡线传感器感测的机器人位置偏移来对运行方向进行细微调整,实现沿赛道的巡线行进[8]。
3.1 路口判断及转向
在如图3所示的比赛场地中,主要有半T型、T型、Y型、十字型路口,其中十字型路口是T型路口的延伸。当巡线传感器检测到“1000”或“0001”,则对应半T型路口;当检测到“1001”再检测到“0000”,则对应T型路口;当检测到“1001”,则对应Y型路口的转折处过窄,车型机器人可以选择沿Y型路口两个分支中的一个路口前进。此条件下可根据赛道布置,结合时间行程设定车型机器人转向路口分支。赛道共有8个半T型和T型路口(红色圈)、5个Y型路口(紫色圈)、5个十字型路口(淡蓝色圈),其中T型路口侧面也是半T型路口。Y型路口交叉处过窄,在处理时按照单一路口处理,应预先结合车速及时间设定Y型路口的巡线转向。在营救人员的5个半T型路口,当车型机器人最前端的RGB巡线传感器探测到路口后,在速度为100 r/min下继续直行0.4 s,然后原地右转0.5 s;在Y路障处,当第一次探测到“1000”时,直接结合速度保持直行0.3 s,穿过Y路障处再进行巡线判断。
图3 赛道路口类型
3.2 清除道路障碍物(A、B、C、D、E)
根据速度计算公式(时间=距离/速度),以100 r/min转速向前运行0.5 s,刚好可以将障碍物推进指定区域,然后再以100 r/min转速后退0.5 s,添加一个左转弯程序即可使机器人回到主跑道,如图4所示。
图4 清除路上5处障碍物程序
3.3 营救被困人员
初始方案为,机器人巡线直到颜色传感器识别为红色后停下。然而,在实际操作中发现,颜色传感器识别红色会有一定误差,而且需要一定时间,使得机器人在巡线过程中无法准确识别红点。因此采用如下替代方案:RGB巡线传感器在检测到红点时仍标识为1,检测到待救援人员后标识为“1111”,以此为机器人停止的标志。由于LED颜色传感器比RGB巡线传感器位置靠后,再向前行驶0.4 s后LED颜色传感器才可检测到红点。
经上述步骤,LED颜色传感器已经位于红点正上方,但是由于LED颜色传感器的灵敏度和识别时间问题,一次性识别是不够的,需在识别到红色前让机器人停留在原地反复识别,如图5所示。
3.4 通过路障X
到达路障X时,RGB巡线传感器会识别到“0000”,以此为标志点,停止小车的巡线,开始通过X。由于X路段为较短直道,在停止巡线后,可以直接让小车以150 r/min转速前进0.7 s通过X路段。在实操中发现,由于X道路之前是一左转弯道,小车在识别到X时会因为转弯的原因车身不正,车头向右偏移。所以在通过X道路后增加一个左转弯,直到RGB传感器识别到“1001”以摆正车身,如图6所示。
图6 通过路障X程序
3.5 通过路障Y
在小车巡线遭遇Y区域时,RGB巡线传感器状态为“1000”,可类比通过X区域的方法,前进一段距离后向左摆正小车,并根据区域穿过长度,结合车速确定直行时间,如图7所示。
图7 通过路障Y程序
4 基于时间片的多任务实施
由于mBot机器人未装配摄像头等传感器实时采集车身和赛道位置情况,一旦采集到特征路口就直接直行一定时间,中间没有反复巡线,从而实现了CPU的时间分片。图8为装配好的车型机器人,两轮驱动,前轮为受控转向轮。颜色传感器突出在车身外,便于有充分的时间在颜色采集后对机器人位置进行调整;舵机连接的金属杆用于推倒路边的2处障碍物;RGB巡线传感器固定于车头正中间,便于控制车身中心线与赛道中心线重合;机器人通过锂电池供电,传感器通过主板上的电源接口获得供电电压;车头前的突出金属铰链片用来夹持和移动道路上的方形障碍物块。
图8 mBot机器人
打开主板电源开关,mBot机器人从启动区出发,沿着右向赛道巡线完成任务。要求赛道平整,没有折叠凹凸不平和灰尘。一旦一个基于车速和时间配合完成的任务出现问题,就会累积影响后续任务完成,不同最大转速的电机影响时间分配和任务完成时间。为了减少结构的复杂性,对于障碍物块的推动没有采用电动可控设备,所以障碍物的位置摆放也影响任务得分。
实验按3人一组分组进行,硬件套件提前发放给各组学生,在学院教工活动中心(木地板)布设多块比赛场地。实验中,教师示范演示mBot完成任务,在直流电机空载转速为312 r/min、1800 mAh电池满载时,无差错完成任务时间为2 min 50 s。由于任务完成方式的多样性,不同小组学生针对同一任务会采用不同策略,完成任务所需时间和得分不尽相同[10]。该实验的学生参与度高,积极性高,课后又选拔出部分学生参加了中国机器人大赛,与更多的校外学生同场竞技交流,提高了专业认知,激发了学习热情[11]。在后续基于开源平台的智能爬虫校级比赛中,学院电子信息类一年级学生参与度达到70%以上,说明有趣的学科实验及相关赛事,能够很好地引导学生的专业知识学习[12]。
5 结语
面向电子信息大类一年级学生的机器人综合性实验,选用了基于Arduino开源硬件平台,底层封装简单易懂,采用了图形化编程模式开发环境,直观简洁。以模拟多任务火山岛营救为实验内容,具有较好的故事性和吸引力。教学实践表明,该项实验不仅提高了大一学生对专业的认知度、认同感和学习兴趣,而且给学生提供了一种早期工程体验机会,有助于他们明确专业学习方向和学习方法,从而为毕业要求的达成和培养目标的实现奠定良好基础。
感谢“软银机器人杯”中国机器人技能大赛组委会对本实验工作的支持,本实验获得中国机器人技能大赛全国一等奖。感谢美科科技(北京)有限公司对本实验设计的资助。
[1] 吕明,樊勇.电子信息工程大类人才培养模式的设计与实践[J].实验科学与技术,2013, 11(4): 193–195, 216.
[2] 方红,雷霖,李红连,等.电子信息创新型工程应用技术人才培养模式实践[J]. 实验室研究与探索,2013, 32(11): 308–310.
[3] 隋竹翠,徐新,贺赛先,等. 电子信息大类人才培养教学过程管理与质量控制[J]. 实验科学与技术,2016, 14(4): 15–17, 22.
[4] 陈得宝,李峥,方振国,等. 电子信息大类招生模式下实验平台与队伍建设[J]. 实验技术与管理,2015, 32(10): 185–187.
[5] 杨丽新,马迎. 基于Proteus仿真的教学机器人智能小车设计[J]. 实验室研究与探索,2018, 37(8): 139–143.
[6] 崔承毅,王开宇,高庆华,等. 基于智能小车的模块化的教学系统设计[J]. 实验技术与管理,2018, 35(8): 192–195.
[7] 王帅,王明全,杨琳,等. 模块化开放式电路综合实验的研究与教学实践[J]. 实验科学与技术,2018, 16(3): 89–92.
[8] 高庆华,王洁,崔承毅,等. 适于单片机实验教学的智能小车模块化系统设计[J]. 实验室科学,2018, 21(1): 10–12, 17.
[9] 胡青,余嘉,苏玉刚. 面向工程实践能力培养的嵌入式实验教学改革[J],实验技术与管理,2017, 34(9): 160–163.
[10] 陈波. Scratch软件在化学教学中的应用初探[J]. 教育与装备研究,2018, 34(11): 94–96.
[11] 陈世海,王军,代伟,等. 机器人综合性实验设计[J].实验技术与管理,2018, 35(10): 37–40.
[12] 郭慧敏,孟游,迟少华,等.基于Android手机手势和语音控的人机交互系统设计[J]. 南京信息工程大学学报,2019, 11(2): 216–220.
Design of multi-task intelligent car experiment based on time slice method
LIU Heng1, HUANG Xiaoyu1, LI Haowen2, WU Zhaoyang1
(1. College of Electronic and Information Engineering, Nanjing University of Information and Technology, Nanjing 210044, China; 2. School of Automation, Nanjing University of Information and Technology, Nanjing 210044, China)
Acomprehensive experiment of professional cognition is constructed for the first-year students of electronic information majors. For this experiment, the vehicle model robot suite based on Arduino UNO open source hardware platform is chosen as the experimental subject. The task of simulating the rescue of volcanic island is the main task, and the time slice method is used to allocate CPU for the single threading multitask. The teaching practice shows that the experimental platform based on open source graphical programming is simple and interesting, which can effectively expand students’ thinking space, enhance their interest in learning and professional identity, and has positive significance in cultivating their ability to solve complex engineering problems.
experiment design; time slice method; multitask; professional identity
TN911.71
A
1002-4956(2019)12-0186-05
10.16791/j.cnki.sjg.2019.12.044
2019-03-30
江苏高校品牌专业建设工程资助项目(PPZY2015B134);2018年江苏省研究生实践创新计划项目(SJCX18- 0323);教育部产学合作协同育人项目(201802149023,201802212012)
刘恒(1980—),男,湖北黄冈,工学博士,副教授,硕士研究生导师,主要研究方向为传感器设计、数字信息处理。E-mail: ghost80boy@163.com