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

[高级教程] 【N+】千里马Plus项目式课程 - 04 红灯停绿灯行

[复制链接]
本帖最后由 Nplus实验室 于 2023-5-22 10:15 编辑

【N+】千里马Plus项目式课程
04 红灯停绿灯行
- N+桃李科教

教学目标
1.学习摄像头的颜色识别功能;
2.实现红灯停绿灯行功能。

教学准备
千里马、地图、数据线、识别卡片

教学过程
导入 认识AI模块 颜色识别 项目程序 总结

1.导入
1)课程回顾:
如果颜色传感器识别有较大误差,应该怎么调节?
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图1
函数为什么要传参,这样有什么好处?

2)导入:
红灯停、绿灯行,是我们生活中已成规矩的事。不管是行人还是车辆,都必须遵循的规则。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图2

如何让千里马在行驶过程中做到红灯停、绿灯行?
本节课开始我们将结合千里马的AI功能,丰富千里马智慧交通的内容。


2.颜色识别
上节课学习颜色传感器,它可以用来检测颜色的RGB值和HSV值,本节课我们学习的颜色识别,使用摄像头来捕捉的颜色色块。
颜色识别可用于颜色的检测和追踪,一般用于与机器人交互,或者流水线分拣等场景中。

2.1学习与检测
2.1.1 编程语句
颜色学习需要用的编程语句如下:
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图3
切换模式,颜色、二维码、人脸、20类(物体识别)
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图4
学习屏幕方框中的物体、颜色等等
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图5
清楚学习过的数据,重新开始学习


2.1.2 学习颜色数据
1.使用程序将模式切换到“颜色”模式,并定义按下掌控板的A键开始学习,按下B键则清除学习的数据。如下图所示:
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图6
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图7

   2.手动调节摄像头角度,然后将摄像头对准需要学习的色块,按下A键进行学习,学习成功后出现ID号,如ID0、ID1等,则代表学习成功,如果需要学习其他颜色,将方框对准其他颜色块,按下A键开始第二次学习,按下B键取消学习成果。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图8

3.将方框对准其他颜色块,按下A键开始第二次学习;
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图9

4.学习了多种颜色后,屏幕上会根据应颜色显示该颜色的 ID,边框的大小随颜色块的面积一起变化,边框会自动跟踪色块。千里马显示的颜色 ID 号与学习颜色的先后顺序是一致的,也就是:ID 会按顺序依次标注为“ID0”,“ID1”,“ID2”......以此类推。不同颜色对应的边框颜色也不同。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图10
在我们平时使用颜色识别中,同一个模块的颜色属性中色相和饱和度是固定不变的,但是受到环境亮度的影响明亮度会产生一些变化,所以在使用颜色识别功能时一定要保证学习识别时的环境亮度和实际工作时的环境亮度尽量保持一致,否则会产生误差。

2.2识别颜色
2.2.1 编程语句
颜色识别需要用的编程语句如下:
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图11
判断是否存在学习数据
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图12
获取已学习的ID0、ID1、ID2......数据,ID0是第一个学习的对象,ID2是第二个学习的对象,以此类推
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图13
判断当前数据的ID号
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图14
设置识别范围,减少错误识别的概率,用于颜色识别、视觉巡线
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图15
调节摄像头的亮度
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图16
设置获取相同颜色色块的数量,1个或者多个,同时设置亮度阈值。

2.2.2识别颜色
目标:千里马学习两种颜色,识别到第一种颜色,扬声器发出“Do”的音,识别到第二种颜色,发出“La”的音。
1.扬声器播放的程序语句如下:
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图17
播放指定音符、节拍,可与列表结合使用
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图18
停止播放音乐
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图19
恢复播放,与“停止播放音乐”结合使用。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图20
自定义音乐,播放某个音调
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图21
播放音符列表,适用于多个音符的播放
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图22
连续音调,也就是重复播放

2.扬声器的播放,除了使用“千里马”模块中的语句,也可以使用“音乐”模块中的语句,只需将引脚改为P8即可。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图23 【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图24

3.程序流程图如下:先判断是否存在数据,再判断获取的ID号。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图25

4.逻辑判断程序如下。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图26

5.加上循环、学习数据等,完整程序如下。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图27

3.项目程序
目标:千里马在循迹行驶过程中,摄像头如果识别到红色停止,识别到绿色继续巡线。
1.千里马学习红色与绿色卡片。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图28

2.定义巡线的函数。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图29

3.学习卡片的顺序要与程序对应上,若红色为ID0,绿色为ID1。千里马在循迹行驶,行驶过程,如果获取ID0,千里马停下等待,直到千里马获取ID1时,巡线行驶。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图30

4.程序刷入之后,学习卡片数据,然后将千里马放到地图上进行测试,在行驶过程中拿出卡片测试。

5.在测试过程中可以发现:获取数据的框太大,容易识别到周围的颜色,此时可以设置识别区域的大小。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图31

6.若千里马只识别中间区域的位置,“X”、“Y”是方框左上角的X、Y坐标,“W”为方框的宽度,“H”为方框的高度。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图32
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图33

7.设置区域加入程序中,完整程序如下。
【N+】千里马Plus项目式课程 - 04 红灯停绿灯行图34

4.总结
1.摄像头的颜色识别与底部颜色传感器有什么不同与相同之处?
2.颜色识别过程中需要注意什么?有什么因素会影响颜色识别?边框大小与什么有关?

5.课后作业
1.颜色识别还可以怎么用呢?是否可以用来追踪物体?如果可以用来追踪,思考一下程序应该怎么写?

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

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

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

本版积分规则

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

硬件清单

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

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

mail