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

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

3天内不再提示

ZC-CLS381RGB颜色识别+8x8点阵指示—配置颜色识别寄存器组(上)

FPGA创新中心 来源:FPGA创新中心 2023-11-03 17:40 次阅读

在现代工业生产中,颜色识别技术已经成为了一个非常重要的技术。颜色识别可以用于产品质量检测、物料分类、机器视觉等领域。本文将介绍如何使用FPGA结合ZC-CLS381RGB进行颜色识别。

教程通过对采集到的图像信息中,R、G、B三个颜色分量的占比,来判断识别到的颜色信息。本教程只实现对红色、绿色、蓝色的识别,如果各位读者要想实现对其它色彩信息的识别,可根据三个色彩分量的占比来判断。

ZC-CLS381RGB简介

ZC-CLS381RGB是一款基于RGB三基色原理的颜色识别传感器。它可以通过对物体反射光的RGB三基色分量进行测量,来判断物体的颜色。该传感器具有高精度、快速响应、稳定性好等特点,广泛应用于自动化生产线、机器人智能家居等领域。

配置寄存器

ZC-CLS381RGB是一款RGB LED驱动芯片,需要通过配置寄存器来让该模块正常工作。下面就对颜色识别需要配置的寄存器进行介绍。

主控寄存器

01

MAIN_CTRL Register是主控寄存器,下图是主控寄存器的配置介绍:

wKgZomVEwBiATzWqAAHFub6DzHU673.jpg

▶ bit7~bit5,bit3,bit0:保留位(Reserved),使用时将这几位置0即可。

▶ bit4:软件复位位(SW Reset),当该位被置1时,芯片会进行软件复位,即将所有寄存器的值恢复为默认值。在使用ZC-CLS381RGB时,如果出现异常情况,例如芯片无法正常工作或者输出异常,可以通过将SW Reset位置1来进行软件复位,以恢复芯片的正常工作状态。同时,在初始化芯片时,也可以通过将SW Reset位置1来确保芯片的寄存器值处于默认状态,以避免出现不可预期的问题。但是如果软件复位位一直为高电平,模块就无法正常采集颜色,一直处于复位状态,如果要关闭该位则还需要发送一次指令。因此在本设计初始化时,将该位置为0,不启用软件复位。

▶ bit2:颜色传感器模式位(CS Mode),该位置为1时,表示所有的光传感器通道都被激活,包括RGB(三原色)、IR(红外光)和COMP(环境光)。这意味着该传感器可以同时测量红、绿、蓝三种颜色的光线强度、红外线的强度以及环境光的强度,并将这些数据传输到寄存器中进行处理。初始化配置时,需将该位置为1。

▶ bit1:环境光传感器/颜色传感器使能位(ALS/CS Enable),当该位置1时,表示使能环境光传感器和颜色传感器。在本设计中,需要使用到这两个传感器,因此在初始化时需要将该位置为1。

检测速率寄存器

02

ALS_CS_MEAS_RATE Register是环境光传感器和颜色传感器检测速率寄存器,下图是对该寄存器的配置介绍:

wKgZomVEwBiAAFq0AAFWbVH_lmM583.jpg

▶bit7、bit3:保留位(Reserved),使用时这两位需要置0。

▶ bit6,bit5,bit4:环境光传感器和颜色传感器速率位(ALS/CS Resolution),初始化时设置{bit6,bit5,bit4}=100,利用最快的时间对采集到的数据进行转换。

▶bit2,bit1,bit0:环境光传感器和颜色传感器测量速率位(ALS/CS Measurement Rate),初始化设置{bit2,bit1,bit0}=000,利用最快的采集速率采集数据。

增益寄存器

03

ALS_CS_MEAS_RATE Register是环境光传感器和颜色传感器增益寄存器,下图是对该寄存器的配置介绍:

wKgaomVEwBiAIrQbAACoRhPz6ZY070.jpg

▶bit7~bit3:保留位(Reserved),使用时这两位需要置0。

▶ bit2~bit0:环境光传感器和颜色传感器增益率位(Reserved),初始化时设置{bit2,bit1,bit0}=100,将增益率调到最大,以此增强信号的强度,使得信号更容易被检测到。

线上交流会

04

因为本教程采集的是红色、绿色、蓝色数据,芯片手册提供的寄存器组如下图所示:

wKgaomVEwBiAbvmvAAJRs4L7CXg716.jpg

0x0D、0x0E、0x0F分别表示绿色信息的低8位、中8位、高8位数据;0x10、0x11、0x12分别表示红色信息的低8位、中8位、高8位数据;0x13、0x14、0x15分别表示蓝色信息的低8位、中8位、高8位数据。在使用中,直接读取这些寄存器内的数据,然后拼接起来,即可得到红、绿、蓝色数据,再根据三个数据的占比,从而对采集到的物体颜色进行判断。

状态转移图和信号波形图绘制

在正式开始使用器件时,需要等待一段时间让器件稳定下来,如图所示:

wKgaomVEwBiAGwx_AAD6OXuJfHE547.jpg

待机唤醒时间最大为10ms,表示在测量的时候,两次获取数据的时间间隔最大为10ms。由于在数据手册内,未说明上电后直到模块稳定需要等待的时间,在这里我们人为设置上电等待的时间为20ms,给模块一个缓冲的时间,然后再对它进行配置。配置寄存器组信号波形图如下图所示:

