3263浏览
查看: 3263|回复: 0

[高级教程] 【N+】千里马Plus项目式课程 - 02 循迹行驶

[复制链接]
本帖最后由 Nplus实验室 于 2023-4-3 10:42 编辑

【N+】千里马Plus项目式课程
02 循迹行驶
- N+桃李科教
上一篇:【N+】千里马Plus项目式课程 - 01 初识千里马
下一篇:
【N+】千里马Plus项目式课程 - 03 识色运动

教学目标
1.认识循迹传感器;
2.学习循迹传感器的使用;
3.实现循迹传感器巡线的功能。

教学准备
千里马、地图、数据线

教学过程
导入 认识循迹传感器 分析巡线原理 项目程序 总结

1.导入
1知识回顾:
1.千里马固件烧录注意事项:左侧轮子边上有一个开关,烧录不同的固件,开关拨动的方向是不同的,靠近车尾那一端有一个“三角形”的符号。
【N+】千里马Plus项目式课程 - 02 循迹行驶图1
【N+】千里马Plus项目式课程 - 02 循迹行驶图2
掌控板固件
AI固件

2.转弯原理:通过速度差进行转弯,一种是方向相同产生速度差,另一种是方向相反产生速度差。

2)智慧交通
上节课已经初步了解了千里马的基本功能,接下来,我们将学习千里马的更多功能,完成各种各样的智慧交通项目。
观看视频千里马的视频《循迹行驶》


2.循迹传感器
2.1认识循迹传感器
千里马的巡线传感器是根据反射式光电传感器原理开发的。千里马底部朝上,从右至至左,分别为D1、D2、D3、D4巡线探头。
【N+】千里马Plus项目式课程 - 02 循迹行驶图3
我们应该使用多少探头进行巡线呢?探头越多,巡线时越精准。使用两个或者四个都可以进行巡线,通常是中间两个进行巡线,遇到路口时,再使用边上的两个进行判断。

2.2编程语句
1.循迹行驶需要用的编程语句如下:
【N+】千里马Plus项目式课程 - 02 循迹行驶图4
获取指定巡线传感器的巡线值,返回的是数值,范围0-255
【N+】千里马Plus项目式课程 - 02 循迹行驶图5
判断指定巡线传感器是否碰到黑线,碰到黑线,返回“Ture”,否则返回“False”
【N+】千里马Plus项目式课程 - 02 循迹行驶图6
设置识别到白线的阈值,范围是0-255,默认是100,与上一条语句共同使用,若阈值为100,使用上一条语句时,当巡线值小于100时,默认碰到白线,100以上,则碰到黑线。


2.3分析探头

2.3.1 获取探头数值
目标:屏幕显示循迹传感器探头获取的数值。

1.屏幕显示
1.千里马屏幕的尺寸是256*192,如下图所示。
【N+】千里马Plus项目式课程 - 02 循迹行驶图7

2.屏幕显示需要用的语句,如下表所示。
【N+】千里马Plus项目式课程 - 02 循迹行驶图8
LCD屏显示字体的颜色,可以自由选择
【N+】千里马Plus项目式课程 - 02 循迹行驶图9
文本显示坐标以及文本内容;
X轴坐标范围是:0-256,Y轴坐标范围是:0-194
【N+】千里马Plus项目式课程 - 02 循迹行驶图10
清空屏幕的显示,显示之前,一定要有这一句,否则无法显示。

3.屏幕显示需要用的语句,如下表所示。
【N+】千里马Plus项目式课程 - 02 循迹行驶图11 【N+】千里马Plus项目式课程 - 02 循迹行驶图12

2.显示探头获取数值
1.屏幕显示D2探头的循迹值。运行程序后,让D2探头检测有颜色的物体,可以发现,颜色越深,数值越大,黑色的数值大于200以上。
【N+】千里马Plus项目式课程 - 02 循迹行驶图13【N+】千里马Plus项目式课程 - 02 循迹行驶图14

2.屏幕显示四个探头的值。运行程序后,让所有探头检测有颜色的物体
【N+】千里马Plus项目式课程 - 02 循迹行驶图15【N+】千里马Plus项目式课程 - 02 循迹行驶图30

2.3.2判断探头状态
目标:判断D2探头是否碰到黑线,碰到黑线后,两只耳朵亮红灯,否则亮绿灯。

