Color Sensor
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品特性
参数名称 | 参数 |
感应芯片 | TCS3200(全彩颜色检测器) |
工作电压 | 3.3V-5.5V |
识别类型 | 静态识别 |
产品尺寸 | 36.0mm*20.5mm |
固定孔尺寸 | 2.0mm |
最佳检测距离 | 10mm |
工作原理
原理:TCS3200D 的功能框图:
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 快速上手
硬件连接
您可以对照以下表格连线。
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 灯的状态 |
基础介绍
程序下载
打开树莓派终端,执行以下命令:
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及对应的端口
- 5.文件->打开->Color Sensor.py,点击运行即可,如下图所示:
树莓派环境下的使用
- 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端口
如图所示:
如果你当前的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,请按实际引脚连接
硬件连接
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 灯的状态 |
软件说明
例程是基于HAL库进行开发的。
请在资料里面下载程序,找到STM32程序文件目录,打开Color-Sensor-code\STM32\STM32F103RB\MDK-ARM
目录下的Color Sensor.uvprojx,即可看到程序。
操作与现象
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即可
硬件连接
您可以对照以下表格连线。
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 灯的状态 |
安装编译软件(Windows教程)
运行程序
在我们提供的资料里面下载程序,并解压,再进入Color-Sensor-code/Arduino/Color_Sensor目录下
双击打开Color_Sensor.ino文件。
选择你的开发板,跟对应的端口。
进行编译下载,如下图:
下载成功后,运行SSCOM,就可以实时查看传感器的状态啦。
操作与现象
1、将白纸放置在传感器四个高亮白色 LED 一面(下称正面)的上方 1CM 处。
2、给开发板上电。此时 LED 端口接入高电平,四个高亮白色 LED 点亮。
3、上电之后等待 2 秒钟以上(此时正在调整白平衡)。
4、调整结束以后,把传感器正面对着待测物体,串口输出对应的 RGB 数据,
参考颜色对照表,可知探测到的颜色。
注意事项
1、颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果,最好
把 Color Sensor 和光源等放置在一个封闭、无反射的盒子中测试。
2、每次 Color Sensor 模块重启或者更换光源时,都需要进行白平衡调整。
FAQ
颜色传感器模块使用前是要进行白平衡调节的,把我们的例程下载至开发板,上电前把模块对准白色物体,3秒后白平衡校准完成,此时把模块对准待测物体即可测试。