wKgaomVEwBiAcMFkAAE5afKQjTo147.jpg

其中,i2c_start作为i2c控制模块的开始信号,检测到该开始信号后,就开始配置寄存器,向各个寄存器内写入数据。综上绘制的i2c控制模块配置寄存器组的状态转移图如下图所示:

wKgZomVEwBiATRwUAABpcIwZsCQ498.jpg

为了设计方便,对于50MHZ的系统时钟,将其分频为1MHZ的i2c驱动时钟用来驱动后续模块,同时令一个SCL时钟周期为4us,高电平持续时间为2us,低电平持续时间也为2us。这样设计的好处是,满足SCL高电平持续时间大于0.6us,SCL低电平持续时间大于1.3us。如下图所示:

wKgZomVEwBiAcolqAAFEDM7ORQc829.jpg

综上,绘制的分频信号波形图如下图所示:

wKgZomVEwBiAFeCvAACFLwthymU309.jpg

结合状态转移图,绘制的配置寄存器信号波形图如下图所示:

wKgaomVEwBiAQvNKAAKaX5w8NgQ907.jpg

wKgZomVEwBiAPqzGAAJzdeOXZco103.jpg

wKgaomVEwBiAFpz3AAKMFPC1sdk154.jpg

需要注意的是,配置寄存器组跳转条件为skip_en_0,这里配置的寄存器是向寄存器里面写入数据,总共需要配置三个,三个寄存器配置完成后,才能读出颜色数据。因此,step从0自增到1,必须要在cfg_num为3并且检测到结束信号的情况下进行。







审核编辑:刘清

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

    关注

    2553

    文章

    51511

    浏览量

    757256
  • FPGA
    +关注

    关注

    1631

    文章

    21806

    浏览量

    606688
  • 寄存器
    +关注

    关注

    31

    文章

    5377

    浏览量

    121394
  • RGB
    RGB
    +关注

    关注

    4

    文章

    801

    浏览量

    58761

原文标题:【知识分享】ZC-CLS381RGB颜色识别+8x8点阵指示——配置颜色识别寄存器组(上)

文章出处:【微信号:FPGA创新中心,微信公众号:FPGA创新中心】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    求助。8x8点阵的接法

    这个是我们社区里的那个8x8点阵贪吃蛇的游戏,无聊想自己做一个,可是不确定器件清单,有做过的吗,教教吧。
    发表于 05-11 13:36

    8x8点阵led显示

    本帖最后由 eehome 于 2013-1-5 09:45 编辑 有8x8点阵作品
    发表于 05-19 11:19

    Protues16x16点阵库文件(非4个8x8拼接而成)

    8x8点阵拼成一个16x16的点阵,但这样组合过程中连线十分麻烦,而且屏幕整体感不强。此16x16点阵
    发表于 07-18 02:42

    8x8点阵仿真

    本帖最后由 gk320830 于 2015-3-4 12:53 编辑 基于2片595级联驱动的8X8点阵仿真及0到9数字显示程序
    发表于 08-19 20:07

    8x8点阵。。。。

    8x8点阵。。。。
    发表于 05-05 16:25

    51单片机学习记录(8) “8X8点阵 精选资料推荐

    51单片机学习记录(8) “8x8点阵8x8点阵就是由64个小led灯组成的矩阵,现在先让我们看一下
    发表于 07-15 06:45

    8×8点阵显示仿真

    8x8点阵显示仿真,实现数字0-9的计数
    发表于 01-12 16:49 37次下载

    【实验102】8X8点阵实验

    HL配套C实验例程8X8点阵实验,配合开发板学习效果更好。
    发表于 04-11 17:14 17次下载

    8x8点阵贪吃蛇

    51单片机--8x8点阵贪吃蛇:源程序文件(含图片、程序文本)
    发表于 12-26 17:21 47次下载

    8X8点阵LED显示屏字模提取软件(测试版)

    8X8点阵LED显示屏字模提取软件(测试版)
    发表于 12-28 10:16 0次下载

    8x8点阵取模软件

    8x8点阵取模软件
    发表于 01-08 15:32 50次下载

    如何使用51单片机实现8x8点阵显示的程序免费下载

    本文档的主要内容详细介绍的是如何使用51单片机实现8x8点阵显示的程序免费下载。
    发表于 06-28 17:42 23次下载
    如何使用51单片机实现<b class='flag-5'>8x8</b><b class='flag-5'>点阵</b>显示的程序免费下载

    使用51单片机进行8x8点阵的详细资料说明

    本文档的主要内容详细介绍的是使用51单片机进行8x8点阵的详细资料说明。
    发表于 06-17 17:44 12次下载
    使用51单片机进行<b class='flag-5'>8x8</b><b class='flag-5'>点阵</b>的详细资料说明

    8x8点阵字模提取软件应用程序免费下载

    本文档的主要内容详细介绍的是8x8点阵字模提取软件应用程序免费下载。
    发表于 04-28 16:24 72次下载
    <b class='flag-5'>8x8</b><b class='flag-5'>点阵</b>字模提取软件应用程序免费下载

    8X8点阵应用演示的keil程序和电路图免费下载

    本文档的主要内容详细介绍的是8X8点阵应用演示的keil程序和电路图免费下载。
    发表于 05-22 14:18 34次下载
    <b class='flag-5'>8X8</b><b class='flag-5'>点阵</b>应用演示的keil程序和电路图免费下载