迪文科技论坛

 找回密码
 立即注册
搜索
查看: 41|回复: 0

【分享】2023级 覃用彤 王明欢 手势密码解锁、颜色识别及LED

[复制链接]

0

主题

0

回帖

25

积分

新手上路

Rank: 1

积分
25
发表于 7 天前 | 显示全部楼层 |阅读模式
基于迪文 T5L 串口屏的手势密码解锁、颜色识别与自适应、RGB LED 灯光控制
案例一:九宫格手势密码解锁案例二:TCS3200 颜色识别与自适应系统案例三:全彩 RGB LED 灯光颜色控制
【作品简介】本作品基于迪文 T5L 增强型 8051 内核串口屏(800×480 分辨率)设计,集手势密码解锁、颜色识别与自适应、RGB LED 灯光控制三大功能于一体,通过统一的人机交互界面实现多模块协同工作。
(一)九宫格手势密码解锁
利用迪文串口屏的触控采集与图形显示能力,设计 3×3 九宫格手势密码解锁系统,满足以下要求:
  • 屏幕具有开机动画与封面页面,显示系统标题与功能入口;
  • 解锁页面采用居中九宫格布局,支持手指滑动连线,实时显示手势轨迹;
  • 默认密码为 "1-2-3-6"(横折图案),密码长度不少于 4 位,支持中间点自动补全(如 1→3 自动选中 2);
  • 解锁成功后 0.5 秒自动切换至颜色识别主页面,解锁失败显示错误提示并自动重置;
  • 提供 "重置密码" 功能,支持用户自定义手势密码,采用 "输入新密码→确认新密码" 二次校验机制,密码存储于片内 Flash,掉电不丢失;
  • 系统上电自动初始化密码为默认值,确保设备可恢复。
(二)颜色识别与自适应系统
利用 TCS3200 颜色传感器与迪文串口屏,设计颜色识别与自适应系统,满足以下要求:
  • TCS3200 传感器采集被测物体的红、绿、蓝三原色分量,通过频率输出方式传输至单片机;
  • 内置 276 种标准颜色库,采用欧氏距离最小匹配算法,实时识别并显示最接近的颜色名称及 RGB 标准值;
  • 支持白平衡校准模式与测试模式切换,校准系数存储于单片机内存,提高识别精度;
  • 提供 "跟随识别" 功能:开启后 RGB LED 自动输出与识别颜色匹配的灯光,实现 "所见即所得" 的自适应效果;
  • 支持 "恢复出厂" 功能,一键清除跟随状态并关闭 LED 输出。
(三)全彩 RGB LED 灯光颜色控制
利用 RGB LED 与单片机 PWM 脉冲宽度调制技术,设计全彩灯光控制系统,满足以下要求:
  • RGB 控制界面提供 R、G、B 三分量滑动调节条,支持 0~255 范围连续调节,并实时显示当前数值;
  • 通过 PWM 占空比控制三色 LED 亮度,混合产生 1600 万种色彩;
  • 提供 LED 使能开关,可独立开启 / 关闭灯光输出;
  • 支持 "跟随识别" 模式,LED 颜色自动匹配 TCS3200 识别到的物体颜色;
  • 支持手动调节与自动跟随两种模式无缝切换。

【工作原理】(一)九宫格手势密码解锁1. 触控采集原理
迪文 T5L 串口屏内置触控控制器,将触摸事件分为三类:0x01(按下)、0x02(松手)、0x03(移动),并通过 VP 寄存器(0x0016)上报触摸类型与坐标。单片机循环读取该寄存器,读取后立即写零清空,确保每次事件仅处理一次。
2. 九宫格命中检测
九个圆点以固定坐标存储于单片机数组中,触摸发生时,将触摸坐标与九个圆点坐标逐一比较,若距离小于设定阈值(40 像素)则判定命中。命中后将该点编号记录至输入密码数组,并通过 "画圆控件"(VP=0x2000)将该圆点放大变色,提供视觉反馈。
3. 中间点自动补全
当用户从点 1 滑动到点 3 时,系统自动检测两点之间是否存在中间点(如点 2),若中间点尚未被选中则自动补入密码序列。该机制符合主流手机手势解锁的交互习惯,共支持 8 组中间点组合:{1,3}、{1,7}、{1,9}、{3,9}、{7,9}、{3,7}、{2,8}、{4,6}。
4. 连线实时显示
采用 DGUS"折线控件"(VP=0x2200)绘制手势轨迹。每次触摸移动时,将当前手指坐标作为折线末端点写入控件数据,实现连线实时跟随手指。松手时清除末端跟随点,保留已选中圆点之间的连线。
5. 密码验证与状态机
系统采用三态状态机管理密码流程:
  • 状态 0(验证模式):松手后将输入密码与存储密码逐位比较,一致则解锁成功,不一致则报错;
  • 状态 1(设置新密码):松手后将输入密码暂存,提示用户再次输入确认;
  • 状态 2(确认密码):松手后比较两次输入,一致则写入 Flash 并返回状态 0,不一致则提示错误并回到状态 1。
