0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于PAJ7620和STM32手勢(shì)識(shí)別應(yīng)用案例

嵌入式技術(shù) ? 來源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2022-06-18 16:43 ? 次閱讀

基于STM32手勢(shì)識(shí)別應(yīng)用案例

1.簡介

?手勢(shì)識(shí)別是計(jì)算機(jī)科學(xué)和語言技術(shù)中的一個(gè)主題,目的是通過數(shù)學(xué)算法來識(shí)別人類手勢(shì)。 手勢(shì)可以源自任何身體運(yùn)動(dòng)或狀態(tài),但通常源自面部或手。 本領(lǐng)域中的當(dāng)前焦點(diǎn)包括來自面部和手勢(shì)識(shí)別的情感識(shí)別。 用戶可以使用簡單的手勢(shì)來控制或與設(shè)備交互,而無需接觸他們。姿勢(shì),步態(tài)和人類行為的識(shí)別也是手勢(shì)識(shí)別技術(shù)的主題。手勢(shì)識(shí)別可以被視為計(jì)算機(jī)理解人體語言的方式,從而在機(jī)器和人之間搭建比原始文本用戶界面或甚至GUI(圖形用戶界面)更豐富的橋梁。

手勢(shì)識(shí)別使人們能夠與機(jī)器進(jìn)行通信,并且無需任何機(jī)械設(shè)備即可自然交互。 使用手勢(shì)識(shí)別的概念,可以將手指指向計(jì)算機(jī)屏幕,使得光標(biāo)將相應(yīng)地移動(dòng)。 這可能使常規(guī)輸入設(shè)備(如鼠標(biāo),鍵盤甚至觸摸屏)變得冗余。越來越多的電子設(shè)備都在使用手勢(shì)識(shí)別功能。顧名思義,手勢(shì)識(shí)別旨在識(shí)別人類的物理運(yùn)動(dòng)或“手勢(shì)”。例如,在設(shè)備前面以特定模式揮動(dòng)您的手可能會(huì)告訴它啟動(dòng)特定的應(yīng)用程序,諸如此類的手勢(shì)識(shí)別經(jīng)常出現(xiàn)在智能手機(jī)和平板電腦中。

手勢(shì)識(shí)別被分類為一種非接觸式用戶界面(TUI)。與觸摸屏設(shè)備不同,TUI設(shè)備無需觸摸即可控制。像Google Home和Amazon Alexa這樣的語音控制智能揚(yáng)聲器是TUI的主要例子。

手勢(shì)識(shí)別也打開了通向輸入可能性的全新世界的大門。用戶可以嘗試其他基于手勢(shì)的輸入形式,而不是僅限于傳統(tǒng)的輸入形式。有些設(shè)備甚至允許用戶設(shè)置自己的手勢(shì)。

除智能手機(jī)和平板電腦外,手機(jī)識(shí)別還可用于汽車信息娛樂中心、視頻游戲控制臺(tái)、人機(jī)界面等。最重要的是,手勢(shì)識(shí)別技術(shù)正變得越來越流行,并且沒有任何跡象表明它會(huì)很快放慢速度。

2.PAJ7620介紹

PAJ-7620U2是由原相科技公司開發(fā)的一款手勢(shì)識(shí)別芯片, 內(nèi)集成了光學(xué)數(shù)組式傳感器單元,可以快速準(zhǔn)確的對(duì)輸入信號(hào)進(jìn)行感應(yīng)和輸出處理。內(nèi)置光源和環(huán)境光抑制濾波器,能在黑暗或低光環(huán)境下工作。它支持上、下、左、右、前、后、順時(shí)針旋轉(zhuǎn)、逆時(shí)針旋轉(zhuǎn)和揮動(dòng)的手勢(shì)動(dòng)作識(shí)別,以及支持物體接近檢測(cè)等功能??纱笾聶z測(cè)物體體積大小和亮度。使用IIC通信接口可達(dá)400KHz通信速率。

?可直接識(shí)別 9 種基本手勢(shì),支持手勢(shì)中斷輸出

? 內(nèi)置紅外 LED 和光學(xué)鏡頭,能在低光和黑暗環(huán)境下工作

? 支持 I2C 接口通信,僅需兩根信號(hào)腳即可控制

? 板載電平轉(zhuǎn)換電路,可兼容 3.3V/5V 的邏輯電平

poYBAGKsPrKATaDzAAK_vikK3Ro138.png#pic_center

2.1 通訊方式

??PAJ7620使用IIC通信接口可達(dá)400KHz通信速率。
??功能模塊框圖如下所示:

在這里插入圖片描述

其中, I2C_SCL 和 I2C_SDA 是連接 MCU 的 IIC 接口, MCU 通過這個(gè) IIC 接口來控制PAJ7620,在上述框圖可以看到,該芯片內(nèi)部自帶 LED 驅(qū)動(dòng)器,傳感器感應(yīng)陣列、目標(biāo)信息提取陣列和手勢(shì)識(shí)別陣列。 芯片工作時(shí)通過內(nèi)部 LED 驅(qū)動(dòng)器,驅(qū)動(dòng)紅外 LED向外發(fā)射紅外線信號(hào),當(dāng)傳感器陣列在有效的距離中探測(cè)到物體時(shí),目標(biāo)信息提取陣列會(huì)對(duì)探測(cè)目標(biāo)進(jìn)行特征原始數(shù)據(jù)的獲取,獲取的數(shù)據(jù)會(huì)存在寄存器中,同時(shí)手勢(shì)識(shí)別陣列會(huì)對(duì)原始數(shù)據(jù)進(jìn)行識(shí)別處理,最后將手勢(shì)結(jié)果存到寄存器中,用戶可根據(jù) I2C 接口對(duì)原始數(shù)據(jù)和手勢(shì)識(shí)別的結(jié)果進(jìn)行讀取。

2.3 硬件驅(qū)動(dòng)

??1.打開STM32CubeMX軟件,配置手勢(shì)識(shí)別引腳PB6(IIC_SCL)、PB7(IIC_SDA)。

在這里插入圖片描述

2.設(shè)置引腳模式為推挽輸出模式,初始化電平為高電平。

在這里插入圖片描述

3.軟件實(shí)現(xiàn)

??1.通過手勢(shì)實(shí)現(xiàn)時(shí)間切換、日期切換等;
??2.利用手勢(shì)實(shí)現(xiàn)LED控制、蜂鳴器控制;
??3.實(shí)時(shí)時(shí)間校準(zhǔn),可通過串口校時(shí);

3.1 串口校時(shí)

??通過自定義串口協(xié)議,通過串口調(diào)試助手獲取PC端時(shí)間,完成RTC時(shí)間校準(zhǔn);發(fā)送數(shù)據(jù)格式為:*20220617121220。
??以 *作為起始標(biāo)志,4字節(jié)年+2字節(jié)月+2字節(jié)日+2字節(jié)時(shí)+2字節(jié)分+2字節(jié)秒,字符串方式接收數(shù)據(jù)處理。

  if(usart1_flag)
  {
    printf("%srn",usart1_buff_rx);
    if(usart1_buff_rx[0]== '*')
    {
      DateToUpdate.Year=(usart1_buff_rx[3]-'0')*10+(usart1_buff_rx[4]-'0')*1;//年
      DateToUpdate.Month=(usart1_buff_rx[5]-'0')*10+(usart1_buff_rx[6]-'0')*1;//月
      DateToUpdate.Date=(usart1_buff_rx[7]-'0')*10+(usart1_buff_rx[8]-'0')*1;//日

      sTime.Hours=(usart1_buff_rx[9]-'0')*10+(usart1_buff_rx[10]-'0')*1;
      sTime.Minutes=(usart1_buff_rx[11]-'0')*10+(usart1_buff_rx[12]-'0')*1;
      sTime.Seconds=(usart1_buff_rx[13]-'0')*10+(usart1_buff_rx[14]-'0')*1;
      printf("time:%d/%d/%d -- %d:%d:%drn",DateToUpdate.Year,DateToUpdate.Month,DateToUpdate.Date,sTime.Hours,sTime.Minutes,sTime.Seconds);
      HAL_RTC_SetDate(&hrtc, &DateToUpdate,RTC_FORMAT_BIN);
      HAL_RTC_SetTime(&hrtc,&sTime,RTC_FORMAT_BIN);       
    }
    usart1_flag=0;
    usart1_count=0;
  }   

3.2 LED呼吸燈

??呼吸燈通過定時(shí)器PWM模式實(shí)現(xiàn);設(shè)置定時(shí)器分頻系數(shù)為72,周期時(shí)間為300us;

  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  TIM_MasterConfigTypeDef sMasterConfig = {0};
  TIM_OC_InitTypeDef sConfigOC = {0};

  /* USER CODE BEGIN TIM4_Init 1 */

  /* USER CODE END TIM4_Init 1 */
  htim4.Instance = TIM4;
  htim4.Init.Prescaler = 72;
  htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim4.Init.Period = 300;
  htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;

通過改變PWM波占空比來實(shí)現(xiàn)呼吸燈效果;

  if(flag==0)j++;
  else j--;
  if(j>=300)flag=1;
  if(j==0)flag=0;
  Delay_Ms(2);
  htim4.Instance->CCR3=j;//調(diào)節(jié)占空比
  htim4.Instance->CCR4=j;

3.3 手勢(shì)識(shí)別檢測(cè)

