本章节介绍的主要是在新场景下怎么把这些器件结合到一起,根据购买的器件来看,目前咱们使用的主要是主控板和手势传感器,那么接下来还有继电器模块和蜂鸣器模块需要加入使用例表中,看一看有哪些新的场景下可以融合一下。原本我想接入一个交流电风扇的控制,后来为了安全还是选择直流控制器件——步进电机。
我们都知道一般的步进电机是通过9V或者12V或者更改的电压进行供电,本次使用的步进电极就是一个12V供电的器件,正好符合我们进行创新设计的应用,借用了一个步进电机驱动板,我们一起看看如何实现。
首先从步进电机出发,连接到驱动板上(免控制的),驱动板的供电连接到继电器,继电器再连接到9V的适配器,继电器的控制通过主控板的IO口实现,而控制的输入就是我们的手势检测传感器,蜂鸣器的存在用于指示检测到有效手势。
蜂鸣器和继电器都在前面的过程贴中详细的介绍,这里就不做过多的介绍了,看一下多出来的两个模块:


可以看到继电器是一个双路继电器,不够对于直流控制我们只要控制电那一路就可以了,也可以电地两路同时控制,这两个模块都可以使用MCU引脚直接控制,这个是重点,也就是说,我们实际的控制就是IO的变化,实际上就是连线会复杂一点。
看一下连接连接好的状态:

幸亏背后的引脚也都引出来了,要不光是前面的引脚电和地还不一定够。
程序上的改改动也不大,只要新增两个GPIO的输出就可以,然后就是手势识别中变动:
while(1)
{
paj7620_cnt++;
if(paj7620_cnt>=100)
{
paj7620_cnt = 0;
if(uesr_key == 1 && gesture_init_flag == 0)
{
ret = PAJ7620_get_gesture(&gesture);
if (ret == PAJ7620_EOK)
{
switch (gesture)
{
case PAJ7620_GESTURE_LEFT:
{
if(Buzzer_ShortFlag == 0)
{
Buzzer_ShortFlag = 1;
Buzzer_On;
}
SRD_Off;
break;
}
case PAJ7620_GESTURE_RIGHT:
{
if(Buzzer_ShortFlag == 0)
{
Buzzer_ShortFlag = 1;
Buzzer_On;
}
SRD_On;
break;
}
default:
{
break;
}
}
}
}
}
tx_thread_sleep(1);
}如何实现蜂鸣器提示音(短)的呢,就是通过在定时器中进行处理:
if(Buzzer_ShortFlag == 1)
{
Buzzer_Short_cnt++;
if(Buzzer_Short_cnt >= 200)
{
Buzzer_ShortFlag = 0;
Buzzer_Short_cnt = 0;
Buzzer_Off;
}
}整体的介绍以及效果展示都在如下视频中做了介绍,可以看一下,地址:【手势控制成果:新场景下,创新实现】 https://www.bilibili.com/video/BV1S53geYEzN/?share_source=copy_web&vd_source=b04da51472e5874aa452f4a273672c46
我要赚赏金