1.亮灯
1.控制千里马耳朵上RGB灯的编程语句如下。
【N+】千里马Plus项目式课程 - 02 循迹行驶图16
选择0号或1号灯,通过修改红、绿、蓝的数值可改变灯的颜色,范围是0-255,数值越大,亮度越大

【N+】千里马Plus项目式课程 - 02 循迹行驶图17

2.千里马两个耳朵的灯亮红色2s,然后绿色1s,最后关闭。程序如下:
【N+】千里马Plus项目式课程 - 02 循迹行驶图18

2.根据状态亮灯
千里马初始化,设置循迹阈值,如果D2探头碰到黑线,两只耳朵亮红灯,否则亮绿灯。加上循环和延时,程序如下:
【N+】千里马Plus项目式课程 - 02 循迹行驶图19
尝试修改循迹阈值,看看程序有什么不一样。

3.循迹行驶
3.1两路循迹
两路巡线,只需要使用中间两个探头进行巡线,也就是D2、D3。

3.1.1两路循迹分析
因为使用的是两个探头,所以千里马没有办法走岔路口。若巡线传感器探头碰到黑线,设为1;白色为0。对巡线过程遇到的情况进行分析,如下表所示:
1
2
3
左边(D2)
0
0
1
右边(D3)
0
1
0
【N+】千里马Plus项目式课程 - 02 循迹行驶图20

3.1.2程序编写
1.当两个探头处在黑线时,保持直行,速度可以设置的慢一些,方便调试。
【N+】千里马Plus项目式课程 - 02 循迹行驶图21

2.当D2碰到黑线,而D3碰到白线时,右转。
【N+】千里马Plus项目式课程 - 02 循迹行驶图22

3.当D2碰到白线,而D3碰到黑线时,左转。
【N+】千里马Plus项目式课程 - 02 循迹行驶图23

4.加上循环和延时,完整程序如下图所示。
【N+】千里马Plus项目式课程 - 02 循迹行驶图24

5.刷入程序,将千里马放到地图测试,根据测试结果修改速度和阈值。

3.2四路循迹
四路循迹需要用到四个循迹探头,D2、D3让千里马沿线行驶,D1、D4判断岔路口,应该往哪边转弯。

3.2.1四路循迹分析
岔路口情况分析:
D1=0,D4=0时,则说明没有遇见岔路口,千里马的移动则根据D2、D3的情况来定,D1=1,D4=1,说明遇到十字路口,可以定义怎么去行驶,但通常都是D1、D4中的某一个探头先碰到线,偶尔才会出现同时碰到线。具体分析如下图所示:
D1(最左边)
0
0
1
1
D4(最右边)
0
1
0
1
动作
根据中间D2、D3判断情况行驶
右转
左转
停止或自定义其他动作
【N+】千里马Plus项目式课程 - 02 循迹行驶图25

3.2.2程序编写
1.新建变量“max”、“min”表示最大巡线过程中最大的速度和最小的速度,这样修改的时候直接修改变量的值即可。将变量放入二路循迹的程序中。
【N+】千里马Plus项目式课程 - 02 循迹行驶图26

2.当D1碰到黑线,D4碰到白线时,右转。因为转弯角度比较大,所以速度差可以大一些。
【N+】千里马Plus项目式课程 - 02 循迹行驶图27

3.当D4碰到黑线,D1碰到白线时,左转。因为转弯角度比较大,所有速度差可以大一些。
【N+】千里马Plus项目式课程 - 02 循迹行驶图28

4.加上两路循迹的程序,完整程序如下图所示:
【N+】千里马Plus项目式课程 - 02 循迹行驶图29

5.刷入程序,将千里马放到地图测试,根据测试结果修改速度、延时以及阈值大小。

4.总结
1.二路循迹与四路有什么区别?
2.巡线过程中需要注意什么?如何让巡线更准确?

5.课后作业
1.使用获取的循迹数值进行巡线行驶,测试过程中比较与判断是否碰到黑线有什么不同?

千里马Plus购买链接:N+千里马Plus

本课PPT、视频及案例代码下载:
链接: https://pan.baidu.com/s/1yHh9sDI1gGYkBnEpnujMIg
提取码: 8888


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail