0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Adafruit颜色传感器的使用

454398 来源:网络整理 作者:网络整理 2019-12-02 11:33 次阅读

概述

您现在可以通过这种可爱的彩色光传感器以令人眼花color乱的颜色看到电子设备。我们找到了市场上最好的色彩传感器TCS34725,它具有RGB和透明光敏元件。集成在芯片上并位于色彩感应光电二极管上的IR阻挡滤光片可最大程度地减少入射光的IR光谱分量,并可以精确地进行颜色测量。滤光片意味着您将获得比大多数传感器更真实的色彩,因为人类看不到红外线。该传感器还具有令人难以置信的3,800,000:1动态范围,并且积分时间和增益可调,因此适合在深色玻璃后面使用。

我们还添加了支持电路,例如3.3V稳压器,因此您可以安全地使用3-5VDC的电压为分接器供电,并为I2C引脚进行电平转换,以便它们可以与3.3V或5V逻辑一起使用。最后,我们指定了一个不错的中性4150°K温度LED,板上带有MOSFET驱动器,以照亮您要感应的内容。 LED可以通过任何逻辑电平输出轻松打开或关闭。

为获得更大的灵活性,我们为该评估板制作了两个不同的版本:适用于面包板的分线器和旨在与Flora可穿戴平台配合使用的可穿戴版本。

组装和接线

两个颜色传感器都预焊接了所有表面贴装组件。 Breakout-board版本附带一个可选的接头,用于面包板。焊接头是一个简单的过程:

程序集(仅限突破版本)

然后焊接!焊接所有引脚以确保良好的电气连接行动。

放置标题,如有必要,将标题修剪成一定长度,然后将其(长针向下)插入面包板。

将接点定位将接点放在排针的裸露短端上。

接线,这些传感器通过2线制I2C接口进行通信。要连接到处理器,总共只需要4条电线。

Flora接线:连接来源:

3.3v-》 3v(红线)

GND-》 GND(黑线)

SDA-》 SDA(白线)

SCL-》 SCL(绿线)

Arduino接线:从以下连接跳线:

5v-》 VIN(红线)

GND-》 GND(黑线)

SDA-》 SDA(橙色线)

SCL-》 SCL(白线)

注意:在老式的Arduino(如Duemilanove和pre R3 UNO)上,SDA位于Analog 4上一个d SCL位于模拟5上。

在R2 Megas之前,SDA位于Digtital 20上,SCL位于数字21上。对于莱昂纳多,SDA是数字2引脚,SCL是数字3引脚。

要控制LED (仅限突破版本)-可以将LED引脚拉低以关闭LED。这可以通过三种方式完成:

直接接地,以完全将其关闭。

连接到备用数字引脚,并使用digitalWrite()控制。

将LED引脚连接到INT引脚,并使用setInterrupt()进行控制(有关详细信息,请参见库参考)。

div》 Python和CircuitPython

将TCS34725传感器与Python和CircuitPython以及Adafruit CircuitPython TCS34725模块一起使用很容易。此模块使您可以轻松编写从传感器读取颜色的Python代码。

您可以将此电路与任何CircuitPython微控制器板或具有GPIO和Python的计算机配合使用,这要归功于我们的CircuitPython-for Adafruit_Blinka -Python兼容性库。

CircuitPython微控制器接线

首先,将TCS34725完全连接到您的开发板上,就像Arduino的前几页所示。以下是通过I2C连接将Feather M0连接到传感器的示例:

板3V 至传感器VIN

板GND 到传感器GND

板载SCL 到 sensorSCL

板载SDA 到传感器SDA

Python计算机接线

由于有数十种Linux计算机/主板可以使用我们将展示Raspberry Pi的接线。对于其他平台,请访问Linux上的CircuitPython指南,以了解您的平台是否受支持。

以下是与I2C相连的Raspberry Pi:

Pi 3V3 至传感器VIN

Pi GND 到传感器GND

