[IDE]识别色彩只靠RGB吗?有8通道的传感器?看看AS7341
用于色彩识别的传感器有多种,如TCS230、TCS3200及VEML6040等,见图1所示,但这些色彩传感器多是基于RGB来识别色彩的。
图1 色彩传感器
此次介绍的主角AS7341可见光传感器却之有较大的区别,它提供8个可见光检测通道,该传感器的功能模块如图2所示。这8个检测通道的波长分布期间如图3所示。
图2 AS7341传感器模块
图3 8个检测通道的波长分布
为有一个感性的认识,从图4可以了解到传感器所检测的色彩波长区间。
图4 色彩的波长区间
以黄色为例,RGB色彩传感器和AS7341可见光传感器的对比如下表所示。
该可见光传感器是基于ams公司推出的新一代AS7341光谱传感IC,该传感器有8个可见光通道、1个闪烁通道、1个NIR通道和1个未加滤光片的通道。它拥有6个独立的16位ADC通道,且可以并行处理数据。此外,该传感器板载了两颗高亮LED,可在暗光环境下进行补光。
该传感器的技术参数如下:
- 供电电压:3.3V~5V
- 可见光测量范围:F1(405-425nm)、F2(435-455nm)、F3(470-490nm)、F4(505-525nm)、F5(545-565nm)、F6(580-600nm)、F7(620-640nm)、F8(670-690nm)
- 工作电流(不打开LED):<5mA
- LED驱动电流:1-20等级(4-42mA)
- I2C地址:0x39
- 工作温度范围:-30℃~85℃
- 工作湿度范围:5%RH~85%RH
- 产品尺寸:18*14mm
其主要的应用方向为:
- 高准度色彩检测与匹配
- 颜色混合效果检测
- 灯光色温调节
- 灯光氛围控制
- 植物养殖
该传感器的引脚功能如下表所示:
了解了该传感器的性能,那我们该如何使用它呢?
我们这里介绍的方法是为它配上一块FireBeetle-ESP32开发板,它与传感器的连接情况如图5所示,即除电源引脚连接到3.3V电源外,其它2个引脚是直接连接到I2C接口的对应引脚上。
图5 连接关系
要进行色彩的检测,其实现起来也极为方便,具体的步骤是:
1.以Arduino IDE为开发工具(版本为1.8.5),选取“项目”菜单下“加载库”的“添加一个ZIP库”选项;
2.在文件下载对话框,选取“DFRobot_AS7341-master.ZIP”;
图6加载ZIP库
3.在完成后,在“项目”菜单 “加载库”下即可见到“DFRobot_AS7341-master”选项。有了DFRobot_AS7341库,就可以编写相应的控制程序了。
4选取“文件”菜单下的“新建”选项;
5.录入对应的程序;
6.编译并下载程序后,通过串口监视器即可见到图8和图9的检测结果。
图7 检测程序及程序下载
图8 自然光检测值
图9 弱光检测值
相应的检测程序为:
#include"DFRobot_AS7341.h"
DFRobot_AS7341as7341;
void setup(void)
{
Serial.begin(115200);
while (as7341.begin() != 0) {
Serial.println("IIC init failed,please check if the wire connection is correct");
delay(1000);
}
}
void loop(void)
{
DFRobot_AS7341::sModeOneData_t data1;
DFRobot_AS7341::sModeTwoData_t data2;
as7341.startMeasure(as7341.eF1F4ClearNIR);
data1 = as7341.readSpectralDataOne();
Serial.print("F1(405-425nm):");
Serial.println(data1.ADF1);
Serial.print("F2(435-455nm):");
Serial.println(data1.ADF2);
Serial.print("F3(470-490nm):");
Serial.println(data1.ADF3);
Serial.print("F4(505-525nm):");
Serial.println(data1.ADF4);
as7341.startMeasure(as7341.eF5F8ClearNIR);
data2 = as7341.readSpectralDataTwo();
Serial.print("F5(545-565nm):");
Serial.println(data2.ADF5);
Serial.print("F6(580-600nm):");
Serial.println(data2.ADF6);
Serial.print("F7(620-640nm):");
Serial.println(data2.ADF7);
Serial.print("F8(670-690nm):");
Serial.println(data2.ADF8);
Serial.print("Clear:");
Serial.println(data2.ADCLEAR);
Serial.print("NIR:");
Serial.println(data2.ADNIR);
delay(1000);
}
若通过粉红色的吹塑纸来提供检测的样本,则其检测结果如图11 所示,说明在各色彩通道中F8通道的色彩成分最突出。
图10 粉红色检测
图11粉红色检测值
除了色彩检测外,该传感器还能对指定频率的光进行检测,其程序如图12所示。
图12 光频率检测程序及下载
在自然光的条件下,其检测值如图13所示;在打开白纸灯的情况下,其检测如图14所示,这是由于市电的工频为50Hz,故其结果如此。
图13自然光检测结果
图14 开灯后的检测值
有了可见光传感器AS7341 ,我们在进行色彩的识别是不是方便了很多!
---------------------
作者:jinglixixi
链接:https://bbs.21ic.com/icview-3145170-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。
[IDE]识别色彩只靠RGB吗?有8通道的传感器?看看AS7341相关推荐
- 颜色分类识别代码matlab——分解RGB通道通过阈值来判断
颜色分类识别代码matlab--分解RGB通道通过阈值来判断 代码下载链接 代码下载链接 代码下载链接 首先有一张包含多种颜色的图片: 然后可以编写代码,来实现分别提取出不同颜色的操作:
- c++ opencv 彩色图rgb 转换hsv 再通道分离
c++ opencv 彩色图rgb 转换hsv 再通道分离 // An highlighted block Mat img_hsv;cvtColor(img, img_hsv, COLOR_BGR2H ...
- Udacity机器人软件工程师课程笔记(二十二) - 物体识别 - 色彩直方图,支持向量机SVM
物体识别 1.HSV色彩空间 如果要进行颜色检测,HSV颜色空间是当前最常用的. HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一 ...
- YUV色彩模型与RGB色彩模型详解
一.背景及由来 光通过角膜.瞳孔.晶状体的折射光线,透过玻璃体到达视网膜.视网膜上分布着光感受器.光感受器按形状可分为两大类:视杆细胞和视锥细胞.色觉的形成与3中视锥细胞相关,它们分别包含光谱吸收峰在 ...
- 无聊的时候写了个颜色识别算法,基于RGB颜色模型
halcon是个好东西,里面有诸多的"轮子",随着版本的迭代"轮子"会越来越多越来越全面和完善.我用的halcon12里面有一种颜色识别的算法,它这种颜色识别是 ...
- 零基础入门机器学习:如何识别一只猫?
简介: 如何让机器识别一只猫?本文从人认识猫的基本方法入手,讲解如何训练机器获得模型的主要步骤,并进行简单的实践,分享了机器学习的一个基本原理--梯度下降实现线性回归.(文末福利:阿里云 AI 视觉训 ...
- python+Tesseract-OCR实现图片识别(只适合新手)
1.首先准备环境: python版本:2.7/3.6 操作系统:windows系统 2.准备工具: tesseract-ocr 安装后设置好环境变量 链接: https://pan.baidu.com ...
- python几行代码识别验证码_Python有多强?文字识别(验证码识别)只需三行代码!...
不要说这都是在借用其它语言的代码,其实这些东西真的无关紧要.何为Python高级语言,黑猫白猫能捉到老鼠的就是好猫!如果真的有那么高冷,那么任何程序你都要敲代码而不用任何模块? 再开个玩笑,要不用0和 ...
- 如何计算色彩滤镜的RGB值
节选自Duke在Coursera上的公开课:程序设计与Web入门. How to make a filter in any color The values in the table were det ...
最新文章
- 分割2021PanopticFCN
- 每日程序C语言11-求s=a+aa+aaa+aaaa+aa…a
- hibernate 出现Could not parse mapping document from resource 报错
- JUNOS Olive GRE Tunnel Configuration
- java.util.concurrent.Future基础
- 【OpenCV 例程200篇】77. OpenCV 实现快速傅里叶变换
- mysql临时表怎么显示_如何查看MySQL临时表的说明?
- mysql5.6.38占用内存过大问题解决
- html自动播放视频不可用muted,html5_videoaudio的autoplay属性失效的解决方法
- BLENDER快捷键(个人防止忘记的几个快捷键)
- 表格相对引用和绝对引用及相互切换(复制单元格函数公式保持不变)
- Unity打开电脑本地文件夹选择图片替换
- Spring Boot上传文件报UT005023 MultipartException NoSuchFileException
- Python,tkinter库与turtle库实现(520,情人节)小礼物
- 【金融学论文】金融支持低碳经济发展中的问题与对策(节选)
- Python程序员自制爬虫小程序, 瞬间爬取十几万美女图片
- C#练习题答案: 折叠用自己的方式去月球【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
- pymssql linux安装,linux下python安装pymssql模块
- mask rcnn涉及点__AP;mAP
- 插件qrcode和ityped
热门文章
- Machine-wide Progress Telerik Fiddler installation has been found at ...Please, use that one or unin
- StringUtils的用法
- vmware虚拟机查看宿主机ip(主机ip)
- mysql表白代码_GitHub - Rianley/wechatAlliance: 微信小程序--校园小情书后台源码,好玩的表白墙,告白墙。...
- windows安装mosquito(2.0.8)
- 员工最钟爱的五种福利
- PRK\LASIK\LASEK专题(治疗眼睛)
- Flutter——最详细(GridView)使用教程
- Picture Colorizer Pro for mac(黑白照片上色软件)
- 分子谱线数据绘图——matab