当前位置: 首页 > news >正文

基于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);
}

具体实现截图

请添加图片描述

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

设计获取

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

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

毕业设计精品实战案例

收藏关注不迷路!!

🌟文末获取设计🌟

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • .NET Core中的时区转换问题
  • Java设计模式—面向对象设计原则(五) ----->迪米特法则(DP) (完整详解,附有代码+案例)
  • 生信初学者教程(五):R语言基础
  • PCL 读取txt格式点云并可视化
  • Cron表达式学习
  • 机器狗与无人机空地协调技术分析
  • 自注意力与多头自注意力的区别
  • 基于yolov5的不同颜色安全帽检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • Virtuoso服务在centos中自动停止的原因分析及解决方案
  • js中的 赋值 浅拷贝 和 深拷贝 详细解读
  • Knowledge Graph Large Language Model (KG-LLM) for Link Prediction
  • QT应用开发的C++功能框架以及实战入门开发项目场景
  • 智慧交通,智能消防系统助力高铁站安全
  • [Linux]自定义shell详解
  • SpringBoot 基于 Vue 的地方美食分享网站
  • gops —— Go 程序诊断分析工具
  • hadoop集群管理系统搭建规划说明
  • HashMap剖析之内部结构
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Java Agent 学习笔记
  • js继承的实现方法
  • Laravel 中的一个后期静态绑定
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • React-Native - 收藏集 - 掘金
  • Ruby 2.x 源代码分析:扩展 概述
  • Shadow DOM 内部构造及如何构建独立组件
  • Solarized Scheme
  • Terraform入门 - 1. 安装Terraform
  • 初识 beanstalkd
  • 创建一种深思熟虑的文化
  • 从重复到重用
  • 机器学习中为什么要做归一化normalization
  • 前端学习笔记之观察者模式
  • 区块链共识机制优缺点对比都是什么
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 时间复杂度与空间复杂度分析
  • 实战|智能家居行业移动应用性能分析
  • 使用 Docker 部署 Spring Boot项目
  • 事件委托的小应用
  • 消息队列系列二(IOT中消息队列的应用)
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 移动端高清、多屏适配方案
  • ​520就是要宠粉,你的心头书我买单
  • ​iOS实时查看App运行日志
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #数据结构 笔记一
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (理论篇)httpmoudle和httphandler一览
  • (十三)Maven插件解析运行机制
  • (十一)图像的罗伯特梯度锐化
  • (幽默漫画)有个程序员老公,是怎样的体验?