【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速

2024-02-103939
AI 快速预览详细 收起
本实验展示了如何使用ASRPRO语音识别技术,通过MX1508双路马达驱动模块和TT电机实现三种不同转速的控制。实验中使用了特定的命令词(如“最大速度”、“中等速度”、“最小速度”)来控制电机转速。通过这种方式,用户可以通过语音命令直观地控制电机的速度,而无需手动调节。实验还提供了开源代码和详细的步骤说明,方便用户复现和学习。


本例实验采用TT电机

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图1

本例实验采用MX1508双路马达驱动模块

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图5

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图3

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图4

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图2

MX1508双路马达驱动模块主要参数
双路H桥电机驱动,可以同时驱动两路直流电机或者1个4线两相式步进电机;
模块供电电压2V-10V;
信号端输入电压1.8-7V;
单路工作电流1.5A,峰值电流可达2.5A,低待机电流 (小于 0.1uA);
内置防共态导通电路,输入端悬空时,电机不会误动作;
内置带迟滞效应的过热保护电路 (TSD),无需担心电机堵转;
产品尺寸: 24.7215mm (长宽高),超小体积,适合组装和车载;
安装孔直径:2 mm;
重量:5g 。

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图6

PWM控制电机原理
是一种利用微处理器的数字输出来对模拟电路进行控制的技术,通过调节脉冲宽度来控制输出电压或电流,从而实现对电机转速或转向的控制。PWM的频率是指在一秒钟内,信号从高电平到低电平再回到高电平的次数,占空比是指一个脉冲周期内,高电平的时间与整个周期时间的比例。占空比越大,所得到的平均电压也就越大,电机转速就高;占空比越小,所得到的平均电压也就越小,电机转速就低。PWM可以通过H桥电路来实现电机的正反转调速,H桥电路由四个功率电子开关构成,通过控制对角的两个电子开关导通,另外两个截止,可以改变电机两端的电源极性,从而改变电机的转向。PWM还可以通过不同的占空比来控制舵机的转角,舵机的频率一般为50HZ,也就是一个20ms左右的时基脉冲,而脉冲的高电平部分一般为0.5ms-2.5ms范围,来控制舵机不同的转角。

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图10

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图11

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图9


【花雕动手做】实验七十:使用语音PWM控制TT电机的三种转速
实验开源代码

  1. #include "asr.h"
  2. extern "C"{ void * __dso_handle = 0 ;}
  3. #include "setup.h"
  4. #include "myLib/asr_event.h"
  5. uint32_t snid;
  6. //{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
  7. //{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
  8. //{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
  9. //{speak:橙子-甜美客服,vol:20,speed:10,platform:haohaodada}
  10. //{playid:10001,voice:欢迎使用人工智能AI语音助手,用智能管家唤醒我}
  11. //{playid:10002,voice:我退下了,用智能管家唤醒我}
  12. void sys_power_on_hook(void){
  13.   vol_set(7);
  14. }
  15. void ASR_CODE()
  16. {
  17.   //{ID:500,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
  18.   if(snid == 500){
  19.   }
  20.   //{ID:501,keyword:"命令词",ASR:"最大速度",ASRTO:"电机飞快转动"}
  21.   if(snid == 501){
  22.     digital_write(0,1);
  23.     set_pwm(4,1000,50);
  24.   }
  25.   //{ID:502,keyword:"命令词",ASR:"中等速度",ASRTO:"电机中速转动"}
  26.   if(snid == 502){
  27.     digital_write(0,1);
  28.     set_pwm(4,1000,400);
  29.   }
  30.   //{ID:503,keyword:"命令词",ASR:"最小速度",ASRTO:"电机慢慢转动"}
  31.   if(snid == 503){
  32.     digital_write(0,1);
  33.     set_pwm(4,1000,800);
  34.   }
  35.   set_state_enter_wakeup(15000);
  36. }
  37. void setup()
  38. {
  39.   digital_write(0, 0);
  40.   digital_write(4, 0);
  41.   set_gpio_input(29);
  42.   set_gpio_input(1);
  43.   set_gpio_input(20);
  44. }
复制代码

生成模型与编译烧录

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图7

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图8


实验记录视频

【【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速】 https://www.bilibili.com/video/BV1tp421R7qx/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987




实验场景图

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图13

【花雕动手做】ASRPRO语音识别(65)---语音TT电机PWM转速图12



创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -