基于STM32红外感应的自动迎客人语音控制系统设计

文章目录

  • 前言
  • 资料获取
  • 设计介绍
  • 功能介绍
  • 设计程序
  • 具体实现截图
  • 设计获取


前言

💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
单片机设计精品实战案例
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

资料获取

文章底部名片,详细资料联系我。

设计介绍

基于STM32红外感应的自动迎客人语音控制系统设计,旨在通过结合STM32单片机与红外传感器技术,实现智能化、自动化的迎客服务。以下是对该系统设计的详细介绍:

STM32单片机控制模块:
作为系统的核心控制单元,负责接收红外传感器信号、执行控制算法、驱动语音模块等功能。
STM32单片机以其高性能、低功耗和丰富的外设接口,能够满足系统对实时性和准确性的要求。

功能介绍

STM32单片机自动迎客门红外感应步进电机语音播报41
本系统由STM32F103C8T6单片机核心板、语音播报、ULN2003步进电机控制、红外避障传感器、按键及电源组成。
1、红外探头检测到有人时,自动门打开(步进电机向打开方向旋转一周),人员进入,语音播报欢迎。
2、在开门的状态下,检测不到人遮挡,自动门关闭。
3、在关门过程中,再次检测到人遮挡,会停止关门进行开门操作。防止夹到人。
4、另外按键操作相当于门里的开关,按下开关门打开,门里人出来,语音播报欢迎再次光临。