Pi SCL 到传感器SCL

Pi SDA 到传感器SDA

CircuitPython安装TCS34725库 》

您需要在CircuitPython板上安装Adafruit CircuitPython TCS34725库。

首先请确保您正在为板运行最新版本的Adafruit CircuitPython。

下一步,您将需要安装必要的库才能使用硬件-请仔细按照以下步骤从Adafruit的CircuitPython库捆绑包中查找和安装这些库。我们的简介指南上有一个很棒的页面,介绍如何为快速和非表达板安装库包。

请记住非表达板,例如,您需要从束中手动安装必要的库:

adafruit_tcs34725.mpy

adafruit_bus_device

在继续制作之前确保您开发板上的lib文件夹或根文件系统已复制 adafruit_tcs34725.mpy 和 adafruit_bus_device 文件和文件夹。

下一步连接到开发板的串行REPL,这样您就可以在CircuitPython上运行》》》 提示。

TCS34725库的Python安装

您需要安装Adafruit_Blinka库,该库在以下方面提供CircuitPython支持蟒蛇。这可能还需要在您的平台上启用I2C并验证您正在运行Python3。由于每个平台都略有不同,并且Linux经常更改,请访问Linux上的CircuitPython指南以准备好您的计算机!

完成后,从命令行运行以下命令:

sudo pip3 install adafruit-circuitpython-tcs34725

如果您的默认Python是版本3,则可能需要改为运行“ pip”。只要确保您不尝试在Python 2.x上使用CircuitPython,就不支持它!

CircuitPython和Python用法

为演示传感器的用法,我们将对其进行初始化,并从开发板的Python REPL中读取颜色以及更多内容。

运行以下代码以导入必要的模块并初始化与传感器的I2C连接:

下载:文件

复制代码

import board

import busio

import adafruit_tcs34725

i2c = busio.I2C(board.SCL, board.SDA)

sensor = adafruit_tcs34725.TCS34725(i2c) import board

import busio

import adafruit_tcs34725

i2c = busio.I2C(board.SCL, board.SDA)

sensor = adafruit_tcs34725.TCS34725(i2c)

现在,您就可以从传感器使用以下任意属性:

color_rgb_bytes -红色,绿色和蓝色值的三元组。这些以字节为单位从0到255返回(0是低强度,255是最大强度)。

color_temperature -传感器检测到的开尔文色温。

lux -传感器检测到的以勒克斯为单位的光强度。这是根据颜色计算得出的,可能不是非常准确!

下载:文件

复制代码

print(‘Color: ({0}, {1}, {2})’.format(*sensor.color_rgb_bytes))

print(‘Temperature: {0}K’.format(sensor.color_temperature))

print(‘Lux: {0}’.format(sensor.lux)) print(‘Color: ({0}, {1}, {2})’.format(*sensor.color_rgb_bytes))

print(‘Temperature: {0}K’.format(sensor.color_temperature))

print(‘Lux: {0}’.format(sensor.lux))

此外,您还可以读取和写入一些属性来更改传感器的行为:

integration_time -传感器的积分时间(以毫秒为单位)。

gain -传感器的增益必须为1、4、16、60。

ul》

下载:文件

复制代码

sensor.integration_time = 200

sensor.gain = 60 sensor.integration_time = 200

sensor.gain = 60

有关每秒打印范围的完整演示,请参见simpletest.py示例。将其保存为板上的 code.py 并检查REPL输出以查看每秒打印的范围。

带有CircuitPython的TCS34725!

完整的示例代码

下载:Project Zip 或 tcs34725_simpletest.py | 在Github上查看

复制代码

# Simple demo of the TCS34725 color sensor.

# Will detect the color from the sensor and print it out every second.

import time

import board

import busio

import adafruit_tcs34725

# Initialize I2C bus and sensor.

i2c = busio.I2C(board.SCL, board.SDA)

sensor = adafruit_tcs34725.TCS34725(i2c)

