这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【手势翻页笔开发贴】【二、体验手势检测传感器】

共3条 1/1 1 跳转至

【手势翻页笔开发贴】【二、体验手势检测传感器】

高工
2024-04-21 09:56:40     打赏

本实验的代码:nucleo-stm32h503rb

无法做出wave手势,如果有盆友做出了这个手势,烦请留下诀窍我再试试!

购买的传感器产品上有一份标签纸:

acfb35532e42f5987140bdbb410ae91.jpg

访问 wiki.seeed.cc 查找资料: Grove - Gesture V1.0 | Seeed Studio Wiki

模组有如下几个特性,但本次只关注其9种手势。

image.png

其接口为I2C,模块没有引出中断脚,因此采用轮训的方式读取。

启动STM32CubeMX, 增加I2C的配置:

image.png

image.png

购买传感器配的线材不适合直接插到板子上,于是剪断后接上杜邦线:

bdedeb2f439b47dbef2a126bbadba4c.jpg

采用硬件I2C,首先验证通讯是否正常,可以读取ID验证:

image.png

能正确读取ID,便是通讯正常,配置后便可以读取中断标志寄存器,根据bit置位的情况判断检测到了哪些手势

const char *pGestureStr[] = {
    "up",      "down",     "left",      "right",
    "forward", "backward", "clockwise", "count-clockwise",
    "wave"};
    
static void _GestureHandler() {
  uint16_t result = 0;
  int i = 0;
  if (bRead(bGestureFd, (uint8_t *)&result, 2) == 2) {
    for (i = 0; i < (sizeof(pGestureStr) / sizeof(char *)); i++) {
      if (result & (0x0001 << i)) {
        b_log(":::%s\r\n", pGestureStr[i]);
      }
     }
   }
}

int main(void) {
  ....
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  bInit();
  bSoftPwmStart(&bLedBlink, _LedPwmHandler);
  bGestureFd = bOpen(bPAJ7620U2, BCORE_FLAG_R);
  if (bGestureFd < 0) {
    b_log_e("open fail..\r\n");
  }
  while (1) {
    bExec();
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    BOS_PERIODIC_TASK(_GestureHandler, 1000);
  }
  /* USER CODE END 3 */
}

image.png

e6313233b92d28ba5290 -small-portrait.gif







关键词: 手势翻页笔     PAJ7620U2     STM32H5     B    

高工
2024-04-21 09:58:52     打赏
2楼

补充:已验证: 手摆动的快一点,便是WAVE手势


高工
2024-04-21 22:16:36     打赏
3楼

谢谢分享


共3条 1/1 1 跳转至

回复

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