1.簡介
PAJ7620是ALIENTEK推出的一款高性能手勢識別傳感器模塊。該模塊采用原相科技(Pixart)公司的 PAJ7620U2芯片,芯片內部集成了光學數組式傳感器,以使復雜的手勢和光標模式輸出,自帶九種手勢識別,支持上、下、左、右、前、后、順時針旋轉、逆時針旋轉和揮動的手勢動作識別,以及支持物體接近檢測等功能。
PAJ7620模塊驅動時序為IIC時序,本次實驗我們通過硬件IIC來完成手勢識別功。
PAJ7620 內部自帶了 9 個手勢識別,分別是“上”、“下”、“左”、“右”、“前”、“后”、“順時針旋轉”、“逆時針旋轉”、“揮動”。 使用時傳感器的開窗口位置需朝上,如圖所示:

手在傳感器的上方,保持與傳感器的垂直距離,做出如下圖和所示的手勢,可以分別得出“上”、“下”、“左”、“右”、“順時針旋轉”、“逆時針旋轉”、“揮動”的識別結果。

2.硬件設計

3.軟件設計
1.打開STM32CubeMX軟件,配置手勢識別引腳PB6(IIC_SCL)、PB7(IIC_SDA);

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

4.生成代碼
1.引腳模式配置函數

2.手勢模塊底層接口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);
}
發送應答信號

/****************發送應答信號************
**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);//時鐘線拉低,準備下一次數據收發
}
獲取應答信號
/***************檢測應答信號********************
**
**返回值:1,接收應答失敗
0,接收應答成功
************************************************/
u8 IIC_Check_ACK(void)
{
u8 i=0;
IIC_SDA_IN_MODE();//輸入模式
IIC_SDA_OUT(1);
IIC_SCL(0);
DelayUs(2);
IIC_SCL(1);
while(IIC_SDA_IN)
{
i++;
if(i>=255)return 1;//非應答
}
IIC_SCL(0);
return 0;//應答
}
發送一字節數據
/***************發送一字節數據***************/
void IIC_Send_Byte(u8 txd)
{
u8 i=0;
IIC_SDA_OUT_MODE();//輸出模式
for(i=0;i<8;i++)
{
IIC_SCL(0);
if(txd&0X80)IIC_SDA_OUT(1);
else IIC_SDA_OUT(1);
DelayUs(2);
IIC_SCL(1);
DelayUs(2);
txd<<=1;
}
IIC_SCL(0);;//時鐘線拉低,準備下一次數據收發
}
接收一字節數據
/**********************接收1字節數據****************/
u8 IIC_ReadByte(void)
{
u8 i=0;
u8 rxd=0;
IIC_SDA_IN_MODE();//輸入模式
for(i=0;i<8;i++)
{
IIC_SCL(0);
DelayUs(2);
IIC_SCL(1);
rxd<<=1;
if(IIC_SDA_IN)rxd|=0x01;
DelayUs(2);
}
IIC_SCL(1);
return rxd;
}


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
STM32
+關注
關注
2309文章
11162瀏覽量
373411 -
手勢識別
+關注
關注
8文章
232瀏覽量
49120 -
IIC
+關注
關注
11文章
309瀏覽量
40632
發布評論請先 登錄
相關推薦
熱點推薦
利用PAJ7620U2 Gesture Sensor手勢識別控制小車
U2 Gesture Sensor 手勢識別傳感器識別,達到可以用手勢直觀控制小車的目的。 最終視頻中,我們的小車可以接受手勢指令:前進,后退,停止,轉向,這些指令由
發表于 01-05 07:44
基于MM32F5270開發板利用I2C驅動讀寫姿態和手勢傳感器
板子三軸傳感器的狀態數據/---------- PAJ7620手勢傳感器 ----------/參考MPU6050傳感器的流程添加
發表于 08-30 15:46
ATK-PAJ7620手勢識別模塊的用戶手冊免費下載
ATK-PAJ7620_V1.2(V1.2 是版本號,下面均以 ATK-PAJ7620 表示該產品)是 ALIENTEK 推出的一款高性能手勢識別傳感器
發表于 03-13 08:00
?62次下載
STM32驅動PAJ7620手勢識別傳感器
原文鏈接:[https://www.yourcee.com/newsinfo/2925937.html] 傳感器簡介 PAJ-7620U2是由原相科技公司開發的一款手勢
STM32開發教程 基于PAJ7620傳感器模塊的手勢識別驅動詳解
評論