6. Flash 存储机制
密码通过 T5L 专用 Flash 写入指令(0xA5)存储于指定地址(0x1020),掉电不丢失。每次上电时系统自动将密码重置为默认值 "1-2-3-6",确保设备可恢复性。
(二)颜色识别与自适应系统1. TCS3200 传感器原理
TCS3200 是一款可编程彩色光到频率转换器,内部集成 8×8 光电二极管阵列,其中红、绿、蓝及清除滤波器各占 16 个。通过 S2、S3 引脚选择滤波器类型,传感器将对应颜色的光强转换为方波频率输出,频率与光强成正比。单片机通过外部中断(INT0)计数方波脉冲,计算单位时间内的脉冲数,即可得到对应颜色分量值。
2. 白平衡校准
系统上电后默认进入白平衡校准模式,依次测量红、绿、蓝三通道在标准白色下的输出频率,计算各通道的校准系数(rp、gp、bp)。后续测量时将原始频率除以校准系数,得到归一化的 RGB 值(0~255),消除传感器个体差异与环境光影响。
3. 颜色匹配算法
内置 276 种标准颜色库,每种颜色包含 R、G、B 分量值与中文名称。识别时计算当前测量值与库中每种颜色的欧氏距离
取距离最小的颜色作为识别结果,将颜色名称(6 字节)与标准 RGB 值回传至串口屏显示。
4. 定时器调度机制
采用定时器 2(1ms 中断)作为系统时基,每累计 10ms 触发一次颜色采集。采集过程中关闭中断计数,切换滤波器后重新开启,依次完成 R、G、B 三通道测量,确保数据稳定。
(三)全彩 RGB LED 灯光控制1. RGB LED 发光原理
全彩 RGB LED 内部集成红、绿、蓝三颗独立 LED 灯珠,共阴极或共阳极连接。通过分别控制三路灯珠的导通时间,改变三种原色的发光亮度,依据加色混光原理混合得到不同色彩。
2. PWM 脉冲宽度调制调光
单片机定时器 0 产生 10μs 定时中断,在中断服务函数中维护一个 0~255 循环计数的 PWM 计数器。将计数器当前值与 R、G、B 设定值比较:若计数值小于设定值则对应 LED 点亮,否则熄灭。通过改变设定值即可调节占空比,设定值越大亮度越高。R/G/B 三分量(0~255)的不同组合可实现不同颜色。
3. 双模式切换
  • 手动模式:关闭跟随识别后,用户通过串口屏滑动条设置 R/G/B 数值,单片机读取 VP 寄存器(0x4423/0x4424/0x4425)的值并更新 PWM 比较值;
  • 跟随模式:开启跟随识别后,系统自动将 TCS3200 识别到的标准颜色 RGB 值赋给 LED,实现灯光颜色自动匹配被测物体。
4. 迪文屏交互原理
迪文串口屏通过串口与单片机通信,滑动条控件将用户设置的 R/G/B 数值写入指定 VP 地址,单片机循环读取这些变量并更新 PWM 输出;同时将当前色彩状态回传至屏幕显示,形成闭环交互。

【设计思路】(一)九宫格手势密码解锁1. 硬件架构
迪文 T5L 串口屏通过 UART 串口与单片机通信,屏幕集成触控采集与图形显示,无需额外触摸芯片。单片机仅需处理串口数据与逻辑运算,硬件结构简洁。
2. DGUS 界面设计
在迪文 DGUS 软件中设计四个页面:
  • 页面 0(封面):系统标题与功能入口;
  • 页面 1(解锁页):居中九宫格背景图、"重置密码" 按钮、状态提示文本框;
  • 页面 2(颜色识别页):RGB 数值显示、匹配颜色显示、跟随识别开关、恢复出厂按钮;
  • 页面 3(RGB 调节页):R/G/B 滑动条、数值显示、LED 使能开关。
