- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
智能垃圾分类机器人———颜色传感器测试1.工作原理4.颜色传感器测试3.准备工作(库函数导入)2.硬件连接颜色传感器测试一、TCS3200颜色传感器颜色传感器利用三原色感应原理(1)当知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色;(2)当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。举例说明:例如当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其它的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个光强值,就可以分析出反射到颜色传感器上的光的颜色。通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。1、什么是三颜色感应原理?序号引脚定义引脚说明1GND接地2LED白光LED灯引脚3S0比例因子选择输入脚4S1比例因子选择输入脚5VCC5伏电源6OUT输出端7S2输出频率选择输入脚8S3输出频率选择输入脚2、TCS3200颜色传感器引脚说明颜色传感器红蓝绿滤波器选通对应表比例因子设置对应表颜色传感器3、TCS3200颜色传感器滤波器及比例因子对应表二、颜色传感器硬件连接颜色传感器模块安装完成图颜色传感器模块安装示意图二、颜色传感器硬件连接---以常规赛为例颜色传感器模块与控制板连线图序号arduinoUNO引脚颜色传感器模块引脚10S021S132OUT43S254S36GNDGND7VCCVCCarduinoUNO控制板与颜色传感器连线表注意:只需接一组VCC和GND即可,另一组可以不接。LED可以不接。
程序下载到机器人后,启动机器人。方法一:用一张白色的A4纸放在颜色传感器前端,当颜色传感器识别到后,拿走该A4纸;方法二:用手遮挡在颜色传感器前端,当颜色传感器识别到手后,拿开手。颜色传感器白平衡校正---使用前从理论上讲,白色是由等量的红色、绿色和蓝色混合构成,但在实际应用中,白色中的三原色并不完全相等,并且对TCS3200的光传感器来说,它对红、绿、蓝这三种基本色的敏感性并不相同,从而导致TCS3200的RGB输出并不相等,因此在测试前必须对颜色传感器进行白平衡校正,通过白平衡校正得到RGB比例因子,使得TCS2300对所检测的“白色”中的三原色相等。白平衡校正原因:白平衡校正方法:导入库:把右图中的5个库函数文件夹复制到对应arduino目录下的libraries目录下。三、颜色传感器测试准备工作颜色传感器测试程序#includeColSensor.hColSensormysensor(0,1,3,4,2,10);//颜色传感器在板上所对应的引脚口voidCounter(){mysensor.g_count++;//计算1s内的脉冲数,因为对于TCS3200颜色传感器来说,其对颜色的识别其实就是通过计算1S内传感器输出的脉冲数的比较、计算}voidsetup(){Serial.begin(9600);//设置波特率为9600mysensor.Mode();//初始化颜色传感器的引脚口attachInterrupt(0,Counter,RISING);//(外部中断函数)0;对应的0号引脚;counter:中断时要执行的函数;RISING:表示电平由低电平变为高电平时触发;mysensor.Test();//test()函数为库里的一个函数,其作用是计算出RGB的比例因子}四、颜色传感器测试方法及步骤在颜色传感器测试过程中,机器人arduino板的下载线要一直与电脑相连。颜色传感器测试程序voidloop(){mysensor.Get();//获取颜色传感器所识别的RGB的三个参数Serial.print(R);//在串口上输出字符“R”Serial.println(mysensor.g_array[0]);//输出颜色传感器感应到的色块对应的红色的值
文档评论(0)