PAJ7620u2手势模块

一、简介:手势传感器,捕捉手势的芯片。

1、内置光源和环境光源抑制滤波器集成的led,镜头和手势感测器在一个小的立方体模组,能在黑暗或低光环境下工作。

2、内置9个手势类型:上,下,左,右,前,后,顺时针旋转,逆时针旋转,挥动。支持输出中断。

3、支持接近检测功能,检测物体体积大小和亮度。

4、分辨率:60x60 pixels   ,每个像素的大小是:20x20 um2 , 最大支持的速率:720fps。  

5、模式:gesture / cursor / image modes

6、控制速度:

        在普通模式下:60~600°/s

          在gaming模式下:60~1200°/s

7、通讯模式:

        I2C模式(for gesture/ curcos 模式):最高能达到400kbit/s

        4-wire  SPI (for Image 模式):22~48Mhz(Frame subtraction mode) / 44~48Mhz(Raw data mode)

二、工作原理:

PAJ7620u2工作时通过内部LED驱动器,驱动红外LED向外发射红外信号,当传感器阵列在有效地距离中探测到物体时,目标信息提取阵列会对探测目标进行特征原始数据地获取,获取数据会存在寄存器中,同时手势识别阵列会对原始数据进行识别处理,最后将手势结果存到寄存器中,用户可根据I2C接口对原始数据和手势数据地结果进行读取。

三、模块BANK简介:

1、在PAJ7620内部有两个BANK 寄存器区域,分别是BANK0,BANK1。

2、想访问其中地bank区域下的寄存器,需要在访问前发送控制指令进入该寄存器区域,具体控制指令如表:

BANK区域

地址

数值

BANK0

0XEF

0X00

BANK1

0XEF

0X01

进入BANK0区域,往传感器0XEF地址写0X00。

进入BANK1区域,往传感器0XEF地址写0x01

四、上电流程图

五、IIC通讯模式

 1、在iic通讯接口上,只能作为从站,不能作为主站。

2、读写控制的三种状态:写貌似只能单个字节的写,读可以分为单字节读取,和多字节读取。

3、IIC的速率:分为标准模式和极速模式。

 

4、IIC的时序:

 六、寄存器简介:

1、bank寄存器

进入BANK0区域,往传感器0XEF地址写0X00。

进入BANK1区域,往传感器0XEF地址写0x01. 

2、使能工作寄存器在BANK1 地址 0X72  。

只关心bit0 ,设置为1,则使能PAJ7620工作,设置为0,则失能PAF7620工作

3、bank 0 下的挂起管理寄存器:地址0x03

进入挂起状态

先写寄存器BANK1 ,addr 0x72,写入0X00,禁用paj7620.

然后写寄存器BANK0,ADDR 0X03,写入0x01,处理IC suspend命令。

退出挂起状态

先通过写入ID,处理I2C唤醒命令,

然后写寄存器BANK 1 ,ADDR 0x72,写入0x01,启用PAJ7620.

4、手势识别寄存器:0X43,0X44

 

5、物体亮度寄存器:0XB0 

 6、物体大小寄存器:0XB1,0XB2

七、经验理解:

 1、0x43寄存器是手势检测的标志,即0x43寄存器有bit位为高的时候,就是检测到手势了。然后读取0x44之后,0x43寄存器内容就自动设置为0了。

2、上电之后有几个延迟要注意下。

3、读取手势寄存器的时候,需要判断下,当读取到的内容不为0,就操作自己的逻辑。

4、第一步激活IIC的时候,往iic从站里,写入地址就可以了,不需要写内容。

5、切换bank的之后,最好延迟一下。

6、我的从站地址是0x73,仅作参考。

八、初始化代码:

设备初始化:

const unsigned char Init_Register_Array[][2] = {
    {0xEF,0x00},
    {0x37,0x07},
    {0x38,0x17},
    {0x39,0x06},
    {0x41,0x00},
    {0x42,0x00},
    {0x46,0x2D},
    {0x47,0x0F},
    {0x48,0x3C},
    {0x49,0x00},
    {0x4A,0x1E},
    {0x4C,0x20},
    {0x51,0x10},
    {0x5E,0x10},
    {0x60,0x27},
    {0x80,0x42},
    {0x81,0x44},
    {0x82,0x04},
    {0x8B,0x01},
    {0x90,0x06},
    {0x95,0x0A},
    {0x96,0x0C},
    {0x97,0x05},
    {0x9A,0x14},
    {0x9C,0x3F},
    {0xA5,0x19},
    {0xCC,0x19},
    {0xCD,0x0B},
    {0xCE,0x13},
    {0xCF,0x64},
    {0xD0,0x21},
    {0xEF,0x01},
    {0x02,0x0F},
    {0x03,0x10},
    {0x04,0x02},
    {0x25,0x01},
    {0x27,0x39},
    {0x28,0x7F},
    {0x29,0x08},
    {0x3E,0xFF},
    {0x5E,0x3D},
    {0x65,0x96},
    {0x67,0x97},
    {0x69,0xCD},
    {0x6A,0x01},
    {0x6D,0x2C},
    {0x6E,0x01},
    {0x72,0x01},
    {0x73,0x35},
    {0x74,0x00},
    {0x77,0x01},
};

手势检测初始化:
//Gesture register initializes array
const unsigned char Init_Gesture_Array[][2] = {
    {0xEF,0x00},
    {0x41,0x00},
    {0x42,0x00},
    {0xEF,0x00},
    {0x48,0x3C},
    {0x49,0x00},
    {0x51,0x10},
    {0x83,0x20},
    {0x9F,0xF9},
    {0xEF,0x01},
    {0x01,0x1E},
    {0x02,0x0F},
    {0x03,0x10},
    {0x04,0x02},
    {0x41,0x40},
    {0x43,0x30},
    {0x65,0x96},
    {0x66,0x00},
    {0x67,0x97},
    {0x68,0x01},
    {0x69,0xCD},
    {0x6A,0x01},
    {0x6B,0xB0},
    {0x6C,0x04},
    {0x6D,0x2C},
    {0x6E,0x01},
    {0x74,0x00},
    {0xEF,0x00},
    {0x41,0xFF},
    {0x42,0x01},
};

物体检测初始化:

//Approaches register initialization array
const unsigned char Init_PS_Array[][2] = {
    {0xEF,0x00},
    {0x41,0x00},
    {0x42,0x00},
    {0x48,0x3C},
    {0x49,0x00},
    {0x51,0x13},
    {0x83,0x20},
    {0x84,0x20},
    {0x85,0x00},
    {0x86,0x10},
    {0x87,0x00},
    {0x88,0x05},
    {0x89,0x18},
    {0x8A,0x10},
    {0x9f,0xf8},
    {0x69,0x96},
    {0x6A,0x02},
    {0xEF,0x01},
    {0x01,0x1E},
    {0x02,0x0F},
    {0x03,0x10},
    {0x04,0x02},
    {0x41,0x50},
    {0x43,0x34},
    {0x65,0xCE},
    {0x66,0x0B},
    {0x67,0xCE},
    {0x68,0x0B},
    {0x69,0xE9},
    {0x6A,0x05},
    {0x6B,0x50},
    {0x6C,0xC3},
    {0x6D,0x50},
    {0x6E,0xC3},
    {0x74,0x05},
};
 

### Paj7620U2手势识别模块与Arduino集成指南 #### 安装库文件 为了使Paj7620U2手势识别模块能够正常工作于Arduino平台之上,需先完成相应库文件的安装操作。打开Arduino IDE后进入项目菜单下的加载库选项中的库管理界面寻找名为`Paj7620`的条目并点击安装按钮完成下载过程[^1]。 #### 查看示例程序 当上述步骤完成后,在IDE内即可访问到有关该器件的应用案例——即“Gesture PAJ7620”。这里包含了两种不同版本的手势种类测试方案供开发者选用:一种支持九类基本动作模式辨识;另一种则扩展到了十五种更为复杂的情形下运作良好。 #### 接口连线指导 针对具体的电气连接部分,仅需四根导线就可建立起稳定的通信链路。具体而言就是将传感器上的电源正极(VCC)、接地(GND),以及串行时钟(SCL)同数据线(SDA)分别对接至Uno板卡对应位置处即可实现稳定供电及I²C总线通讯接口之间的桥接作用。 对于采用ESP32作为主控单元的情况来说,则应按照以下映射关系来进行实际物理层面上线路布置: - **VDD -> 3.3V** - **Gnd -> GND** - **SCL -> GPIO22** - **SDA -> GPIO21** 以上配置适用于大多数基于ESP系列MCU构建而成的产品原型设计当中[^2]。 #### 示例代码展示 下面给出一段简单的Python风格伪代码用于描述初始化阶段所涉及的主要流程: ```python from machine import Pin, I2C import paj7620 i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000) paj7620Obj = paj7620.PAJ7620(i2cObj) print('Start initializing PAJ7620...') if not isinstance(paj7620Obj, Exception): print("PAJ7620 object created successfully.") else: raise RuntimeError("Failed to create PAJ7620 object.") def set_gesture_high_rate(rate=True): """Set gesture recognition rate.""" pass # Placeholder function body; actual implementation depends on library specifics. ``` 这段代码片段展示了如何利用MicroPython框架配合特定驱动库来启动并配置手势感应装置的工作参数设置方法[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值