论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
基于STM32的手势识别检测
基于STM32的手势识别检测
玛卡巴卡的卡巴卡玛
金牌会员
|
2022-6-24 11:00:55
|
显示全部楼层
|
阅读模式
楼主
主题
805
|
帖子
805
|
积分
2415
基于STM32的手势识别检测
1.简介
手势识别是计算机科学和语言技术中的一个主题,目的是通过数学算法来识别人类手势。 手势可以源自任何身体运动或状态,但通常源自面部或手。 本领域中的当前焦点包括来自面部和手势识别的情感识别。 用户可以使用简单的手势来控制或与设备交互,而无需接触他们。姿势,步态和人类行为的识别也是手势识别技术的主题。手势识别可以被视为计算机理解人体语言的方式,从而在机器和人之间搭建比原始文本用户界面或甚至GUI(图形用户界面)更丰富的桥梁。
手势识别使人们能够与机器进行通信,并且无需任何机械设备即可自然交互。 使用手势识别的概念,可以将手指指向计算机屏幕,使得光标将相应地移动。 这可能使常规输入设备(如鼠标,键盘甚至触摸屏)变得冗余。
越来越多的电子设备都在使用手势识别功能。顾名思义,手势识别旨在识别人类的物理运动或“手势”。例如,在设备前面以特定模式挥动您的手可能会告诉它启动特定的应用程序,诸如此类的手势识别经常出现在智能手机和平板电脑中。
手势识别被分类为一种非接触式用户界面(TUI)。与触摸屏设备不同,TUI设备无需触摸即可控制。像Google Home和Amazon Alexa这样的语音控制智能扬声器是TUI的主要例子。
手势识别也打开了通向输入可能性的全新世界的大门。用户可以尝试其他基于手势的输入形式,而不是仅限于传统的输入形式。有些设备甚至允许用户设置自己的手势。
除智能手机和平板电脑外,手机识别还可用于汽车信息娱乐中心、视频游戏控制台、人机界面等。最重要的是,手势识别技术正变得越来越流行,并且没有任何迹象表明它会很快放慢速度。
2.PAJ7620介绍
PAJ-7620U2是由原相科技公司开发的一款手势识别芯片, 内集成了光学数组式传感器单元,可以快速准确的对输入信号进行感应和输出处理。内置光源和环境光抑制滤波器,能在黑暗或低光环境下工作。它支持上、下、左、右、前、后、顺时针旋转、逆时针旋转和挥动的手势动作识别,以及支持物体接近检测等功能。可大致检测物体体积大小和亮度。使用IIC通信接口可达400KHz通信速率。
⚫可直接识别 9 种基本手势,支持手势中断输出
⚫ 内置红外 LED 和光学镜头,能在低光和黑暗环境下工作
⚫ 支持 I2C 接口通信,仅需两根信号脚即可控制
⚫ 板载电平转换电路,可兼容 3.3V/5V 的逻辑电平
2.2 通讯方式
PAJ7620使用IIC通信接口可达400KHz通信速率。
功能模块框图如下所示:
其中, I2C_SCL 和 I2C_SDA 是连接 MCU 的 IIC 接口, MCU 通过这个 IIC 接口来控制PAJ7620,在上述框图可以看到,该芯片内部自带 LED 驱动器,传感器感应阵列、目标信息提取阵列和手势识别阵列。 芯片工作时通过内部 LED 驱动器,驱动红外 LED向外发射红外线信号,当传感器阵列在有效的距离中探测到物体时,目标信息提取阵列会对探测目标进行特征原始数据的获取,获取的数据会存在寄存器中,同时手势识别阵列会对原始数据进行识别处理,最后将手势结果存到寄存器中,用户可根据 I2C 接口对原始数据和手势识别的结果进行读取。
2.3 硬件驱动
1.打开STM32CubeMX软件,配置手势识别引脚PB6(IIC_SCL)、PB7(IIC_SDA)。
2.设置引脚模式为推挽输出模式,初始化电平为高电平。
3.手势模块底层接口IIC协议函数。
起始信号
钟线为高电平时,数据线由高变低为起始信号。
/***************发送起始信号*************
*
*说明:时钟线为高电平时,数据线由高变低为起始信号
*******************************************/
void IIC_Start(void)
{
IIC_SDA_OUT_MODE();//输出模式
IIC_SCL(1);
IIC_SDA_OUT(1);
DelayUs(2);
IIC_SDA_OUT(1);
DelayUs(2);
IIC_SCL(0);//钳住IIC总线,准发送或者接收数据
}
复制代码
停止信号
时钟线为高电平时,数据线由低变高为停止信号。
/**************发送停止信号*****************
**
**说明:时钟线为高电平时,数据线由低变高为停止信号
************************************************/
void IIC_Stop(void)
{
IIC_SDA_OUT_MODE();//输出模式
IIC_SCL(0);
IIC_SDA_OUT(1);
DelayUs(2);
IIC_SCL(1);
DelayUs(2);
IIC_SDA_OUT(1);
DelayUs(2);
}
复制代码
发送应答和发送数据
时钟上升沿读取数据,下降发送数据。
[code]/****************发送应答信号**************u8 ack -- 0应答,1非应答********************************************/void IIC_Send_Ack(u8 ack){ IIC_SDA_OUT_MODE();//输出模式 IIC_SCL(0); if(ack&0X01)IIC_SDA_OUT(1);//非应答 else IIC_SDA_OUT(1);//应答 DelayUs(2); IIC_SCL(1);//时钟线拉高,数据发送完成 DelayUs(2); IIC_SCL(0);//时钟线拉低,准备下一次数据收发}/***************发送一字节数据***************/void IIC_Send_Byte(u8 txd){ u8 i=0; IIC_SDA_OUT_MODE();//输出模式 for(i=0;i
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
玛卡巴卡的卡巴卡玛
金牌会员
这个人很懒什么都没写!
楼主热帖
SQL SERVER事务提交回滚
如何用技术改变生活
【C++】ZZ1864- 解题精讲
数据类型的内置方法
ConcurrentHashMap源码,看我这篇就够 ...
共收录 腾讯 的 48 款开源软件,第 1 ...
Spring循环依赖那些事儿(含Spring详细 ...
.NET中使用RabbitMQ延时队列和死信队列 ...
Java的运行时数据区域
线程池:ThreadPoolExecutor源码解读 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表