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

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

3天内不再提示

STM32驱动PAJ7620手势识别传感器

jf_88434166 来源:jf_88434166 作者:jf_88434166 2026-01-06 09:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

原文链接:[https://www.yourcee.com/newsinfo/2925937.html]
1-主图.png

传感器简介

PAJ-7620U2是由原相科技公司开发的一款手势识别芯片, 内集成了光学数组式传感器单元,可以快速准确的对输入信号进行感应和输出处理。内置光源和环境光抑制滤波器,能在黑暗或低光环境下工作。它支持上、下、左、右、前、后、顺时针旋转、逆时针旋转和挥动的手势动作识别,以及支持物体接近检测等功能。可大致检测物体体积大小和亮度。使用IIC通信接口可达400KHz通信速率。
传感器内部自带 LED 驱动器,传感器感应阵列、目标信息提取阵列和手势识别阵列。传感器工作时通过内部 LED 驱动器,驱动红外 LED 向外发射红外线信号,当传感器阵列在有效的距离中探测到物体时,目标信息提取阵列会对探测目标进行特征原始数据的获取,获取的数据被保存在寄存器中,同时手势识别阵列会对原始数据进行识别处理,最后将手势结果存到寄存器中,用户可根据 I2C 接口对原始数据和手势识别的结果进行读取。
功能框图

模块原理图

在这里插入图片描述

VIN供电输入3.3-5V,GND供电负极,SDA数据线,SCL时钟线,INT中断输出

手势方向定义
在这里插入图片描述

STM32F407ZGT6开发板与传感器连接

5-接线表格.png

代码片

手势传感器获取感应信息,将结果通过开发版 usart1 串口输给串口调试助手程序显示出来。
在 main 函数中,首先对 USART 串口与 KEY 按键进行初始化配置。然后对传感器paj7620u2 进行初始化配置。当对传感器初始化成功后则退出 while 循环,进入第 21 行paj7620u2 传感器功能测试阶段。

int main(void)
{		
  /*初始化USART 配置模式为 115200 8-N-1,中断接收*/
  Debug_USART_Config();
  EXTI_Key_Config(); 
  
  printf(" 欢迎使用野火开发板rn");
  printf(" 手势识别传感器实验rn");
  
  while(!paj7620u2_init())  //PAJ7620U2传感器初始化
	{
	  printf("PAJ7620U2 初始化失败!!!rn");
	  delay_ms(600);	
	}
    printf("PAJ7620U2 初始化成功rn");
  while(1)
	{
		paj7620u2_sensor_test();//PAJ7620U2传感器测试
	}	
 }

在 test 函数中,第 12 行使用 scanf 函数,使开发板获取来自串口调试助手发出的控制指令。当开发板接收到的指令字符为“1”时,开发板控制传感器进入手势识别工作模式;当接收到的指令字符为“2”时,开发板控制传感器进入接近检测工作模式;当接收的字符既不是“1”也不是“2”时,则打印提示用户输入合法指令。

/**
  * @brief  PAJ7620U2传感器测试
  * @param  无
  * @retval 无
  */
void paj7620u2_sensor_test(void)
{   
	uint32_t   ch;
  
	Show_Mode_Message();//显示普通测量模式UI
	while(1)
	{
		scanf("%d",&ch);
    printf("接收到字符:%drn",ch);

		switch(ch)
		{
			case 1:  Gesrure_test();                    break;//手势检测模式
			case 2:  Ps_test();                         break;//接近检测模式 
      default: printf("请输入合法指令!rn");     break;
		}
		Show_Mode_Message();
	} 
}

手势识别传感器可以工作在手势识别与接近检测 2 种模式状态下。为了进行工作模式
的切换,我们采用了 KEY 按钮外部中端的方式。

  1. KEY 外部中断
    当我们想退出当前的工作模式时,可通过按住 key1 按钮,激发产生 EXTI 中断响应。在 IRQHandler 中断处理函数中,(第 9 行)当接受到中断信号时,变量 flag 赋值为 1。
    中断代码如下
void KEY1_IRQHandler(void)
{
  //确保是否产生了EXTI Line中断
	if(EXTI_GetITStatus(KEY1_INT_EXTI_LINE) != RESET) 
	{
	    flag=1;
    //清除中断标志位
		EXTI_ClearITPendingBit(KEY1_INT_EXTI_LINE);     
	}  
}
  1. 手势识别工作模式
    在 Gesrure_test()函数中,首先对 PAJ7620U2 手势识别检测进行初始化,(第 14 行代码)配置其 gesture_arry 数组的参数值。该数组有使能 9 个手势识别的中断标志输出的配置,初始化完毕后,在 while 循环中一直读取手势中断标志寄存器(第 26 行代码),当识别到相应的手势,手势标志会置 1,读取寄存器标志会自动清 0。根据手势的标志手势结果将被打印到串口上。当按下 KEY 按键,在中断处理函数中标志变量 flag 被赋值 1(第 20 行代码),此时关闭 9 个手势识别的检测输出,退出当前的手势识别测试模式。
/**
  * @brief  手势识别测试
  * @param  无
  * @retval 无
  */
void Gesrure_test(void)
{
  uint8_t status,i;
	uint8_t data[2]={0x00};
	uint16_t gesture_data;

	paj7620u2_selectBank(BANK0);//进入BANK0
	for(i=0;i< GESTURE_SIZE;i++)
	{
		GS_Write_Byte(gesture_arry[i][0],gesture_arry[i][1]);//手势识别模式初始化
	}
	paj7620u2_selectBank(BANK0);//切换回BANK0
  printf("按KEY1键退出当前模式rn");
	
	while(1)
	{       
		if(flag)
		{
      flag=0;
			GS_Write_Byte(PAJ_SET_INT_FLAG1,0X00);//关闭手势识别中断输出
			GS_Write_Byte(PAJ_SET_INT_FLAG2,0X00);
			break;
		}			
    status = GS_Read_nByte(PAJ_GET_INT_FLAG1,2,&data[0]);//读取手势状态			
		if(!status)
		{   
			gesture_data =(uint16_t)data[1]< < 8 | data[0];
			if(gesture_data) 
			{
				switch(gesture_data)
				{
					case GES_UP:              
					                           printf("Uprn");                break; //向上
					case GES_DOWM:                 
               						           printf("Dowmrn");              break; //向下
					case GES_LEFT:                     
  						                       printf("Leftrn");              break; //向左
					case GES_RIGHT:                  
                						         printf("Rightrn");             break; //向右
					case GES_FORWARD:                 
						                         printf("Forwardrn");           break; //向前
					case GES_BACKWARD:           
            						             printf("Backwardrn");          break; //向后
					case GES_CLOCKWISE:         
                						         printf("Clockwisern");         break; //顺时针
					case GES_COUNT_CLOCKWISE:  
                   						       printf("AntiClockwisern");     break; //逆时针
					case GES_WAVE:               
						                         printf("Wavern");              break; //挥动
					default:  break;	
				}	          
			}	
		}		   
	}
}
  1. 接近检测测试
    Ps_test()函数实现接近检测,获取接近物体的体积大小和亮度的数据。首先对PAJ7620U2 接近检测进行初始化,配置其 proximity_arry 的数组参数值(第 16 行代码),初始化完成后,在 while(1)循环中,读取获取体积大小和亮度的寄存器,并将读取结果打印到串口上。当按下 KEY 按键,在中断处理函数中标志变量 flag 被赋值 1(第 23 行代码),退出当前的接近检测测试模式。
/**
  * @brief  接近检测测试
  * @param  无
  * @retval 无
  */
void Ps_test(void)
{
  
  uint8_t i;
	uint8_t data[2]={0x00};
	uint8_t obj_brightness=0;
	uint16_t obj_size=0;
	
	paj7620u2_selectBank(BANK0);//进入BANK0
	for(i=0;i< PROXIM_SIZE;i++)
	{
		GS_Write_Byte(proximity_arry[i][0],proximity_arry[i][1]);//接近检测模式初始化
	}
	paj7620u2_selectBank(BANK0);//切换回BANK0
	printf("按KEY1键退出当前模式rn");
	
	while(1)
	{	
		if(flag) 
    {
      flag=0;
      break;
    }
		obj_brightness = GS_Read_Byte(PAJ_GET_OBJECT_BRIGHTNESS);//读取物体亮度
		data[0] = GS_Read_Byte(PAJ_GET_OBJECT_SIZE_1);//读取物体大小
		data[1] = GS_Read_Byte(PAJ_GET_OBJECT_SIZE_2);
		obj_size = ((uint16_t)data[1] & 0x0f)< < 8 | data[0];
		printf("obj_brightness: %drn",obj_brightness);
    printf("obj_size: %drn",obj_size);
	
		delay_ms(500);	
	}	
}

在这里插入图片描述
在这里插入图片描述

总结

本实验可以通过挥舞手势直观的了解传感器的手势识别的基本功能以及接近检测的功能。

审核编辑 黄宇

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

    关注

    162

    文章

    8497

    浏览量

    186603
  • 手势识别传感器

    关注

    0

    文章

    5

    浏览量

    4984
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文读懂手势识别传感器:原理、优势与应用场景

    、消费电子、医疗健康等领域获得了广泛应用。实现手势识别的技术路径并非单一,其中最为成熟且成本可控的方案主要依托两类传感器——红外接近传感器与飞行时间(TOF)
    的头像 发表于 04-28 17:41 1706次阅读
    一文读懂<b class='flag-5'>手势</b><b class='flag-5'>识别传感器</b>:原理、优势与应用场景

    探索MAX32664:超低功耗生物识别传感器集线器的卓越性能

    探索MAX32664:超低功耗生物识别传感器集线器的卓越性能 在可穿戴设备和医疗监测领域,传感器技术的发展日新月异。其中,Analog Devices的MAX32664超低功耗生物识别传感器集线器
    的头像 发表于 03-27 09:50 291次阅读

    MAX32663A:超低功耗心电图生物识别传感器集线器的卓越之选

    MAX32663A:超低功耗心电图生物识别传感器集线器的卓越之选 在可穿戴和医疗设备领域,对低功耗、高性能传感器的需求日益增长。Maxim Integrated推出的MAX32663A超低功耗心电图
    的头像 发表于 03-27 09:50 298次阅读

    零知IDE——基于零知标准板驱动PAJ7620U2手势控制L9110风扇模块和SG90舵机系统

    手势控制风扇系统 - 隔空操作实测 五、PAJ7620U2 手势传感器技术讲解PAJ7620U2 是一款基于红外成像原理的集成
    发表于 01-06 11:56

    零知STM32手势控制风扇系统 - 隔空操作实测

    STM32
    PCB56242069
    发布于 :2026年01月06日 10:14:05

    零知IDE——基于STM32F103RBT6的PAJ7620U2手势控制WS2812 RGB灯带系统

    先进的PAJ7620U2手势识别传感器和WS2812B RGB LED灯带,实现智能手势开关控制功能。系统能够实时检测手部在三维空间中的位置和运动轨迹,并将这些动作信息转换为直观、绚丽
    发表于 12-29 19:04

    零知IDE——基于STM32F103RBT6的PAJ7620U2手势控制WS2812 RGB灯带系统

    基于STM32F103RBT6的手势控制LED系统,通过PAJ7620U2传感器识别手势动作,驱动
    的头像 发表于 12-29 17:48 2207次阅读
    零知IDE——基于<b class='flag-5'>STM32</b>F103RBT6的<b class='flag-5'>PAJ7620</b>U2<b class='flag-5'>手势</b>控制WS2812 RGB灯带系统

    零知标准板+PAJ7620U2手势控制WS2812 RGB灯

    RGB
    PCB56242069
    发布于 :2025年12月29日 17:17:34

    基于STMicroelectronics AEK-SNS-2TOFM1手势检测系统的技术解析与应用实践

    STMicroelectronics AEK-SNS-2TOFM1预定义手势检测系统包括两个飞行时间测距传感器。这些传感器彼此距离23cm放置。车载SPC582B60E1微控制读取
    的头像 发表于 10-29 16:07 873次阅读
    基于STMicroelectronics AEK-SNS-2TOFM1<b class='flag-5'>手势</b>检测系统的技术解析与应用实践

    【技术讨论】智能戒指手势交互:如何优化PCBA成本与实现<20ms低延迟?

    元件的小批量贴片,如何有效控制加工损耗与成本? 低延迟手势识别:目标是将传感器数据采集、姿态解算到蓝牙指令发出的端到端延迟控制在10ms以内。在软件层面,除优化传感器FIFO与中断服务
    发表于 10-18 13:04

    新品 | Unit Fingerprint2,高性能指纹识别传感器单元

    UnitFingerprint2是一款高性能指纹识别传感器单元,内部集成STM32核心主控与A-K323CP一体化指纹识别模组,采用半导体电容式传感器,具备指纹采集、特征提取、注册、比
    的头像 发表于 10-17 17:41 1607次阅读
    新品 | Unit Fingerprint2,高性能指纹<b class='flag-5'>识别传感器</b>单元

    XenG202G | 挥手手势识别参考设计(三维)

    WEMAKERFSMART-赋予万物感知的灵魂-矽典微ICLEGENDMICROXenG202G挥手手势识别(三维)毫米波传感器特征手势识别
    的头像 发表于 08-29 08:25 948次阅读
    XenG202G | 挥手<b class='flag-5'>手势</b><b class='flag-5'>识别</b>参考设计(三维)

    矽典微新品发布 | 三大创新:极致小型化AiP、手势交互新升级、开发套件开放赋能

    、ONELAB毫米波传感器开发套件以及XenG系列挥手手势识别传感器。徐鸿涛博士在演讲中表示,毫米波感知正处在技术创新与大规模商用的关键拐点,其在智能家居、智慧出行
    的头像 发表于 08-29 08:25 2086次阅读
    矽典微新品发布 | 三大创新:极致小型化AiP、<b class='flag-5'>手势</b>交互新升级、开发套件开放赋能

    华怡丰推出ISC-B/C系列图像识别传感器

    在工业自动化领域,精准、高效的视觉检测是提升生产效率的关键。华怡丰全新推出的ISC-B/C系列图像识别传感器集高精度定位、测量算法与先进图像处理技术于一体,为各类工业场景提供稳定、可靠的解决方案!
    的头像 发表于 08-15 11:36 2098次阅读
    华怡丰推出ISC-B/C系列图像<b class='flag-5'>识别传感器</b>

    颜色识别传感器区分纽扣正反面# #传感器 #工作原理大揭秘

    传感器
    阿童木(广州)智能科技有限公司
    发布于 :2025年07月15日 14:00:55