这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 课程二:基于PAJ7620U2的手势识别

共3条 1/1 1 跳转至

课程二:基于PAJ7620U2的手势识别

菜鸟
2024-07-06 10:17:52     打赏

       首先非常感谢EEPW能给我们提供这次宝贵的学习机会!让我们了解了基于STM32CUBE MX的图型可视法编程方法,掌握了串口输出、I2C和手势传感器PAJ7620U2等相关知识。在编写调试代码前,我们有必要了解下手势传感器PAJ7620U2的相关资料。

      手势传感器模块官网链接:https://wiki.seeedstudio.com/Grove-Gesture_v1.0/

      PAJ7620U2 Gesture Sensor是一款基于PAJ7620U2的手势识别模块,可直接识别9种基本手势,支持I2C接口,兼容3.3V/5V电平。

特点

基于PAJ7620U2传感器,可直接识别9种基本手势,支持手势中断输出

内置红外LED和光学镜头,能在低光和黑暗环境下工作

支持I2C接口通信,仅需两根信号脚即可控制

板载电平转换电路,可兼容3.3V/5V的逻辑电平

产品参数

工作电压:3.3V/5V

通信接口:I2C

识别距离:5CM ~ 15CM

识别手势:上、下、左、右、前、后、顺时针、逆时针、摇摆

速度:240HZ

识别视角:60° (对角线)

环境光免疫力:<100K LUX

产品尺寸:20MM × 20MM

过孔直径:2.0MM

应用场景:智能家居、办公室和教学;机器人交互、手势玩具、体感游戏装备

接口说明

引脚功能

引脚号    标识    管脚描述    

1    GND    电源地    

2    VCC    3.3V/5V电源正    

3    SDA    I2C数据线    

4    SCL    I2C时钟线    

首先需要对PAJ7620U2模块连接器一端进行改造,改成杜邦线接口:

image.png

杜邦线一端分别接CN10的3(SCL)、5(SDA)、7(3V3)、9(GND)脚。如下图所示:

image.png

       利用STM32CUBE MX进行基本代码的配置生成,然后自己进行功能部分的代码编写,这样就提高了编程的效率,节省了开发者大量的时间和精力。

      首先在课程一:点灯+串口打印的基础上,我们只需要配置I2C即可。如下图所示:

这里需要强调的是,将PB6和PB7引脚配置成I2C1后,还需要对GPIO进行配置,将PB6和PB7配置为PULL-UP,否则需要焊接上拉电阻。

image.png

I2C配置参数查看,一般保持默认参数即可。

image.png

配置好之后,点击生成软件代码即可。

主要代码如下:

包含的头文件及定义:

image.png

PAJ7620初始化寄存器数组:219个

image.png

image.png

串口重定义:这里重点强调下,因为使用了Printf函数,所以需要对串口进行重定义。并且还需要通过project-options for target-target,勾选Use MicroLIB,勾选后如果程序编译报错,点击Rebuild即可。因为 keil 在你点击编译的时候只会编译内容有变动的部分(指预处理后的部分)。 当你选择使用 MicroLIB 的时候,编译器会自动添加宏定义__MICROLIB,相对应的,头文件中的内容就会有所改变,导致包含了头文件的 .c 文件内容改变。而 startup 中处存在的条件汇编语句却没有得到预处理和汇编: 被抛弃的部分是堆栈的初始化处理程序, 可以看出定义了__MICROLIB宏和没有定义时堆栈的初始化是交由不同的函数处理的。但是编译的时候没改变这里的条件汇编,结果没有初始化的程序了,因此报错"符号未定义"。解决方式同样很简单, 点击重新编译即可。

image.png

Main及while函数:

image.png

PAJ7620U2初始化函数:

image.png

手势检测输出函数:

image.png串口输出结果如下图(整合了课程一:点灯+串口输出内容):

image.png

至此,此次课程学习完成!再次感谢EEPW给我的这次学习机会!


高工
2024-07-06 14:38:22     打赏
2楼

谢谢分享


专家
2024-07-13 11:08:00     打赏
3楼

谢谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]