# Main loop reading color and printing it every second.

while True:

# Read the color temperature and lux of the sensor too.

temp = sensor.color_temperature

lux = sensor.lux

print(‘Temperature: {0}K Lux: {1}’.format(temp, lux))

# Delay for a second and repeat.

time.sleep(1.0)

# Simple demo of the TCS34725 color sensor.

# Will detect the color from the sensor and print it out every second.

import time

import board

import busio

import adafruit_tcs34725

# Initialize I2C bus and sensor.

i2c = busio.I2C(board.SCL, board.SDA)

sensor = adafruit_tcs34725.TCS34725(i2c)

# Main loop reading color and printing it every second.

while True:

# Read the color temperature and lux of the sensor too.

temp = sensor.color_temperature

lux = sensor.lux

print(‘Temperature: {0}K Lux: {1}’.format(temp, lux))

# Delay for a second and repeat.

time.sleep(1.0)

Arduino代码

下载Adafruit_TCS34725

要开始读取传感器数据,您需要安装

Adafruit_TCS34725

最简单的方法是打开管理Arduino IDE中的库。.. 菜单

然后搜索 Adafruit TCS34725 ,然后单击安装

我们还提供了有关Arduino库安装的出色教程,网址为:

http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

测试传感器

运行TCS34725测试草图以验证传感器是否正常工作。

将草图上传到Aruduino或Flora并打开串行监视器以查看 输出。草图应打印出基本的颜色测量参数,如下所示。移动传感器,遮盖传感器和/或将其暴露在不同的光源下以查看其反应。

报告的颜色参数为:

色温-以开尔文

勒克斯-或每平方米流明

R,G 和 B (已过滤的)值

清除(未过滤的)值

ColorView! ColorView草图演示了使用板载LED进行反射光测量。白色LED用于照亮附近的物体,传感器测量从物体反射的光。然后,ColorView草图使用传感器的RGB输出来驱动RGB指示灯,以使其与传感器看到的颜色匹配!

ColorView组件除了处理器和颜色传感器之外,您还需要RGB LED和一些电阻器

1个1K欧姆电阻器(棕色,黑色,红色,金色)

2个560欧姆电阻(绿色,蓝色,棕色,金色)

ColorView接线除了基本电源和I2C接线外,您还需要以下连接:

LED共阳极(长引脚)-》 5v。

LED红色引脚-》 1K电阻-》 Arduino引脚3

LED Gre zh-CN引脚-》 560欧姆电阻器-》 Arduino引脚5

LED蓝色引脚-》 560欧姆电阻器-》 Arduino引脚6

将ColorView草图上传到Arduino,然后将其他对象放置在传感器前面。 LED的颜色应与感测到的对象的颜色匹配!

图书馆参考

构造和初始化:

Adafruit_TCS34725(tcs34725IntegrationTime_t = TCS34725_INTEGRATIONTIME_2_4MS,

tcs34725Gain_t = TCS34725_GAIN_1X );

声明具有可选积分时间和增益值的TCS34725传感器。

布尔值Adafruit_TCS34725 :: begin(void)

初始化TCS34725颜色传感器。先调用此函数。

增益和积分时间: :

void Adafruit_TCS34725 :: setIntegrationTime(tcs34725IntegrationTime_t it)

设置积分从传感器获取颜色样本的时间。较长的积分时间可用于在弱光条件下提高灵敏度。有效积分时间为:

TCS34725_INTEGRATIONTIME_2_4MS = 0xFF,/** 《2.4ms */

TCS34725_INTEGRATIONTIME_24MS = 0xF6,/** 《24ms */

TCS34725_INTEGRATIONTIME_50MS = 0xEB,/** 《50ms */

TCS34725_INTEGRATIONTIME_101MS = 0xD5,/** 《101ms */

TCS34725_INTEGRATIONTIME_154MS = 0xC0,/** 《154ms */

TCS34725_INTEGRATIONTIME_700MS = 0x00/** 《700ms */

