Scratch模拟循迹小车

2020-12-15 06:56
电脑报 2020年47期
关键词:循迹比赛项目前轮

随着教育部启动中小学生信息素养测评,并推动在中小学阶段设置人工智能相关课程,编程教育课程纳入中小学基础教育体系已是大势所趋。创客教育和比赛在中小学中也越发受到重视。上个星期我有幸被邀约参观了宁波市中小学创新创客博览会,见到了许多精彩的创客比赛和一些有意思的创新作品。

其中循跡小车这个比赛项目引起了我的兴趣。循迹小车是一种能够自动按照给定的路线移动的小车。它是集图像传感器、信号处理、电机驱动及自动控制等技术来实现路面探测、障碍检测、信息反馈和自动行驶的技术综合体。通常是用地面不同颜色线条或者其他图形声光信号标记来引导小车。目前已有大量循迹机器人在军事、商用和科学研究等方面获得了广泛的应用,例如生产线、物流、码头场景下的场地物料配送循迹机器人,医院的循迹机器人护士,商场的导游循迹机器人等。

创客比赛中的循迹小车比赛项目是有一定难度的。循迹小车前方配有红外线或者光感探头用来识别路线轨迹,并且配有两组马达提供动力,学生通过编程来实现小车自动探测与行驶,保证小车绕过障碍并尽快到达终点。

不过循迹小车设备价格比较昂贵,我们只用Scratch来仿真做一个简单版的循迹小车,让大家展示一下循迹小车的功能。

首先我们需要绘制一个造型小汽车,小汽车最好四个轮子,并且能够表示前进的方向,我将车头前面增加了一条线。舞台背景为自行绘制的一条崎岖的道路,道路颜色需要和背景颜色区分开来。

绘制小车和背景图后我们完成的首要目标就是如何实现小车转弯。现实生活中开车转弯时无非就是左转和右转,在循迹小车程序中也是同样的道理。什么时候小车左转或右转,都是需要进行判断。例如图中A点,当小车的左前轮一旦碰到边缘区域的时候就需要向右慢慢转弯。图中B点,当小车右前轮一旦碰到边缘区域的时候需要向左慢慢转弯。分析完成后我们快来看看代码如何实现吧。

首先我们需要在造型中增加两个前轮的造型(左前轮和右前轮),目的是用于判断小车的转向,当程序开始运行后,小车固定到起点区域并面向90度方向运动。

小车需要不断地侦测并判断左右转向的情况,增加一个重复执行语句,不断切换左前轮、右前轮和小车的三个造型。不停进行“左右雷达调整”,当雷达检测到碰到边缘时(背景颜色),就慢慢地顺着反方向转动直至回归正常轨道。

这里还有一个需要注意的技巧,如果你自行编写程序运行时应该会看到小车的三种造型刷新并不顺畅,小车动画一直闪烁效果很差,这也是我为什么要设置两个自制积木的原因。在新建新的积木时需要勾选左下角的“运行时不刷新屏幕”这个选项,这样在运行程序的时候小车就不会出现闪烁的情况,能够成功让小车按照设计的轨道运行了。

相对来说循迹小车这个比赛项目还是蛮有意思充满挑战的,有兴趣的同学可以搜索一下包括乐高在内的循迹小车相关系列内容与视频。

猜你喜欢
循迹比赛项目前轮
基于MSP430单片机的智能导盲小车设计
电竞种植记
历史性突破,武术成为青奥会正式比赛项目
创意涂鸦
基于“STC80C51单片机”的智能小车系统的设计
基于K60的智能循迹小车系统实现
前轮和后轮
拆前轮不蹭碟
Olympic Sports(奥运比赛项目)
电动小车的循迹