页面切换通过写 VP 寄存器(0x0014)实现,单片机可主动控制页面跳转。
3. 软件框架
系统采用超级循环架构,主循环中依次执行:
  • 读取触摸事件并处理(按下 / 移动 / 松手);
  • 检测重置密码按钮状态;
  • 处理解锁成功延迟切屏;
  • 超时自动重置(0.8 秒无操作后清除当前输入);
  • 更新消息文本显示。
连线与圆点的刷新采用 "脏标志" 机制,仅在状态变化时写入 VP 寄存器,减少串口通信开销。
4. 防误触设计
  • 连线跟随逻辑仅在首次触摸(tick==0)时响应,松手验证后不再响应触摸移动,避免误触导致连线残留;
  • 设置 500ms 无触摸兜底验证,防止 0x02 松手事件丢失导致系统卡死;
  • 重置密码状态在超时重置时不被清除,确保设置过程不被意外中断。
(二)颜色识别与自适应系统1. 硬件连接
TCS3200 传感器的 OUT 引脚接单片机外部中断 0(P3.0),S2、S3 引脚接 P1.0、P1.1 用于滤波器选择,S0、S1 引脚硬件固定为 100% 输出缩放模式。传感器采用 5V 供电,与单片机共地。
2. 软件设计
  • 底层驱动:编写 TCS3200 初始化函数,配置 IO 口、外部中断、定时器 0;
  • 数据采集:定时器 2 中断中每 10ms 触发一次采集,依次切换 R/G/B 滤波器并读取脉冲计数;
  • 颜色匹配:采集完成后遍历 276 色库,计算欧氏距离并取最小值;
  • 结果输出:将识别到的颜色名称与标准 RGB 值写入串口屏 VP 地址(0x4400/0x4340/0x4360/0x4380)显示。
3. 自适应联动
跟随识别功能开启时,颜色识别结果直接作为 RGB LED 的输入,形成 "识别→匹配→输出" 的闭环。用户将传感器对准不同颜色物体,LED 灯光即时变化,直观展示颜色识别效果。
(三)全彩 RGB LED 灯光控制1. 硬件电路
RGB LED 的 R、G、B 引脚分别接单片机 P2.6、P2.5、P2.4,串联限流电阻保护灯珠。LED 采用共阴极接法,公共端接地,单片机输出高电平时对应颜色点亮。
2. PWM 驱动实现
定时器 0 配置为 16 位定时模式,每 10μs 触发一次中断。中断服务函数中:
  • PWM 计数器 count1 自增,范围 0~255;
  • 若 RGB_LED_COUNT 为奇数(使能状态),调用 RGB_ziyong () 函数比较 count1 与 R/G/B 设定值,输出对应电平;
  • 若 RGB_LED_COUNT 为偶数(关闭状态),输出全零熄灭 LED。
PWM 频率约为 392Hz(256×10μs),高于人眼闪烁感知阈值,视觉上无频闪。
3. 模式切换逻辑
系统通过读取 VP 寄存器(0x4428)判断跟随识别状态:
  • 跟随模式开启时,LED 输出锁定为识别到的标准颜色,滑动条调节无效;
  • 跟随模式关闭时,读取 LED 使能开关(0x4420),若使能则读取滑动条数值(0x4423/0x4424/0x4425)并更新 PWM 比较值。
两种模式可在运行中无缝切换,无需重启系统。

【系统创新点】
  • 多模块统一调度:将手势解锁、颜色识别、LED 控制三大功能集成于同一单片机,通过页面状态机实现功能切换,避免多任务操作系统开销,适合 8051 等平台;
  • 手势密码中间点自动补全:模拟主流智能手机的交互逻辑,提升用户体验;
  • 颜色识别与灯光自适应联动:TCS3200 识别结果直接驱动 RGB LED,实现 "所见即所亮" 的直观演示效果;
  • 276 色精细匹配:内置丰富颜色库,相比传统仅识别红 / 绿 / 蓝等基础颜色的方案,识别精度与实用性大幅提升;
  • 掉电密码存储与上电恢复机制:密码存储于 Flash,同时支持上电自动恢复默认密码,兼顾用户自定义与设备可维护性。

【演示视频】
【串口屏手势密码解锁,颜色识别及LED控制设计】 https://www.bilibili.com/video/B ... are_source=copy_web




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-9-18 14:33 , Processed in 0.042749 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表