Color Sensor

来自Waveshare Wiki
Eng50讨论 | 贡献2023年1月14日 (六) 14:47的版本 (文本替换 - 替换“<h1>技术支持</h1>”为“=售后=”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
Color-Sensor
{{{name2}}}
{{{name3}}}
功能简介
特性 TCS3200 颜色传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I/Os

说明

产品特性

参数名称 参数
感应芯片 TCS3200(全彩颜色检测器)
工作电压 3.3V-5.5V
识别类型 静态识别
产品尺寸 36.0mm*20.5mm
固定孔尺寸 2.0mm
最佳检测距离 10mm

工作原理

原理:TCS3200D 的功能框图:
Color Sensor 1.png
TCS3200D 有四种滤波器类型:红,绿,蓝和清除全部光信息。当入射光投射
到传感器上时,通过光电二极管控制引脚 S2,S3 的电平组合,可以选通不
同的滤波器,如下表所示:

S2 S3 滤波器类型
L L 红色
L H 蓝色
H L
H H 绿色


TCS3200D 输出不同频率的方波(占空比 50%)。不同的颜色和光强对应不同频率的方波,
输出频率与光强度呈线性关系,该转换器典型输出频率范围为2Hz-500KHz,用户可通
过两个可编程引脚来选择 100%,20%或 2%的输出比例因子,如下表所示:

S0 S1 输出频率定标
L L 关断电源
L H 2%
H L 20%
H H 100%

TCS3200D 光传感器对红绿蓝三种颜色的敏感度是不相同的,导致它检测纯白
色的时候,得到的红绿蓝三个数值(RGB)输出并不一定是 255,因此在上电
之后的 2 秒内,会进行白平衡调整。流程如下:
① 将白色的纸放置在传感器的上方 1CM 处,给 LED 端口接入高电平,使四个
高亮白色 LED 发光。
② 程序依次选通 R,G,B 滤波器,分别测得红色,绿色和蓝色的值。
③ 计算出需要的三个调整参数。并自动调整白平衡。

主要用途

颜色排序、感应与校准环境光、测试条阅读和颜色匹配等。

接口说明

引脚 功能
LED 控制四个 LED 灯的状态
OUT 读取 RGB 三原色对应的输出频率
S3 与 S2 端口组合选择不同色光的滤波器
S2 与 S3 端口组合选择不同色光的滤波器
S1 与 S0 端口组合选择不同的输出比例因子
S0 与 S1 端口组合选择不同的输出比例因子
GND 电源地
VCC 电源正(2.7V-5.5V)

Pico使用教程

提供Python、C例程

Pico 快速上手

硬件连接

您可以对照以下表格连线。

Pico连接引脚对应关系
Color Pico 功能
VCC 3.3V 电源输入
GND GND 电源地
S0 GP18 与 S1 端口组合选择不同的输出比例因子
S1 GP19 与 S0 端口组合选择不同的输出比例因子
S2 GP20 与 S3 端口组合选择不同色光的滤波器
S3 GP21 与 S2 端口组合选择不同色光的滤波器
OUT GP17 读取 RGB 三原色对应的输出频率
LED GP16 控制四个 LED 灯的状态

Color-Pico 1.jpg

基础介绍

MicroPython系列
【MicroPython】Pico的基础介绍与环境安装

【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解

C/C++系列
【C/C++】 Windows教程1——环境搭建

【C/C++】 Windows教程2——创建工程

教程名3
列表3
教程名4
列表4
教程名5
列表5
教程名6
列表6
教程名7
列表7
教程名8
列表8

程序下载

打开树莓派终端,执行以下命令:

sudo apt-get install p7zip-full
cd ~
sudo wget  https://www.waveshare.net/w/upload/3/33/Color-Sensor-code.7z
7z x Color-Sensor-code.7z -o./Color-Sensor-code
cd ~/Color-Sensor-code
cd Pico/c/build/

例程使用

C部分

  • 以下教程为在树莓派上操作,但由于cmake的多平台、可移植的特点,在PC上也是能成功编译,但操作略有不同,需用户自行判断。

进行编译,请确保在c目录:

cd ~/Color-Sensor-code/Pico/c/

在文件夹中创建并进入build目录,并添加SDK: 其中 ../../pico-sdk 是你的SDK的目录。 我们示例程序中是有build的,直接进入即可

cd build
export PICO_SDK_PATH=../../pico-sdk
(注意:务必写对你自己的SDK所在路径)

执行cmake自动生成Makefile文件

cmake ..

执行make生成可执行文件,第一次编译时间比较久

make -j9

编译完成,会生成uf2文件。 按住Pico板上的按键,将pico通过Micro USB线接到树莓派的USB接口,然后松开按键。接入之后,树莓派会自动识别到一个可移动盘(RPI-RP2),将build文件夹下的main.uf2 文件复制到识别的可移动盘(RPI-RP2)中即可。

cp main.uf2 /media/pi/RPI-RP2/

Python部分

windows环境下的使用

  • 1.按住Pico板上的BOOTSET按键,将pico通过Micro USB线接到电脑的USB接口,待电脑识别出一个可移动硬盘(RPI-RP2)后,松开按键。
  • 2.将python目录中rp2-pico-20210418-v1.15.uf2 文件复制到识别的可移动盘(RPI-RP2)中
  • 3.打开Thonny IDE(注意:要使用最新版本的Thonny,否则是没有Pico的支持包的,当前Windows下的最新版本为v3.3.3)
  • 4.点击工具->设置->解释器,如图所示选择Pico及对应的端口

Pico-lcd-0.96-img-config.png
本例程提供了一个程序:

  • 5.文件->打开->Color Sensor.py,点击运行即可,如下图所示:

Pico-lcd-0.96-img-run.png

树莓派环境下的使用

  • 1.刷固件的过程与Windows上一样,你可以选择在PC或者树莓派上将rp2-pico-20210418-v1.15.uf2 文件拷入pico中。
  • 2.在树莓派山打开Thonny IDE (点击树莓logo -> Programming -> Thonny Python IDE ),你可以在Help->About Thonny查看版本信息

以确保你的版本是有Pico支持包的,同样你可以点击Tools -> Options... -> Interpreter选择MicroPython(Raspberry Pi Pico 和ttyACM0端口
如图所示:
Pico-lcd-0.96-img-config2.png
如果你当前的Thonny版本没有pico支持包,输入以下指令来更新Thonny IDE

sudo apt upgrade thonny

3.点击File->Open...->python/Color Sensor.py,运行脚本即可

操作与现象

1、将白纸放置在传感器四个高亮白色 LED 一面(下称正面)的上方 1CM 处。
2、给开发板上电。此时 LED 端口接入高电平,四个高亮白色 LED 点亮。
3、上电之后等待 2 秒钟以上(此时正在调整白平衡)。
4、调整结束以后,把传感器正面对着待测物体,串口输出对应的 RGB 数据,
参考颜色对照表,可知探测到的颜色。

注意事项

1、颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果,最好
把 Color Sensor 和光源等放置在一个封闭、无反射的盒子中测试。
2、每次 Color Sensor 模块重启或者更换光源时,都需要进行白平衡调整。

STM32使用教程

我们提供的例程是基于STM32F103RBT6跟STM32H743的,提供的连接方式是对应的STM32F103RBT6的引脚为例,如果有需要使用其他STM32,请按实际引脚连接

硬件连接

STM32F103RB连接引脚对应关系
Color STM32 功能
VCC 3.3V 电源输入
GND GND 电源地
S0 NC 与 S1 端口组合选择不同的输出比例因子
S1 NC 与 S0 端口组合选择不同的输出比例因子
S2 GPIOA.5 与 S3 端口组合选择不同色光的滤波器
S3 GPIOA.4 与 S2 端口组合选择不同色光的滤波器
OUT GPIOA.0 读取 RGB 三原色对应的输出频率
LED 3.3V 控制四个 LED 灯的状态

注意:STM32H743需要将S2连接至GPIOA.3。
Color-STM32 1.jpg

软件说明

例程是基于HAL库进行开发的。 请在资料里面下载程序,找到STM32程序文件目录,打开Color-Sensor-code\STM32\STM32F103RB\MDK-ARM
目录下的Color Sensor.uvprojx,即可看到程序。
STM32 Sound 2.png

打开main.c,重新编译下载即可。
MQ5 STM32 2.jpg

下载成功后,运行SSCOM,就可以实时查看传感器的状态啦。
Color STM32 3.png

操作与现象

1、将白纸放置在传感器四个高亮白色 LED 一面(下称正面)的上方 1CM 处。
2、给开发板上电。此时 LED 端口接入高电平,四个高亮白色 LED 点亮。
3、上电之后等待 2 秒钟以上(此时正在调整白平衡)。
4、调整结束以后,把传感器正面对着待测物体,串口输出对应的 RGB 数据,
参考颜色对照表,可知探测到的颜色。

注意事项

1、颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果,最好
把 Color Sensor 和光源等放置在一个封闭、无反射的盒子中测试。
2、每次 Color Sensor 模块重启或者更换光源时,都需要进行白平衡调整。

代码简介

处理函数在main.c文件里面,在main函数下方。

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)  //中断回调

Arduino使用教程

本例程已经在Arduino uno上测试通过,直接按下表连接Arduino uno即可

硬件连接

您可以对照以下表格连线。

Arduino连接引脚对应关系
Color Arduino 功能
VCC 5V 电源输入
GND GND 电源地
S0 D6 与 S1 端口组合选择不同的输出比例因子
S1 D5 与 S0 端口组合选择不同的输出比例因子
S2 D4 与 S3 端口组合选择不同色光的滤波器
S3 D3 与 S2 端口组合选择不同色光的滤波器
OUT D2 读取 RGB 三原色对应的输出频率
LED 3.3V 控制四个 LED 灯的状态

Color-Arduino 1.jpg

安装编译软件(Windows教程)

arduino IDE 安装教程

运行程序

在我们提供的资料里面下载程序,并解压,再进入Color-Sensor-code/Arduino/Color_Sensor目录下
双击打开Color_Sensor.ino文件。
选择你的开发板,跟对应的端口。

MQ5 Arduino 1.jpg

进行编译下载,如下图:
MQ5 Arduino 2.jpg

下载成功后,运行SSCOM,就可以实时查看传感器的状态啦。
Color Arduino 3.png

操作与现象

1、将白纸放置在传感器四个高亮白色 LED 一面(下称正面)的上方 1CM 处。
2、给开发板上电。此时 LED 端口接入高电平,四个高亮白色 LED 点亮。
3、上电之后等待 2 秒钟以上(此时正在调整白平衡)。
4、调整结束以后,把传感器正面对着待测物体,串口输出对应的 RGB 数据,
参考颜色对照表,可知探测到的颜色。

注意事项

1、颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果,最好
把 Color Sensor 和光源等放置在一个封闭、无反射的盒子中测试。
2、每次 Color Sensor 模块重启或者更换光源时,都需要进行白平衡调整。

FAQ


颜色传感器模块使用前是要进行白平衡调节的,把我们的例程下载至开发板,上电前把模块对准白色物体,3秒后白平衡校准完成,此时把模块对准待测物体即可测试。

售后


联系人:黄工
QQ:2850151199
EMAIL:2850151199@qq.com
电话:0755-83040712
微信:扫下方二维码添加
Service20-Weichat.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证