??PAJ7620支持上、下、左、右、前、后、順時(shí)針旋轉(zhuǎn)、逆時(shí)針旋轉(zhuǎn)和揮動(dòng)的手勢(shì)動(dòng)作識(shí)別。用戶可根據(jù) I2C 接口對(duì)原始數(shù)據(jù)和手勢(shì)識(shí)別的結(jié)果進(jìn)行讀取。

paj7620u2_selectBank(BANK0);//切換BANK0寄存器區(qū)域
status = GS_Read_nByte(PAJ_GET_INT_FLAG1,2,&data[0]);//讀取手勢(shì)狀態(tài)
if(!status)
{
	gesture_data =(u16)data[1]<<8 | data[0];
	if(gesture_data) 
	{
		switch(gesture_data)
		{
			case GES_UP:  //向上  		
				printf("向上 Uprn"); 
          		HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin, GPIO_PIN_RESET);//關(guān)閉蜂鳴器        
				ledflash=1;     
				break; 
			case GES_DOWM:  //向下
          		HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin, GPIO_PIN_SET);//開啟蜂鳴器
				printf("向下 Dowmrn");          
				ledflash=1;      
				break; 
			case GES_LEFT: //向左 		
	          	if(rtc_stat==0)
	            {
	              rtc_stat=3;
	            }
	            else rtc_stat--;
            	printf("rtc_stat=%dn",rtc_stat);
				printf("向左 Leftrn");          
				ledflash=1;      
				break; 
			case GES_RIGHT:  //向右	
	            if(rtc_stat==4)
	            {
	              rtc_stat=0;
	            }
	            else rtc_stat++;						      
				printf("向右 Rightrn");      
				ledflash=1;      
				break; 
			case GES_FORWARD:  //向前							     
				printf("向前 Forwardrn");       
				ledflash=1;     
				break; 
			case GES_BACKWARD: //向后 		       
				printf("向后 Backwardrn");     
				ledflash=1;     
				break; 
			case GES_CLOCKWISE:   //順時(shí)針							
				printf("順時(shí)針 Clockwisern");     
				ledflash=1;     
				break;
			case GES_COUNT_CLOCKWISE:  //逆時(shí)針 			
				printf("逆時(shí)針 AntiClockwisern"); 
				ledflash=1;      
				break; 
			case GES_WAVE: 											
				printf("揮動(dòng) Wavern");          
				ledflash=1;     
				break; //揮動(dòng)
			default:  ledflash=0; break;
		}
	}
}
pYYBAGKsPrSAOQ1-AA1qU3j0f1o432.png#pic_center

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352499
  • 手勢(shì)識(shí)別
    +關(guān)注

    關(guān)注

    8

    文章

    222

    瀏覽量

    47706
  • HAL
    HAL
    +關(guān)注

    關(guān)注

    2

    文章

    69

    瀏覽量

    12541
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32開發(fā)教程 基于PAJ7620傳感器模塊的手勢(shì)識(shí)別驅(qū)動(dòng)詳解

    PAJ7620是ALIENTEK推出的一款高性能手勢(shì)識(shí)別傳感器模塊。該模塊采用原相科技(Pixart)公司的 PAJ7620U2芯片,芯片內(nèi)部集成了光學(xué)數(shù)組式傳感器,以使復(fù)雜的
    的頭像 發(fā)表于 06-07 08:56 ?1.2w次閱讀
    <b class='flag-5'>STM32</b>開發(fā)教程 基于<b class='flag-5'>PAJ7620</b>傳感器模塊的<b class='flag-5'>手勢(shì)</b><b class='flag-5'>識(shí)別</b>驅(qū)動(dòng)詳解

    PAJ7620手勢(shì)傳感器模塊調(diào)試

    傳感器介紹PAJ7620傳感器是原相科技(Pixart)的一款內(nèi)部集成光學(xué)陣列式傳感器,以使復(fù)雜的手勢(shì)和光標(biāo)模式輸出,內(nèi)部集成了九種手勢(shì)識(shí)別:上、下、左、右、向前、向后、順時(shí)針、逆時(shí)
    發(fā)表于 02-18 15:38

    手勢(shì)識(shí)別控制器制作

    目錄智能家居硬件小制作(含源碼)《手勢(shì)識(shí)別控制器》基于PAJ7620手勢(shì)模塊、L298N驅(qū)動(dòng)板、arduino介紹材料PAJ7620
    發(fā)表于 09-07 06:45

    STM32驅(qū)動(dòng)PAJ7620手勢(shì)識(shí)別傳感器知識(shí)點(diǎn)分享,絕對(duì)實(shí)用

    STM32驅(qū)動(dòng)PAJ7620手勢(shì)識(shí)別傳感器知識(shí)點(diǎn)分享,絕對(duì)實(shí)用
    發(fā)表于 12-17 06:34

    利用PAJ7620U2 Gesture Sensor手勢(shì)識(shí)別控制小車

    引言Arduino或ESP32驅(qū)動(dòng)小車作為一個(gè)經(jīng)典應(yīng)用,廣泛被開源硬件愛好者改裝。然而,其交互方式大部分依然是傳統(tǒng)的按鍵交互。本次嘗試改變Arduino 小車的交互方式,利用PAJ7620
    發(fā)表于 01-05 07:44

    PAJ7620手勢(shì)傳感器模塊的描述與功能測(cè)試

    PAJ7620傳感器是什么?PAJ7620傳感器驅(qū)動(dòng)有哪些注意事項(xiàng)?
    發(fā)表于 02-17 06:13

    PAJ7620傳感器的驅(qū)動(dòng)有哪些注意事項(xiàng)呢

    PAJ7620傳感器是什么?PAJ7620傳感器的驅(qū)動(dòng)有哪些注意事項(xiàng)呢?
    發(fā)表于 03-09 07:50

    PAJ7620傳感器的驅(qū)動(dòng)思路和原理分別是什么

    PAJ7620傳感器有何功能呢?PAJ7620傳感器的驅(qū)動(dòng)思路和原理分別是什么?
    發(fā)表于 03-09 06:48

    PAJ7620手勢(shì)傳感器模塊調(diào)試步驟分享

    1、PAJ7620傳感器介紹PAJ7620傳感器是原相科技(Pixart)的一款內(nèi)部集成光學(xué)陣列式傳感器,以使復(fù)雜的手勢(shì)和光標(biāo)模式輸出,內(nèi)部集成了九種手勢(shì)
    發(fā)表于 06-06 18:01

    【技術(shù)精選】嵌入式STM32原創(chuàng)征文活動(dòng)精選文章

    應(yīng)用案例基于PAJ7620STM32手勢(shì)識(shí)別應(yīng)用案例STM32應(yīng)用案例 基于STM32F103
    發(fā)表于 07-27 18:26

    【RA4M2設(shè)計(jì)挑戰(zhàn)賽】基于PAJ7620U2手勢(shì)識(shí)別網(wǎng)關(guān)設(shè)計(jì)

    1.簡介基于瑞薩R7FA4M2AD3CFP進(jìn)行設(shè)計(jì),對(duì)接PAJ7620U2手勢(shì)識(shí)別模塊實(shí)現(xiàn)一款手勢(shì)識(shí)別網(wǎng)關(guān)。2.實(shí)現(xiàn)功能1.在瑞薩R7FA4
    發(fā)表于 03-05 23:40

    使用Arduino和PAJ7620手勢(shì)傳感器制作手勢(shì)控制機(jī)器人

    使用Arduino和PAJ7620手勢(shì)傳感器制作手勢(shì)控制機(jī)器人,簡單程序即可實(shí)現(xiàn)。小小的傳感器可以識(shí)別各種手勢(shì)。它采用內(nèi)置的空間傳感器,可以
    發(fā)表于 09-27 06:17

    ATK-PAJ7620手勢(shì)識(shí)別模塊的用戶手冊(cè)免費(fèi)下載

    ATK-PAJ7620_V1.2(V1.2 是版本號(hào),下面均以 ATK-PAJ7620 表示該產(chǎn)品)是 ALIENTEK 推出的一款高性能手勢(shì)識(shí)別傳感器模塊。該模塊采用原相科技(Pix
    發(fā)表于 03-13 08:00 ?58次下載
    ATK-<b class='flag-5'>PAJ7620</b><b class='flag-5'>手勢(shì)</b><b class='flag-5'>識(shí)別</b>模塊的用戶手冊(cè)免費(fèi)下載

    PAJ7620U2集成I2C接口手勢(shì)識(shí)別傳感器的數(shù)據(jù)手冊(cè)免費(fèi)下載

    PAJ7620U2將手勢(shì)識(shí)別功能與通用的I2C接口集成到一個(gè)芯片中。它可以識(shí)別9種手勢(shì),包括向上移動(dòng)、向下移動(dòng)、向左移動(dòng)、向右移動(dòng)、向前移動(dòng)
    發(fā)表于 03-13 08:00 ?83次下載
    <b class='flag-5'>PAJ7620</b>U2集成I2C接口<b class='flag-5'>手勢(shì)</b><b class='flag-5'>識(shí)別</b>傳感器的數(shù)據(jù)手冊(cè)免費(fèi)下載

    微雪電子PAJ7620U2手勢(shì)傳感器簡介

    PAJ7620U2 手勢(shì)識(shí)別模塊 I2C接口 可直接識(shí)別9種基本手勢(shì),支持手勢(shì)中斷輸出
    的頭像 發(fā)表于 01-02 15:20 ?1.9w次閱讀
    微雪電子<b class='flag-5'>PAJ7620</b>U2<b class='flag-5'>手勢(shì)</b>傳感器簡介