内容正文:
任务 9:循迹小车
任务目标
了解 piBot 循迹的算法原理
编程实现 piBot 循迹功能
引导
有些餐厅、酒店开始使用机器人服务员,在这些机器人行走路线上有一条黑线,
它们通过检测这条黑线到达指定位置,为客人送餐。在这个任务中,我们将对
piBot 编程,实现循迹机器人功能。
搭建
点击图片查看搭建步骤详情。
编程
1. 红外循迹传感器的原理
红外循迹传感器有两组红外传感器组成,每一组红外传感器都能检测其下方是
黑线还是白线(检测到白线指示灯亮,检测到黑线指示灯灭)。在这个任务中,
我们使用 ScratchPi 循迹地图中的宽线进行循迹,ScratchPi 套装中提供的循迹地
图如下(根据需要,也可以自行制作循迹地图):
使用宽线循迹(黑线的宽度大于红外循迹传感器的宽度)的时候,循迹原理和
算法如下图示:
当红外循迹传感器的 1 号和 2 号都在黑线内,小车直线行走;当红外循迹传感
器只有 2 号在黑线内,小车右转回到黑线;当红外循迹传感器只有 1 号在黑线
内,小车左转回到黑线;当红外循迹传感器 1 号和 2 号都不在黑线内,小车已偏
离轨道,后退尝试回到黑线。
2. 自定义程序块的使用
在“更新模块”分类下,有一个“新建程序块”按钮,用于自定义程序块功能。
自定义程序块可以自己创建指定功能的程序块,该程序块的功能可以由其他程序
块组合实现,便于将一部分重复使用的多个程序块序列封装为一个自定义的程序
块,简化程序的复杂度,便于阅读和理解。比如小车的“前进”功能,需要控制
两个电机分别正转和反转,如果程序中多次使用“前进”功能,每次将需要拖动
两个程序块,封装为一个自定义的“前进”模块后,将简化使用。创建“前进”
程序块的过程如下:
首先,点击“更多模块”分类下的“新建程序块”:
在“程序块名称”处输入“forward”,表示“前进”模块,点击“确定”按钮。
将和前进逻辑相关的模块拖到 forward 下面,完成后点击“确定”按钮即可。
完成后,在“更多模块”分类下,将看到“forward”模块了:
3. 程序示例
完成程序后,上传到 piBot 测试效果。
拓展
1. 这个任务完成的是宽线循迹的功能,想想如何实现窄线循迹的功能。
2. 尝试使用 配合变量完成循迹功能。