这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【手势翻页笔】成果贴番外篇-手势电磁锁

共6条 1/1 1 跳转至

【手势翻页笔】成果贴番外篇-手势电磁锁

高工
2024-06-21 23:21:54     打赏

在进阶作业的基础之上,发挥想象力,发挥主观能动性。在新场景下,成功部署手势控制功能等。或者对手势翻页笔进行合理、有效扩展。总之,让我们看到你的创新,看到你的实现即可。以上是优秀作业的要求,结合还有两个器件没有使用,我们在这里将手势传感器/继电器/蜂鸣器进行综合使用,做一个具有开门提醒功能手势控制锁。

硬件介绍:

首先我们进一步了解一下这两个模块。

蜂鸣器模块:

1.png

这个就相对简单一些了,直接通过IO口的高低电平进行控制就可以了,蜂鸣器也是也不能常响,感官会很不舒服;

继电器模块:

2.png

之前感觉这个模块好重啊,原来里面是带着结构的,不过这些都不重要的,实际上不跑高压交流电,问题不大。在使用这个模块之前,我们还是要好好一下,给模块上有两个继电器,不过咱们这次用一个就可以了,控制信号可以看到上面有一个三极管,这个继电器是5V供电的,直接用MCU控制是不行的,不过有了这个三极管应该就没什么问题了。继电器分为常闭和常开,所以硬件连接上需要把供电端放到COM口,然后ON端连接到需要控制的器件。

控制器件:

3.png

这次控制的器件是一个电磁锁,也就说我们需要用手势控制这个锁的开和关,该电磁锁使用12V供电。

软件介绍

围绕着上面的器件,结合手势传感器和主控板,我们需要实现的具体功能就是,通过采集手势传感器的手势(这里选择了left和right)控制电磁锁的开关,由于电磁锁的电压过高,中间需要一个继电器来实现承接;

继电器模块使用5V供电,不过上有三极管控制电路,可以使用MCU的引脚进行直接控制;

有效的手势需要进行蜂鸣器的提示;

到这里实现的所有功能都进行了罗列,实际上逻辑控制并不复杂,也用不到手势翻页笔中我认为最难得USB部分,我们可以直接在手势采集中进行处理。

代码基本上只是增加了一些蜂鸣器和继电器的控制部分:

#define Buzz_On     HAL_GPIO_WritePin(Buzz_GPIO_Port, Buzz_Pin, GPIO_PIN_SET)
#define Buzz_Off     HAL_GPIO_WritePin(Buzz_GPIO_Port, Buzz_Pin, GPIO_PIN_RESET)

#define SRD_On     HAL_GPIO_WritePin(SRD_GPIO_Port, SRD_Pin, GPIO_PIN_SET)
#define SRD_Off     HAL_GPIO_WritePin(SRD_GPIO_Port, SRD_Pin, GPIO_PIN_RESET)

uint16_t Buzz_time_cnt = 0;
uint8_t Buzz_flag = 0;

while(1)
 {
    if(Buzz_flag == 1)
    {
        Buzz_time_cnt++;
        if(Buzz_time_cnt%100 == 0)
        {
             Buzz_flag = 0;
             Buzz_time_cnt = 0;
             Buzz_Off;
        }
    
    }
    time_cnt++;
    if(time_cnt >= 200)
    {
        time_cnt = 0;
        /* 获取手势 */
        ret = PAJ7620_get_gesture(&gesture);
        if (ret == PAJ7620_EOK)
        {
            switch (gesture)
            {
                case PAJ7620_GESTURE_LEFT:
                 {
                      if(Buzz_flag == 0)
                      {
                          Buzz_flag = 1;
                          Buzz_time_cnt = 0;
                          Buzz_On;
                      }
                      SRD_Off;
    
                      printf("Gesture: Left\r\n");
                      break;
                 }
                 case PAJ7620_GESTURE_RIGHT:
                 {
                      if(Buzz_flag == 0)
                      {
                          Buzz_flag = 1;
                          Buzz_time_cnt = 0;
                          Buzz_On;
                      }
                      SRD_On;
                      printf("Gesture: Right\r\n");
                      break;
                 }
                 default:
                 {
                      break;
                 }
            }
        }
    }
}

效果展示:

本次的效果展示是通过视频的方式进行,通过实物操作进行讲解。

【番外篇:手势电磁锁效果展示】 https://www.bilibili.com/video/BV1i3g9ehEkf/?share_source=copy_web&vd_source=2a202874768d99b0acaa1aceb9a9b93e





关键词: 手势翻页笔     DIY     成果贴番外篇    

高工
2024-06-21 23:23:57     打赏
2楼

专家
2024-06-22 01:34:35     打赏
3楼

感谢楼主分享


高工
2024-06-22 09:46:22     打赏
4楼

感谢楼主分享


专家
2024-06-22 10:24:11     打赏
5楼

感谢楼主分享


高工
2024-06-22 18:27:30     打赏
6楼

感谢楼主分享


共6条 1/1 1 跳转至

回复

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