无效Adafruit_TCS34725 :: setGain(tcs34725Gain_t gain )

设置ADC的增益以控制传感器的灵敏度。有效的增益设置为:

TCS34725_GAIN_1X = 0x00,/** 《无增益*/

TCS34725_GAIN_4X = 0x01,/** 《2x增益*/

TCS34725_GAIN_16X = 0x02,/** 《16倍增益*/

TCS34725_GAIN_60X = 0x03/** 《60x增益*/

光读数和计算:

void Adafruit_TCS34725 :: getRawData(uint16_t * r,uint16_t * g,uint16_t * b,uint16_t * c )

读取原始传感器的红色,绿色,蓝色和透明部分的传感器输出。

uint16_t Adafruit_TCS34725 :: calculateColorTemperature(uint16_t r,uint16_t g,uint16_t b )

从红色,绿色和蓝色分量计算色温。

uint16_t Adafruit_TCS34725 :: calculateLux(uint16_t r, uint16_t g,uint16_t b )

计算来自红色,绿色和蓝色分量的照度。

中断和LED控制:

无效Adafruit_TCS34725 :: setInterrupt(boolean i )

设置传感器中断,以在检测到的电平在限制范围内时生成中断(请参见下面的setIntLimits())。 Int引脚仅在突破版本上可用。

布尔参数可用于控制LED。在突破版本上,必须将LED引脚连接至INT引脚以进行LED控制。

传递“ false”将启用板载LED进行反射光测量。

传递“ true”将关闭LED以进行入射光测量。

void Adafruit_TCS34725 :: clearInterrupt(void )

清除传感器中断。

无效Adafruit_TCS34725 :: setIntLimits(uint16_t低,uint16_t高)

设置中断的上限和下限。有关中断操作的更多详细信息,请参阅数据表。

在处理中使用它!

Adafruit_TCS34725库包括一个处理草图,可与ColorView Arduino草图通信并在计算机屏幕上实时显示颜色

处理草图仅适用于处理1.5.1。它与处理版本2.0不兼容!

在Arduino上加载ColorView ,打开ColorView示例草图并将其上传到您的Arduino。

记下Arduino使用的串行端口

在处理中加载ColorView.pde 导航到Adafruit_TCS34725 Library文件夹内的“ Processing”文件夹,然后打开“ ColorView.pde”。

编辑串行端口找到打开串行端口的行并进行编辑使用与Arduino相同的端口。

然后运行!运行处理草图时,它将显示传感器文本输出,并弹出带有色标的窗口匹配传感器看到的颜色。

识别颜色

使用颜色传感器识别特定颜色并不像将传感器对准色标并进行读取那样简单。有许多因素会影响读数,例如距离,视野和环境照明条件。 Adafruit论坛成员systembolaget开发了一种能够快速可靠地识别许多不同颜色的系统,并针对该主题编写了出色的教程。

请参见下面的视频和github存储库链接:

颜色查找器Github存储库

下载

文件

Adafruit TCS34725 Arduino库

TCS34725数据表

在Adafruit Fritzing库中折叠对象

用于Breakout版本的EagleCAD PCB文件

用于Flora版本的EagleCAD PCB文件

突破委员会版本

原理图和制作印刷

Flora可缝制版本

示意图和装配图

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 颜色传感器
    +关注

    关注

    2

    文章

    83

    浏览量

    18019
