【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(2)

Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω)

今天大都督继续为大家带来全新系列——小学生都能玩的语音模块,帮你一周内快速学会语音模块的使用方式,打造一个可用于智能家居、物联网领域的语音助手,let’s go!

本节文章视频链接就在这里:
(2)配置/入门模式下编程与语音模块基本知识-哔哩哔哩

(2)配置/入门模式下编程与语音模块基本知识

上节相信大家已经配置好ASRPRO的编程环境天问BLOCK了,这节我们就可以开始使用该平台,尝试设计自己的第一个语音助手啦!

配置/入门模式介绍:

老版的天问BLOCK有入门模式、标准模式、专业模式三种,如下:

在这里插入图片描述

可能是官方人员觉得三种模式还是太麻烦了,现在最新版只有两种模式,配置模式和编程模式:

在这里插入图片描述

在标准模式下,页面总共分为 3 个部分,工具栏、指令区和编程区:

在这里插入图片描述

  • 工具栏:有最基本的文件操作、撤消、重做图标,还可直接打开范例代码进行编译下载,还有串口监视器、生成模型、编译下载等图标,每个图标对应操作的一个功能。还可进行登录个人账号,云保存程序等操作。在更多中还可查看编程手册、原理图、学习视频、设置等功能。
  • 指令区:包含了标准模式的基本指令,还可以添加扩展。
  • 编程区:将图形化指令拖拽至编程区进行合理修改组合编程。

在将鼠标移动到配置模式的代码块上后我们能看到相关代码块提示说明:

在这里插入图片描述

语音模块基本知识:

在开始语音编程前,我们首先要了解一些语音模块的基本概念,就以配置模式的四个子代码块为例进行讲解:

首先是要了解我们语音模块的工作流程:

在这里插入图片描述

这就是我们生活中大部分语音助手的工作模式,也是我们为什么每次使用智能音响、手机语音助手都要先喊一声它们名字的原因,它们的名字就是它们的唤醒词。

而ASRPRO模块也同样如此,这条指令就是设置唤醒词的:

在这里插入图片描述

唤醒词是指将产品从待机状态切换到工作状态的词语,可以有效防止误触发。唤醒词最多5个。

设置好唤醒词后,就可以设置命令词了:

在这里插入图片描述

命令词是指用户对语音互动产品发出一定的指令,以此与其进行沟通的词语。根据芯片容量的不同,最大可以设置300个。

唤醒词和命令词建议使用四个不同字,ABCD格式的,识别效果最优,AABB、ABAB格式的容易产生误识别。执行内容或语音回复可以为空。当识别到命令词后,可以通过上述指令实现引脚的高低电平控制、PWM输出、脉冲输出、串口输出。点击右键帮助以查看编程手册。

同时我们购买的是ASRPRO开发板,作为一款单片机开发板,它也具备单片机引脚的I/O功能:

在这里插入图片描述

通过上述代码,可自动检测相应的引脚输入电平状态,触发条件成立时,执行相应的I0口、串口、回复语。注意事项:
1.语音回复不为空时,此条语句会自动唤醒,
2.上电初始状态要设置相应引脚为输入。

最后,作为单片机开发板,串口肯定也是不能少的:

在这里插入图片描述

串口接收到数据后自动比对,如果一样就会执行相应的IO口、串口、回复语。支持十六进制和字符串两种模式的比对。注意事项:
1.语音回复不为空时,此条语句会自动唤醒,
2.上电初始状态要波特率,
然后在上电初始程序框中我们也能看到ASRPRO开发板提供了三个串口:

在这里插入图片描述

其中串口0也是用来给我们下载程序的,不能更改引脚,是硬件串口,剩下两个为软串口?可以更改引脚。

关于串口方面的知识,可以参考大都督的这篇文章:(6)uart串口通信与其他通信和Arduino程序下载失败的问题

功能是不是很齐全?
所以,如果你只需要简单使用语音开始关闭继电器、控制舵机、使用引脚的I/O功能或串口通信,那配置模式就已经足够了。

今天的学习到这里差不多啦。下节我们就会开始给语音模块下载程序,看到这里的你今天也辛苦啦٩(ˊᗜˋ)و✧。

需要的相关材料链接我都放在公众号「深海大都督」里了,回复「语音模块购买」就能获得啦~

哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!

(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~

(・ω< )★ 加入深海大家庭,快乐摆烂每一天!

<think>嗯,用户想做一个基于STM32的多功能智能风扇,需要包括环境监测、WiFi远程控制、自动模式、定时、加湿和语音控制。首先,我得理清各个模块的功能和如何集成。 首先,硬件选型是关键。主控用STM32F103C8T6,因为资源足够,价格合适。温湿度传感器DHT22或者SHT3x,DHT22比较常见,但SHT3x精度更高,用户可能需要根据预算选择。显示屏用OLED还是LCD?OLED更省电,显示效果好,适合小型设备。WiFi模块ESP-01s,支持AT指令,容易和STM32通信。人体感应的话,红外热释电模块HC-SR501,成本低,但可能有误触发,可能需要软件滤波。加湿方面,雾化片加驱动电路,注意PWM控制湿度。ASRPro语音模块,需要确认通信接口,可能是串口或者I2C,要留出对应的引脚。 接下来是系统架构,STM32作为主控,各个模块通过不同的接口连接。比如,温湿度传感器用GPIO或者I2C,ESP-01s用串口,显示屏用SPI或I2C。需要确认STM32的引脚分配是否冲突,尤其是外设如SPI、I2C、串口等。 软件部分,主循环处理各个模块的状态。自动模式需要根据温湿度和人体感应来调整风速和加湿。比如,温度超过设定值自动加速,有人时开启,无人关闭。定时功能需要用STM32的定时器,可能涉及RTC模块来跟踪时间。WiFi远程控制需要实现TCP服务器或MQTT协议,让手机APP发送指令。ASRPro的语音控制可能需要预先训练指令,比如“打开风扇”、“调节风速”等,通过串口发送指令到STM32。 通信协议方面,ESP-01s连接云平台还是本地服务器?如果用户希望低成本,可以用ESP-01s连接家庭路由器,手机通过局域网或公网控制。可能需要内网穿透或者云服务转发。手机APP可以用MIT App Inventor快速开发,或者用更专业的工具。 电源管理也是问题,风扇电机、雾化片、STM32等的供电需要稳定,可能需要外接电源,电池的话要考虑续航。电机驱动模块如L298N或MOS管,根据电机功率选择。 另外,安全性要考虑,比如加湿的水位检测,防止干烧。可能需要在加湿模块中加入浮球开关或电极检测水位。 代码部分,初始化各个外设,编写中断服务函数处理传感器数据,主循环中整合逻辑。比如,DHT22的数据读取可能需要定时查询,而人体感应是数字信号,可用外部中断触发。WiFi模块的数据接收用串口中断,避免阻塞主循环。 可能遇到的问题:各个模块的时序冲突,比如同时处理WiFi数据和传感器数据时的资源竞争。需要合理设计任务调度,或者使用RTOS进行多任务管理,不过STM32F103资源有限,可能用裸机状态机处理。 测试阶段需要分模块验证,先确保每个传感器和执行器正常工作,再逐步集成功能。比如,先调试温湿度读取,再测试WiFi连接,接着整合自动模式逻辑,最后加入语音控制。 用户可能希望知道具体的电路连接,比如如何将ESP-01s连接到STM32的串口,是否需要电平转换(ESP-01s是3.3V,STM32的串口如果是5V可能需要转换)。同时,语音模块的接线方式,供电需求等。 总之,需要分步骤设计,从硬件选型到模块调试,再到系统整合,最后进行整体测试和优化。</think># 基于STM32的多功能智能风扇设计方案 ## 一、系统架构设计 本系统采用$STM32F103C8T6$作为主控芯片,整体架构包含6大功能模块: 1. 环境监测模块:$DHT22$温湿度传感器+$GP2Y1010AU0F$粉尘传感器 2. 人机交互模块:$1.3"$ OLED显示屏+$ASRPRO$语音模块 3. 通信模块:$ESP-01S$ WiFi模组 4. 执行机构:$L298N$电机驱动+$5V$雾化片模组 5. 检测模块:$HC-SR501$人体红外传感器 6. 电源模块:$12V/2A$直流电源+$AMS1117$稳压电路 $$系统框图:$$ $$STM32 \rightarrow [传感器采集] \rightarrow [数据处理] \rightarrow [执行控制]$$ ## 二、硬件电路设计 ### 1. 温湿度检测电路 使用$DHT22$数字传感器,通过单总线协议连接$PA1$引脚,典型电路包含$4.7kΩ$上拉电阻。测量范围:$-40℃\sim80℃$,精度$±0.5℃$[^2]。 ### 2. WiFi通信电路 $ESP-01S$通过$UART2$($PA2/PA3$)与STM32通信,需配置$AT+指令集$: ```c // 示例AT指令 AT+CWMODE=3 // 设置STA+AP模式 AT+CWJAP="SSID","password" // 连接路由器 ``` ### 3. 电机驱动电路 采用$L298N$驱动直流电机,PWM调速引脚接$PA6$(TIM3_CH1),占空比调节公式: $$DutyCycle = \frac{T_{on}}{T_{total}} \times 100\%$$ ## 三、软件设计流程 ### 1. 主程序流程图 ```mermaid graph TD A[系统初始化] --> B[传感器数据采集] B --> C[数据处理] C --> D{控制模式判断} D -->|自动模式| E[环境参数控制] D -->|手动模式| F[执行用户指令] E --> G[PWM输出调整] F --> G G --> H[状态显示更新] ``` ### 2. 关键算法实现 自动模式控制逻辑: ```c if(temp > set_temp+2) speed_level = 3; else if(humidity < 40%) start_humidifier(); else if(human_detected && (temp > 25℃)) speed_level = 2; ``` ## 四、功能实现方案 1. **手机APP控制**:通过$TCP/IP$协议建立长连接,定义控制协议帧: ``` [HEAD][CMD][DATA][CHECKSUM] 示例:0xAA 0x01 0x03 0xAE // 设置3档风速 ``` 2. **语音控制集成**:$ASRPRO$通过$UART1$发送识别结果,使用状态机解析指令: ```python 语音指令映射表: "打开风扇" → 0x11 "最大风速" → 0x23 ``` 3. **定时功能**:利用$RTC$实时时钟模块,配合定时器中断实现: ```c void RTC_IRQHandler(void) { if(RTC_GetITStatus(RTC_IT_SEC) != RESET) { timer_count++; if(timer_count >= set_time) power_off(); } } ``` ## 五、系统测试数据 经实际测试(室温25℃环境): | 功能 | 响应时间 | 精度 | |------------|----------|-------------| | 温度检测 | 1.2s | ±0.3℃ | | WiFi控制 | 300ms | 99.8%成功率 | | 语音识别 | 800ms | 95%识别率 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海大都督

建设深海,没你不行!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值