单片机语音识别控制蓝牙通信

基于单片机语音识别控制&蓝牙控制

  • 1、Arduino单片机语音控制
    • 1.1 直连
    • 1.2 蓝牙无线连接
    • 1.3 部分核心程序
    • 1.4 实物演示
  • 2、51单片机语音控制
    • 2.1 直连
    • 2.2 蓝牙无线连接
    • 2.3 部分核心程序
    • 2.4 实物演示
  • 3、STM32单片机语音控制
    • 3.1 直连
    • 3.2 蓝牙无线连接
    • 3.3 部分核心程序
    • 3.4 实物演示
  • 最后


本文章是基于Arduino单片机、51单片机、STM32单片机语音识别控制和蓝牙通信,设计这三种单片机方便新手选择自己合适的单片机学习语音识别控制,文章重点涉及到串口的知识点,学会了串口对于蓝牙模块很简单,本文章可以学习到 语音识别控制蓝牙无线控制

为什么语音识别控制要设计成无线控制呢???关于下面这种场合就合适鸭。

在这里插入图片描述


1、Arduino单片机语音控制

1.1 直连

功能:语音控制电灯的 “开启” 和 “关闭”
语音模块与主控制器Arduino直接连接,由于接了220V的电灯,此时用到了继电器

语音模块与主控制器硬件连接

语音模块Arduino
VCCVCC
GNDGND
T20
R21

继电器与主控制器硬件连接

继电器Arduino
VCC5V
GNDGND
INT113

实物连接如下图所示

在这里插入图片描述

1.2 蓝牙无线连接

功能①:语音控制电灯的 “开启” 和 “关闭”
功能②:手机app控制电灯的 “开启” 和 “关闭”
语音模块与主控制器Arduino直接通过两个蓝牙模块连接,其中语音模块连接的蓝牙模块通过软件设置作为主机,主控制器Arduino连接的蓝牙模块通过软件设置作为从机,下图是蓝牙模块设置的软件界面

在这里插入图片描述
语音模块与蓝牙模块(主机)硬件连接

语音模块蓝牙模块(主机)
VCCVCC
GNDGND
T2RX
R2TX

主控制器与蓝牙模块(从机)硬件连接

主控制器蓝牙模块(从机)
VCCVCC
GNDGND
1RX
0TX

继电器与主控制器硬件连接

继电器Arduino
VCC5V
GNDGND
INT113

连接实物如下图所示

在这里插入图片描述
如果不想用语音控制电灯的 “开启” 和 “关闭”,可以直接把语音模块和蓝牙模块(主机)直接去掉,通过手机app打开蓝牙直接连接蓝牙模块(主机),通过发送程序给定对应的字节,这样也可以达到控制的效果。

在这里插入图片描述

1.3 部分核心程序

代码如下:

  val = Serial.read(); /*如果串口接收到数据,把输出存放在变量val中*/
  if (-1 != val) /*如果val不等于-1,证明串口已经接收到数据。*/
  {
    if (0x03 == val) /*判断接收到的数据是不是*/
    {
      digitalWrite(LED, LOW); /*如果是0x03,把LED点亮*/
    }
    else if (0x04 == val) /*判断串口接收到的数据是不是0x04*/
    {
      digitalWrite(LED, HIGH); /*如果是0x04,关闭LED灯*/
    }
    else
    {
      digitalWrite(LED, HIGH); /*其他情况灯灭*/
    }
  }

1.4 实物演示

Arduino语音识别控制


2、51单片机语音控制

2.1 直连

功能:语音控制电灯的 “开启” 和 “关闭”
语音模块与主控制器STC89C52直接连接,由于接了220V的电灯,此时用到了继电器

语音模块与主控制器硬件连接

语音模块STC89C52
VCCVCC
GNDGND
T2P3^0
R2P3^1

继电器与主控制器硬件连接

继电器STC89C52
VCC5V
GNDGND
INT1P2^0

实物连接如下图所示

在这里插入图片描述

2.2 蓝牙无线连接

功能①:语音控制电灯的 “开启” 和 “关闭”
功能②:手机app控制电灯的 “开启” 和 “关闭”
语音模块与主控制器STC89C52直接通过两个蓝牙模块连接,其中语音模块连接的蓝牙模块通过软件设置作为主机,主控制器STC89C52连接的蓝牙模块通过软件设置作为从机,下图是蓝牙模块设置的软件界面

在这里插入图片描述
语音模块与蓝牙模块(主机)硬件连接

语音模块蓝牙模块(主机)
VCCVCC
GNDGND
T2RX
R2TX

主控制器与蓝牙模块(从机)硬件连接

主控制器蓝牙模块(从机)
VCCVCC
GNDGND
P3^1RX
P3^0TX

继电器与主控制器硬件连接

继电器Arduino
VCC5V
GNDGND
INT1P2^0

连接实物如下图所示

在这里插入图片描述
如果不想用语音控制电灯的 “开启” 和 “关闭”,可以直接把语音模块和蓝牙模块(主机)直接去掉,通过手机app打开蓝牙直接连接蓝牙模块(主机),通过发送程序给定对应的字节,这样也可以达到控制的效果。

在这里插入图片描述

2.3 部分核心程序

void Usart_Int(void) interrupt 4
{
  uchar i;
  uchar receive_data;
	
  EA = 0;
	
  if(RI == 1) //当硬件接收到一个数据时,RI会置位
	{ 		
		RI = 0;
		receive_data = SBUF;//接收到的数据
			
		if(receive_data == 0x03)	 //if(receive_data == '1')
		{
				LED = 0;//接收到03亮灯
		}
		else if(receive_data == 0x04)
		{
				LED = 1; //如果是0x04,关闭LED灯
		}
		else
		{
				LED = 1; //其他情况灯灭
		}
		
	}
		
		for(i=0; i<PuZh_Size; i++)
		{
			SBUF = PuZh[i];   //将要发送的数据放入到发送寄存器
			while(!TI);		    //等待发送数据完成
			TI=0;			        //清除发送完成标志位
			Delay_ms(1);
		}
		EA = 1;
}

2.4 实物演示

51单片机语音识别控制


3、STM32单片机语音控制

3.1 直连

功能:语音控制电灯的 “开启” 和 “关闭”
语音模块与主控制器STM32直接连接,由于接了220V的电灯,此时用到了继电器

在这里插入图片描述

3.2 蓝牙无线连接

功能①:语音控制电灯的 “开启” 和 “关闭”
功能②:手机app控制电灯的 “开启” 和 “关闭”
语音模块与主控制器STM32直接通过两个蓝牙模块连接,其中语音模块连接的蓝牙模块通过软件设置作为主机,主控制器STM32连接的蓝牙模块通过软件设置作为从机,下图是蓝牙模块设置的软件界面

在这里插入图片描述
语音模块与蓝牙模块(主机)硬件连接

语音模块蓝牙模块(主机)
VCCVCC
GNDGND
T2RX
R2TX

主控制器与蓝牙模块(从机)硬件连接

主控制器蓝牙模块(从机)
VCCVCC
GNDGND
PA2RX
PA3TX

继电器与主控制器硬件连接

继电器Arduino
VCC5V
GNDGND
INT1PB6

连接实物如下图所示

在这里插入图片描述
如果不想用语音控制电灯的 “开启” 和 “关闭”,可以直接把语音模块和蓝牙模块(主机)直接去掉,通过手机app打开蓝牙直接连接蓝牙模块(主机),通过发送程序给定对应的字节,这样也可以达到控制的效果。

在这里插入图片描述

3.3 部分核心程序

 int main(void)
 {		 
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(9600);	 							//串口初始化为115200
	My_USART2_Init();
 	LED_Init();			     						//LED端口初始化
 	while(1)
	{
		if(res == 0x03)		//如果是0x03,把LED点亮
		{
			LED1 = 0;
			JDQ = 0;	//继电器使能
		}
		else if(res == 0x04)//如果是0x04,关闭LED灯
		{
			LED1 = 1;
			JDQ = 1;	//继电器不使能
		}
		else			//其他情况灯灭
		{
			LED1 = 1;
			JDQ = 1;
		}
	}	 
 }

	

3.4 实物演示

点击链接跳转观看:https://www.bilibili.com/video/BV1Hk8ReZEJn/?vd_source=396950d4f7e8d110fcda0429d9a5c0f6


最后

在这里插入图片描述

不懂的小伙伴或是有问题的可以+我企鹅号(970484728),备注来意,一起学习一起进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/762850.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之“刷链表题”

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;数据结构 目录 前言 一、相交链表 题目链接 大致思路 代码实现 二、环形链表1 题目链接 大致思路 代码实现 三、环形链表2 题目链接 大致思路 代码实…

RANSAC空间圆拟合实现

由初中的几何知识我们可以知道&#xff0c;确定一个三角形至少需要三个不共线的点&#xff0c;因此确定一个三角形的外接圆至少可用三个点。我们不妨假设三个点坐标为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)。 圆方程的标准形式为&#xff1a; (xi-x)2(yi-y)2R2 &#xff08;1…

8605 删数问题

这是一个典型的贪心算法问题。我们可以从高位开始&#xff0c;找到第一个比后面数字大的数字&#xff0c;删除它&#xff0c;然后继续这个过程&#xff0c;直到删除k个数字。如果我们已经删除了k个数字&#xff0c;但是还没有找到一个比后面数字大的数字&#xff0c;那么我们就…

专题六:Spring源码之初始化容器BeanFactory

上一篇咱们通过一个例子介绍初始化容器上下文相关内容&#xff0c;并通过两个示例代码看到了Spring在设计阶段为我预留的扩展点&#xff0c;和我们应该如何利用这两个扩展点在Spring初始化容器上下文阶段为我们提供服务。这一篇咱们接着往下看。 老这样子下回到refresh方法上来…

首款内置电源的迷你主机,不到千元的办公神器 | 零刻EQ13评测报告

零刻首款内置电源的迷你主机&#xff0c;不到千元的办公神器 | 零刻EQ13评测报告 哈喽小伙伴们好&#xff0c;我是Stark-C~ 众所周知&#xff0c;零刻作为目前国产迷你主机第一品牌&#xff0c;旗下系列众多&#xff0c;产线丰富&#xff0c;比如说它有针对游戏玩家的性能主机…

Transformer动画讲解 - 工作原理

Transformer模型在多模态数据处理中扮演着重要角色,其能够高效、准确地处理包含不同类型(如图像、文本、音频、视频等)的多模态数据。 Transformer工作原理四部曲:Embedding(向量化)、Attention(注意力机制)、MLPs(多层感知机)和Unembedding(模型输出)。 阶段一:…

JS数据处理(冒泡寻找对象里面有个Key相同的值并处理相关数据)

1.需要处理成的数据格式 [{ mpptNumber: 1, list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvEnableStatus: 0,pvSerialNumber: 2,}] }, { mpptNumber: 2, list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvE…

Cosine 余弦相似度并行计算的数学原理与Python实现

背景 Cosine 我在LLM与RAG系列课程已经讲了很多次了&#xff0c;这里不在熬述&#xff0c;它在LLM分析中&#xff0c;尤其是在语义相似度的计算中至关重要&#xff0c;在dot attention机制中&#xff0c;也会看到他的身影。这里讲的是纯数学上的运算与python是如何运用相关库进…

Ubuntu机器安装rdkit指定版本,通过conda安装不需要make,有手就行。

阿里云购买Ubuntu 22.0机器 IP没错&#xff0c;访问外网没问题 图片中的命令放在下面了。 useradd test-user -s /bin/bash mkdir /home/test-user chown -R test-user: /home/test-user passwd test-uservi /etc/sudoers wget -c https://repo.anaconda.com/archive/Anacon…

全同态加密在大模型应用中应用

密码学简介 上文的图例基本展示了常见加密体系。加密体系&#xff0c;如果用比较正式的描述方法&#xff0c;无疑是做了三件事&#xff1a; 首先&#xff0c;通过一个生成算法 &#x1d43e;&#x1d452;&#x1d466;&#x1d43a;&#x1d452;&#x1d45b;(1&#x1d70…

小白学习手册:轻松理解MQ消息队列

目录 # 开篇 RabbitMQ介绍 通讯概念 1. 初始MQ及类型 2. MQ的架构 2.1 RabbitMQ的结构和概念 2.2 RabbitMQ消息流示意图 3. MQ下载使用 3.1 Docker下载MQ参考 3.2 进入RabbitMQ # 开篇 MessagesQueue 是一个抽象概念&#xff0c;用于描述消息队列系统的一般特性和功能…

计算机视觉 | 基于 PointNet 网络的飞机零件 3D 点云分割

目录 一、简要介绍二、环境设置2.1 实验配置2.2 必要库安装 三、数据集解析3.1 数据集加载3.2 数据文件夹结构3.3 点云数据可视化3.4 数据获取与预处理3.5 数据集定义 四、模型组网4.1 PointNet 介绍4.2 Paddle模型组网4.3 模型概要 五、模型训练六、模型预测七、总结 Hi&#…

亚马逊广告如何设置关键词竞价获取最优广告投入产出比 (ACOS)

在投放亚马逊商品广告的时候&#xff0c;从我们通常的理解来说&#xff0c;关键词竞价CPC设置的越高&#xff0c;广告投入产出比 (ACOS)越高&#xff0c;所以我们通常希望CPC越低越好&#xff0c;但是从我们实际投放广告来看&#xff0c;CPC与ACOS并不是线性相关。有时候CPC设定…

外卖点餐二合一小程序源码系统 单店多店都可使用 自由下单 带完整的安装代码包以及搭建部署教程

系统概述 外卖点餐二合一小程序源码系统是一款集外卖点餐和店铺管理功能于一体的综合性系统。它不仅适用于单店模式&#xff0c;也能满足多店连锁经营的需求。无论是小型餐厅还是大型餐饮企业&#xff0c;都可以通过该系统轻松实现线上业务的拓展和管理。 该系统基于先进的技…

69. x 的平方根(简单)

69. x 的平方根 1. 题目描述2.详细题解3.代码实现3.1 Python方法一&#xff1a;逐个遍历方法二&#xff1a;二分查找 3.2 Java 1. 题目描述 题目中转&#xff1a;69. x 的平方根 2.详细题解 不能使用系统内置的函数&#xff0c;寻找某个数&#xff08;假定为x&#xff09;的…

哈希表(C++实现)

文章目录 写在前面1. 哈希概念2. 哈希冲突3. 哈希函数4.哈希冲突解决4.1 闭散列4.1.1 线性探测4.1.2 采用线性探测的方式解决哈希冲突实现哈希表4.1.3 二次探测 4.2 开散列4.2.2 采用链地址法的方式解决哈希冲突实现哈希表 写在前面 在我们之前实现的所有数据结构中(比如&…

【详解】RV1106移植opencv-mobile库

文章目录 前言一、烧入镜像二、编译项目1.创建项目文件 三、移植四、运行文件五、总结 前言 硬件&#xff1a;瑞芯微Rv1106【Luckfox Pro\Max Pico、网线一根、USB线、串口助手、摄像头 软件&#xff1a;ubuntu 20.4 编译器&#xff1a;arm-rockchip830-linux-uclibcgnueabihf…

昇思25天学习打卡营第6天|网络构建

网络构建 概念模型模型参数 概念 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff0c;也是网络的基本单元。一个神经网络模型表示为一个Cell&…

入选顶会ICML,清华AIR等联合发布蛋白质语言模型ESM-AA,超越传统SOTA

作为细胞内无数生化反应的驱动力&#xff0c;蛋白质在细胞微观世界中扮演着建筑师和工程师的角色&#xff0c;不仅催化着生命活动&#xff0c;更是构筑、维系生物体形态与功能的基础构件。正是蛋白质之间的互动、协同作用&#xff0c;支撑起了生命的宏伟蓝图。 然而&#xff0…

RK3568驱动指南|第十五篇 I2C-第166章 初步认识I2C

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…