收藏 人收藏

    评论

    相关推荐

    长距离色标传感器检测液体颜色

    传感器检测
    阿童木(广州)智能科技有限公司
    发布于 :2024年04月22日 15:47:19

    阿童木颜色传感器在车身颜色识别中的应用

    传感器
    阿童木(广州)智能科技有限公司
    发布于 :2024年03月12日 15:16:16

    阿童木颜色传感器应用:汽车车身颜色识别

    引言 随着科技的不断进步,汽车制造业也在不断迭代升级,全自动化生产技术成为现代汽车生产的主流。本文将深入探讨某大型汽车生产企业在其全国生产基地中,采用阿童木颜色传感器(CL2)对车身颜色进行识别
    的头像 发表于 01-26 14:45 191次阅读
    阿童木<b class='flag-5'>颜色</b><b class='flag-5'>传感器</b>应用:汽车车身<b class='flag-5'>颜色</b>识别

    阿童木颜色传感器应用汽车车漆颜色判断

    传感器应用
    阿童木(广州)智能科技有限公司
    发布于 :2024年01月26日 14:32:03

    阿童木颜色传感器:黑暗环境的检测效果演示

    传感器
    阿童木(广州)智能科技有限公司
    发布于 :2024年01月17日 14:07:30

    阿童木颜色传感器:识别面条包装扎带是否缺失# 颜色传感器 # 面条生产

    传感器
    阿童木(广州)智能科技有限公司
    发布于 :2023年11月07日 13:52:02

    液体颜色是否会影响光电液位传感器的判断

    液体的颜色通常不会对红外水位开关的工作产生影响。红外水位开关是一种非机械式的传感器,它内置了红外发射管和接收管。红外发射管会发射出红外光,而接收管则用于接收光信号。当红外光照射到液体表面时,光会
    的头像 发表于 09-06 13:30 344次阅读
    液体<b class='flag-5'>颜色</b>是否会影响光电液位<b class='flag-5'>传感器</b>的判断

    颜色、色标模式于一身的ESE系列传感器

    什么是颜色传感器颜色传感器(ColorSensor)是用来识别和比较物体表面颜色值的传感器,以
    的头像 发表于 08-22 08:26 486次阅读
    集<b class='flag-5'>颜色</b>、色标模式于一身的ESE系列<b class='flag-5'>传感器</b>

    颜色传感器的原理、分类及操作规程

    颜色传感器是一种能够检测物体颜色传感器。它通过感知物体反射、透射或发射的光的光谱特性,来确定物体的颜色
    的头像 发表于 07-09 11:37 1922次阅读

    颜色传感器的原理

    颜色传感器 何谓颜色传感器? 感光传感器(光传感器)中,检测R(红色)、G(绿色)、B(蓝色)3
    的头像 发表于 06-30 10:18 1816次阅读
    <b class='flag-5'>颜色</b><b class='flag-5'>传感器</b>的原理

    颜色传感器原型:从对象中检测颜色名称

    电子发烧友网站提供《颜色传感器原型:从对象中检测颜色名称.zip》资料免费下载
    发表于 06-28 09:18 8次下载
    <b class='flag-5'>颜色</b><b class='flag-5'>传感器</b>原型:从对象中检测<b class='flag-5'>颜色</b>名称

    如何通过wifi传输传感器数据到mac?

    这是我所拥有的: Adafruit Huzzah Feather (esp8266) Hr-sc04 范围传感器 Arduino Uno 我或多或少没有使用 arduino 和编程的经验,也没有
    发表于 06-12 06:55

    TCS3200颜色传感器模块原理图及参考代码

    TCS3200颜色传感器模块参考代码原理图文档资料
    发表于 05-25 15:51 2次下载

    颜色传感器:识别萃取物分界点和颜色分层输出信号提示

    传感器
    阿童木(广州)智能科技有限公司
    发布于 :2023年05月15日 15:50:57

    颜色传感器颜色识别传感器颜色感应器在锂电制片机上的应用

    颜色传感器是一种广泛应用于自动化控制系统中的传感器,可以检测物体的颜色,用于对物体进行分类和识别。随着科技的不断发展,颜色
    的头像 发表于 05-15 15:28 830次阅读
    <b class='flag-5'>颜色</b><b class='flag-5'>传感器</b>丨<b class='flag-5'>颜色</b>识别<b class='flag-5'>传感器</b>丨<b class='flag-5'>颜色</b>感应器在锂电制片机上的应用