设计程序

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include <stdio.h>
#include "timer.h"
#include "key.h"
#include <stdio.h>
#include "adc.h"#define TIMELATERNUM 2000		//步进电机旋转时间unsigned char i ;	
char dis0[16];	 //暂存unsigned char zfFlag = 0 ;		 //正反转标志
unsigned int  timeLater = 0;		 //时间延时
char rekey =0;//防止重复按下
char keyFlag = 0;//按键操作开门标志
void yyReportReadAdd(unsigned char yyAdd) ;
int main(void){ 		delay_init();	    	 //延时函数初始化	  uart_init(9600);	 	//串口初始化uart2_init(9600)	;TIM3_Int_Init(29,7199);//3ms  	 LED_Init();		  		//初始化与LED连接的硬件接口 	 KEY_Init();zfFlag = 1 ;		 //正反转标志timeLater = TIMELATERNUM;		 //时间延时	delay_ms(100);yyReportReadAdd(86);//播报地址语音 “欢迎使用”while(1){	if(key==0) //检测到按键按下{if(rekey == 0)//防止重复按下{delay_ms(20); if(key==0)//确认按键按下{rekey =1;if(zfFlag != 2)	//门没有打开或者没在打开过程{zfFlag=2;		//驱动电机启动 正传开门timeLater = TIMELATERNUM; 	//旋转//**All notes can be deleted and modified**//keyFlag = 1;//按键操作开门标志						}			yyReportReadAdd(85);//播报地址语音		//欢迎再次光临			}			}}else{rekey =0 ;}	//防止重复按下if(keyFlag == 1)//按键操作标志{if(timeLater == 0 ){keyFlag = 0;}//按键开门操作完成}else{if(manhot == 0){if(zfFlag != 2)	//门没有打开或者没在打开过程{zfFlag=2;		//驱动电机启动 正传开门timeLater = TIMELATERNUM; 	//旋转//**All notes can be deleted and modified**//yyReportReadAdd(84);//播报地址语音  //欢迎光临}}else{if(zfFlag != 1)	//门没有打开或者没在打开过程{zfFlag=1;		//驱动电机启动 正传开门timeLater = TIMELATERNUM; 	//旋转//**All notes can be deleted and modified**//}}			}					}											    
}void ctrlBuJinDj(void)
{static unsigned char MotorNum=0;if(timeLater>0){timeLater-- ;if(zfFlag==2)			  //电机转动时间不为零 设置了时间		正转{MotorNum++;if(MotorNum==1)//接通d相 其他关闭{Coil_D1;}else if(MotorNum==2)//接通c相 其他关闭{Coil_C1;}else if(MotorNum==3)//接通b相 其他关闭{Coil_B1;}else if(MotorNum==4)//接通a相 其他关闭{Coil_A1;MotorNum=0;}}else if(zfFlag==1)			  //电机转动时间不为零 设置了时间 反转{MotorNum++;if(MotorNum==1)		//接通a相 其他关闭{Coil_A1;}else if(MotorNum==2)   //接通b相 其他关闭{Coil_B1;}else if(MotorNum==3)//接通c相 其他关闭{Coil_C1;}else if(MotorNum==4)//接通d相 其他关闭{Coil_D1;MotorNum=0;}}	}else{{Coil_OFF;}	}
}void yyReportReadAdd(unsigned char yyAdd) //语音播报地址
{yy_rest=0; 			//yyxp(语音芯片的简写,下同)的复位脚为高电平//delay_us(300); 	//持续 200us//yy_rest=1; 			//然后复位脚置零//delay_us(300); yy_rest=0; 			//yyxp(语音芯片的简写,下同)的复位脚为高电平//delay_us(300); //持续 200us//yy_rest=1; 			//然后复位脚置零//delay_us(300); while(yyAdd>0)				 //若  等于 0 则不工作,若大于 0 则继续自减//{yy_data=0; 			//data 脚位为高电平//delay_us(300); 		//持续 100us//yy_data=1; 			//然后置零//                          delay_us(300); //持续 100us 这三句的意思就是发从一个 100us 的脉冲(高低各 100us)//yyAdd--; 				//z 自减完成后开始播放对应的语音(因为 z 是几就播放第几段)//}delay_ms(5);
}

具体实现截图

请添加图片描述

请添加图片描述
请添加图片描述

设计获取

文章下方名片联系我即可~

精彩专栏推荐订阅:在下方专栏👇🏻

毕业设计精品实战案例

收藏关注不迷路!!

🌟文末获取设计🌟

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

相图数据对于纳米材料研究的积极作用

纳米材料因其独特的物理、化学和生物学特性&#xff0c;在环境保护&#xff0c;能源领域&#xff0c;生物医学&#xff0c;航空航天等多个领域展现出广泛的应用潜力。在纳米材料合成过程中&#xff0c;通过相图可以识别出在特定温度和压力下材料的稳定相和不稳定相&#xff0c;…

git第一次首次提交本地代码到远程仓库详细步骤(初始化提交)

参考文章 &#xff1a;https://blog.csdn.net/qq_22182989/article/details/139098265 假如报错关联git仓库出现的问题。 error: remote origin already exists.解决方案&#xff1a; 1、先输入git remote rm origin 删除关联的origin的远程库 2、关联自己的仓库 git remote a…

文心一言 VS 讯飞星火 VS chatgpt (351)-- 算法导论24.1 2题

二、证明推论24.3。推论 24.3 的内容是设 G ( V , E ) G(V,E) G(V,E)是一带权重的源结点为 s s s的有向图&#xff0c;其权重函数为 ω : E → R ω:\boldsymbol{E→R} ω:E→R。假定图 G G G不包含从源结点 s s s可以到达的权重为负值的环路&#xff0c;则对于所有结点 v ∈ …

mat (Eclipse Memory Analyzer Tool)使用以及详解

前言 在Java开发中&#xff0c;内存问题往往不易被发现&#xff0c;但它们可能导致应用性能下降甚至崩溃。Eclipse Memory Analyzer Tool&#xff08;MAT&#xff09;是一个强大的开源工具&#xff0c;专门用于分析Java堆转储&#xff08;heap dumps&#xff09;文件&#xff…

js 将二进制文件流,下载为excel文件

吃西瓜 现成的粒子 二进制流&#xff0c;是一种计算机文件格式&#xff0c;它的数据以二进制形式存储&#xff0c;与文本文件不同&#xff0c; 二进制文件可以包含任意类型的数据&#xff0c;例如&#xff1a;图像、音频、视频、可执行文件、压缩文件等&#xff0c;而文本文…

Acwing Hash表

哈希表的作用&#xff1a;把一个比较大的空间&#xff0c;通过一个函数映射到一个比较小的空间 一般做哈希运算时&#xff0c;取一个质数作为模&#xff0c;会使得冲突的概率降低。 哈希表的冲突解决方法&#xff1a; 拉链法开放寻址法 下面详细介绍这两种方法的原理及其实现…

自制网络连接工具(支持tcpudp,客户端服务端)

自制网络连接工具&#xff08;支持tcp/udp,客户端/服务端&#xff09; 将网络连接工具制作成共享库 network.h #ifndef NETWORK_H #define NETWORK_H#include<netinet/in.h> #include<sys/socket.h> #include<stdbool.h> typedef struct Network {int type…

JAVA基础:包装类,BigInteger , BigDecimal

1 包装类 java是一种面向对象的编程语言 对象都是由类产生的。 8种基本类型对java面向对象的特性有所破坏 jdk就提供了8种基本类型所对应的类的表示&#xff0c;称为&#xff1a;包装类 理论上来讲&#xff1a;类属性使用包装类定义&#xff0c;方法中的局部变量使用基本类型…

javamail发邮件:配置SMTP发送邮件的步骤?

javamail发邮件的教程指南&#xff1f;怎么用JavaMail发送邮件&#xff1f; JavaMail API 是 Java 平台上用于发送和接收电子邮件的标准 API&#xff0c;它提供了一套丰富的类和方法&#xff0c;使得开发者能够轻松地实现邮件发送功能。AokSend将详细介绍如何使用 JavaMail AP…

基于atlas环境下YOLOV7的睡岗识别

做到这里&#xff0c;其实只是想探索下新的检测框架、探索下atlas下ACL的推理方式。整个过程持续了3-4周把&#xff0c;回顾一下&#xff0c;感觉还是需要一些技巧才能拿下&#xff0c;如果没有任何经验的是断难搞定此代码的。主要基于华为的官方例子&#xff0c;里面修改了原始…

峟思科普:溢流坝是什么?溢流坝承载着哪些作用

水坝系统中的一项关键组成部分——溢洪结构&#xff0c;又常被称作溢洪道&#xff0c;其独特功能在于精准调控水库水位&#xff0c;确保水坝安全。当水库蓄水量超过预设阈值&#xff0c;该结构能够引导多余水流平稳穿越坝体&#xff0c;注入下游河床。此过程中&#xff0c;坝前…

Snapchat API 访问:Objective-C 实现示例

Snapchat 是一个流行的社交媒体平台&#xff0c;它允许用户发送和接收短暂存在的图片和视频。对于开发者来说&#xff0c;访问 Snapchat API 可以为应用程序添加独特的社交功能。本文将介绍如何在 Objective-C 中实现对 Snapchat API 的访问&#xff0c;并提供一个详细的代码示…

uni-app页面调用接口和路由(四)

文章目录 一、路由二、页面调用接口二、路由跳转1.uni.navigateTo(OBJECT)2.uni.redirectTo(OBJECT)3.uni.reLaunch(OBJECT)4.uni.switchTab(OBJECT)5.uni.navigateBack(OBJECT) 总结 一、路由 路由配置 uni-app页面路由为框架统一管理&#xff0c;开发者需要在pages.json里配…

yolo自动化项目实例解析(四)ui页面整理1 (1.85)

我们在上一章整理main.py 的if __name__ __main__: 内容还留下面这一段&#xff0c; from PyQt5.QtWidgets import *from lanrenauto.moni.moni import *from PyQt5.QtGui import *app QApplication(sys.argv) # 初始化Qt应用ratio screen_width / 2560 # 分辨率比例# 设…

centos 安装VNC,实现远程连接

centos 安装VNC&#xff0c;实现远程连接 VNC(Virtual Network Computing)是一种远程控制软件&#xff0c;可以实现通过网络远程连接计算机的图形界面。 服务器安装VNC服务 yum install -y tigervnc-server*启动VNC服务&#xff0c;过程中需要输入连接密码 vncserver :1查看…

全国网安众测招募计划启动啦,欢迎加入~

在数字化时代&#xff0c;网络安全已成为维护社会稳定、促进经济发展的基石。为了积极响应国家关于加强网络安全工作的号召&#xff0c;确保某区域关键信息系统的稳固运行&#xff0c;我们特此启动一项网络安全众测活动。该活动旨在通过汇聚业界有经验的网络安全攻防人才&#…

RetrievalAttention——提高 LLM 处理长上下文的效率

概述 论文地址&#xff1a;https://arxiv.org/abs/2409.10516 本文的研究背景主要是为了解决 "具有长语境的大型语言模型&#xff08;LLM&#xff09;"问题。基于变换器的 LLM 被广泛应用于各个领域&#xff0c;但在处理长上下文时&#xff0c;其计算成本非常高。特…

电脑USB端口禁止软件有哪些?什么软件能指定USB端口禁用?分享四款好用软件!

想象一下&#xff0c;你正准备在办公桌上插入U盘&#xff0c;打算快速拷贝文件&#xff0c;突然系统蹦出一个警告&#xff1a;“这个USB端口已被禁用&#xff01;” 是不是感觉好像被一双隐形的手制止了&#xff1f; 其实&#xff0c;这双“隐形的手”就是专门为企业安全设计…

visionpro脚本

visionproToolBlock的脚本的优先级优于工具连线的优先级&#xff0c;一般是照着脚本的执行顺序进行执行对应的工具&#xff0c;最常用的是C#的高级脚本&#xff0c;C#的脚本如下分为5部分。 第一部分&#xff1a;主要是一些库的引用&#xff0c;对于有些类型不知道库的时候&…

vue2中字符串动态拼接字段给到接口

【设计初衷是用户可根据给定的字段进行准确描述】 实现功能&#xff1a; 1. 文本域内容串动态配置字段&#xff0c;以$ {英文}拼接格式给到接口。 &#xff08;传参如&#xff1a;$ {heat_status_code}正常&#xff0c;$ {wdy_temp}也正常&#xff01;&#xff09; 2. 编辑时根…