3410| 0
|
[高级教程] 【N+】千里马Plus项目式课程 - 04 红灯停绿灯行 |
本帖最后由 Nplus实验室 于 2023-5-22 10:15 编辑 【N+】千里马Plus项目式课程 04 红灯停绿灯行 - N+桃李科教 教学目标 1.学习摄像头的颜色识别功能; 2.实现红灯停绿灯行功能。 教学准备 千里马、地图、数据线、识别卡片 教学过程 导入 → 认识AI模块 → 颜色识别 → 项目程序 → 总结 1.导入 (1)课程回顾: 如果颜色传感器识别有较大误差,应该怎么调节? 函数为什么要传参,这样有什么好处? (2)导入: 红灯停、绿灯行,是我们生活中已成规矩的事。不管是行人还是车辆,都必须遵循的规则。 如何让千里马在行驶过程中做到红灯停、绿灯行? 本节课开始我们将结合千里马的AI功能,丰富千里马智慧交通的内容。 2.颜色识别 上节课学习颜色传感器,它可以用来检测颜色的RGB值和HSV值,本节课我们学习的颜色识别,使用摄像头来捕捉的颜色色块。 颜色识别可用于颜色的检测和追踪,一般用于与机器人交互,或者流水线分拣等场景中。 2.1学习与检测 2.1.1 编程语句 颜色学习需要用的编程语句如下:
2.1.2 学习颜色数据 1.使用程序将模式切换到“颜色”模式,并定义按下掌控板的A键开始学习,按下B键则清除学习的数据。如下图所示: 2.手动调节摄像头角度,然后将摄像头对准需要学习的色块,按下A键进行学习,学习成功后出现ID号,如ID0、ID1等,则代表学习成功,如果需要学习其他颜色,将方框对准其他颜色块,按下A键开始第二次学习,按下B键取消学习成果。 3.将方框对准其他颜色块,按下A键开始第二次学习; 4.学习了多种颜色后,屏幕上会根据应颜色显示该颜色的 ID,边框的大小随颜色块的面积一起变化,边框会自动跟踪色块。千里马显示的颜色 ID 号与学习颜色的先后顺序是一致的,也就是:ID 会按顺序依次标注为“ID0”,“ID1”,“ID2”......以此类推。不同颜色对应的边框颜色也不同。 在我们平时使用颜色识别中,同一个模块的颜色属性中色相和饱和度是固定不变的,但是受到环境亮度的影响明亮度会产生一些变化,所以在使用颜色识别功能时一定要保证学习识别时的环境亮度和实际工作时的环境亮度尽量保持一致,否则会产生误差。 2.2识别颜色 2.2.1 编程语句 颜色识别需要用的编程语句如下:
2.2.2识别颜色 目标:千里马学习两种颜色,识别到第一种颜色,扬声器发出“Do”的音,识别到第二种颜色,发出“La”的音。 1.扬声器播放的程序语句如下:
2.扬声器的播放,除了使用“千里马”模块中的语句,也可以使用“音乐”模块中的语句,只需将引脚改为P8即可。 3.程序流程图如下:先判断是否存在数据,再判断获取的ID号。 4.逻辑判断程序如下。 5.加上循环、学习数据等,完整程序如下。 3.项目程序 目标:千里马在循迹行驶过程中,摄像头如果识别到红色停止,识别到绿色继续巡线。 1.千里马学习红色与绿色卡片。 2.定义巡线的函数。 3.学习卡片的顺序要与程序对应上,若红色为ID0,绿色为ID1。千里马在循迹行驶,行驶过程,如果获取ID0,千里马停下等待,直到千里马获取ID1时,巡线行驶。 4.程序刷入之后,学习卡片数据,然后将千里马放到地图上进行测试,在行驶过程中拿出卡片测试。 5.在测试过程中可以发现:获取数据的框太大,容易识别到周围的颜色,此时可以设置识别区域的大小。 6.若千里马只识别中间区域的位置,“X”、“Y”是方框左上角的X、Y坐标,“W”为方框的宽度,“H”为方框的高度。 7.设置区域加入程序中,完整程序如下。 4.总结 1.摄像头的颜色识别与底部颜色传感器有什么不同与相同之处? 2.颜色识别过程中需要注意什么?有什么因素会影响颜色识别?边框大小与什么有关? 5.课后作业 1.颜色识别还可以怎么用呢?是否可以用来追踪物体?如果可以用来追踪,思考一下程序应该怎么写? 千里马Plus购买链接:N+千里马Plus |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed