3229| 0
|
[高级教程] 【N+】千里马Plus项目式课程 - 03 识色运动 |
本帖最后由 Nplus实验室 于 2023-4-11 11:42 编辑 【N+】千里马Plus项目式课程 03 识色运动 - N+桃李科教 下一篇:【N+】千里马Plus项目式课程 - 04 红灯停绿灯行 教学目标 1.认识颜色传感器; 2.学习颜色传感器的使用; 3.实现识色运动功能。 教学准备 千里马、地图、数据线 教学过程 导入 → 认识颜色传感器 → 项目程序 → 总结 1.导入 分析下面的6个图,使用思路循迹过程中,千里马应该怎么行驶? 本节课将结合颜色传感器,让千里马在循迹过程中,变得更加丰富多彩。 2.颜色传感器 2.1认识颜色传感器 颜色传感器通过不同颜色对光线的反射系数不同,根据接收到的反射光的强弱来判断颜色。千里马的颜色传感器在底部,如下图所示: 颜色传感器除了可以获取HSV值,还可以获取RBG值。 RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。 数值范围均为0-255,数值越大,说明颜色越亮。 2.1.2 HSV 颜色传感器可单独地获取颜色的H/S/V值。HSV指的是(色调,饱和度,亮度)。 (1) 色调(H:hue):用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°。 (2)饱和度(S:saturation):取值范围为0.0~1.0,值越大,颜色越饱和。 (3)亮度(V:value):取值范围为0(黑色)~255(白色)。 2.2编程语句 1.颜色传感器需要用的编程语句如下:
2.3获取颜色值 2.3.1 获取RGB值 目标:将颜色传感器获取的颜色,转为RGB值,并在屏幕上显示,同时亮对应颜色的灯光。 1.亮灯 1.千里马除了耳朵上有两颗灯珠,还有额外10颗灯珠,车头6颗以及车尾4颗,如下图所示。 2.屏幕显示需要用的语句,如下表所示。
3.千里马的10颗灯珠亮红灯2s,然后绿灯2s,蓝灯2s,最后关闭,程序如下: 刷入程序后,如果灯不亮,检查一下程序是否缺少“显示生效”的语句。 2.获取RGB值后亮灯 1.新建列表“dates”,用来储存颜色传感器获取的RGB值。 2.RGB彩灯亮灯的颜色为获取的RGB值。 3.如果觉得单行输入太长了,可右击鼠标,改为“多行输入”,如下图所示: 4.将获取的数据显示在屏幕上,可用于校对是否有大偏差。 5.完善程序,如下图所示: 6.程序刷入后,拿出颜色卡片进行测试,亮灯颜色以及屏幕显示的值是否有较大偏差,如果有,则修改白平衡的值,如下图所示。 3.项目程序 目标:千里马使用循迹传感器进行巡线;使用颜色识别传感器进行行驶速度的增减,如果识别到黄色,千里马停止,等待3s后继续巡线;识别到绿色,加速行驶;识别到蓝色,使用减速速度行驶; 1.创建一个可以传参的函数,将上节课的巡线程序放入函数中。修改参数名和函数名,“min”表示两个轮子中最小的速度,“max”表示两个轮子中最大的速度。 2.鼠标右击函数,将参数创建出来。 3.将两个参数代替左右轮子的速度,较大速度的为“max”,较小速度为“min”。 4.设置变量“i”,用来表示识别到什么颜色,识别到红色时,i=0;识别到蓝色时,i=1;识别到黄色时,i=2。 5.调用函数与传参。i=0时:min=30,max=60;i=1时:加速行驶,min=50,max=80;i=2时:减速行驶,min=20,max=40 6.加上循环与初始化,完整程序如下。 7.刷入程序,将千里马放至地图中测试,根据测试结果修改白平衡、阈值、速度等参数。 4.总结 1.如果颜色传感器识别有较大误差,应该怎么调节? 2.函数为什么要传参,这样有什么好处? 5.课后作业 1.每一次左右转弯都增加转向灯,程序应该怎么写?
|
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed