【单片机毕业设计】基于STM32单片机蓝牙app遥控语音控制老年轮椅车GSM位置定位报警系统--物联网 单片机 嵌入式

22 篇文章 1 订阅
10 篇文章 1 订阅

1、前言

        这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉小洪学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,小洪学长分享优质毕业设计项目,今天要分享的是基于STM32单片机蓝牙app遥控语音控制老年轮椅车GSM位置定位报警系统

2、简介

基于STM32单片机蓝牙app遥控语音控制老年轮椅车GSM位置定位报警系统

轮椅采用小车模型来设置,进行小车的底座搭建,结合传感器主要实现以下功能:(1)自动感知功能:采用人体传感器判断是否有人坐下,坐下后才能进行激活轮椅的运动状态。(2)自动避障功能:采用该红外传感器判断障碍物,当检测到障碍物的时候进行停止轮椅的运动状态,防止因为使用者操作不当和特殊情况产生的损失,保证安全性。(3)轮椅的行走控制功能:采用按键设置,控制轮椅的左转、右转、前进、后退、停止的控制;也可以通过语音来控制轮椅的运行状态,能够实现简单的语音控制,轮椅的行走、左转、右转、后退、停止等功能。(4)双陪护功能:采用手机端可以控制轮椅的紧急情况,运行状态设置。在遇到危险的时候,通过GSM模块和GPS定位,通过当前的定位来给紧急联系人发送求助消息。(5)无线通讯功能:采用蓝牙作为无线数据传输,当使用者和陪护人员在一起来但是有危险的情况下手机端进行控制轮椅的运动状态。(6)液晶显示屏:显示轮椅的当前工作状态,提示使用者能够正确操作,保证人身安全。

3、组成

本设计由STM32F103C8T6单片机最小系统+蓝牙app+gps定位模块+gsm+语音识别模块+oled显示+红外漫反射+按键电路+l298n驱动+小车底盘+电源电路组成。

4、实现效果

整体展示

采用按键设置,控制轮椅的左转、右转、前进、后退、停止的控制

5、硬件介绍

5.1、GSM模块简介

GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块具有发送SMS短信,语音通话,GPRS数据传输等基于GSM网络进行通信的所有基本功能。简单来讲,GSM模块加上键盘、显示屏和电池,就是一部手机。SIM900A是SIMCOM公司推出的一款高性能工业级 GSM/GPRS 模块, 该模块具有极高的性价比,在双频的市场中占大份额。 GSM_SIM900A模块采用高性能工业级GSM/GPRS模块:SIM900A,工作频段:GSM900/1800MHz。硬件设计在官方设计上加以优化,采用高效开关电源供电,SIM卡采用主流的卡座,质量更坚固。GSM_SIM900A模块在外围硬件的设计上参考了SIM900A 模块的硬件设计指南,对板子的电源、保护和抗干扰上做足了功夫。电源采用开关电源模块供电,电源利用效率高。

GSM传感器接口电路原理图

5.2、蓝牙模块简介

蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯。本蓝牙模块就是为了只能无线数据传输而专门打造的,本模块支持串行接口,支持SP蓝牙串口协议,具有成本低、体积小、收发灵敏性高等特点,只需配备少许的外围元件就能实现大功能。

  • 模块特点

(1)支持蓝牙 SPP 串口协议

(2)内置 PCB 天线

(3)支持 UART 接口

(4)蓝牙 Class 2

(5)数据传输比 BLE 蓝牙快、可达到 8K 每秒以上的速率

(6)支持与 SPP 主蓝牙模块连接通信(JDY-30 为从 SPP 蓝牙模块)

(7)支持与电脑 SPP 蓝牙通信

(8)支持 Android 手机 SPP 通信

二、产品应用范围

(1) POS 机

(2)蓝牙打印机

(3)蓝牙玩具

(4)蓝牙高速数据传输产品应用

(5)小家电

(6)汽车电子

三、模块技术参数

(1)工作电压:3.3V-6V

(2)工作温度:-40℃-85℃

(3)天线:PCB板载天线

(4)功耗:19mA

四、模块接口说明

(1)RXD 串口输入,电平为TTL电平

(2)TXD 串口输出,电平为TTL电平

(3)GND 接GND

(4)VCC 接3.3V-6V

蓝牙模块实物图如下图所示。

5.3、OLED电路简介

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,而且OLED显示屏幕可视角度大,并且能够节省电能,从2003年开始这种显示设备在MP3播放器上得到了应用。

LCD都需要背光,而OLED不需要,因为它是自发光的。这样同样的显示,OLED效果要来得好一些。以目前的技术,OLED的尺寸还难以大型化,但是分辨率确可以做到很高。

模块有单色和双色两种可选,单色为纯蓝色,而双色则为黄蓝双色。单色模块每个像素点只有亮与不亮两种情况,没有颜色区分。2)尺寸小,显示尺寸为0.96寸,而模块的尺寸仅为27mm*26mm大小。3)高分辨率,该模块的分辨率为128*64。4)多种接口方式,该模块提供了总共4种接口包括:6800、8080两种并行接口方式、 4线的穿行SPI接口方式,、IIC接口方式(只需要2根线就可以控制OLED了!)。5)不需要高压,直接接3.3V就可以工作了

5.4、L298N驱动简介

电机是整个小车的动力源泉,PWM可以输出0-5V的等效电压,而小车电机的额定电压一般为7V左右,且单片机内部可提供的电流很低不能满足要求,若没有点击驱动单片机只能支持小电机的转动和调速,同时也会对芯片造成一定程度的损伤。所以此时需要电机驱动的帮忙,电机驱动采用L298N,能够承受电机需要的大电流,大功率电路,可以满足本设计的需求。

5.5 STM32F103C8T6简介

  1. STM32系列处理器是意法半导体ST公司生产的一种基于ARM 7架构的32位、支持实时仿真和跟踪的微控制器。选择此款控制芯片是因为本系统设计并非追求成本的最低或更小的功耗,而是在实现本设计功能的前提下能够提供更丰富的接口和功能以便于设计实验系统各实验项目所需的外围扩展电路。此款控制芯片在完成单片机课程的学习后上手较为容易,在医疗器械中应用广泛,具有很好的学习、实验研究价值。
  2. 一、STM32的主要优点:
  3. (1)使用ARM最新的、先进架构的Cortex-M3内核
  4. (2) 优异的实时性能
  5. (3) 杰出的功耗控制
  6. (4) 出众及创新的外设
  7. (5) 最大程度的集成整合
  8. (6) 易于开发,可使产品快速将进入市场
  9. 二、STM32——最佳的平台选项
  10. 对于使用同一平台进行多个项目开发而言,STM32是最
  11. 佳的选择:
  12. (1) 从仅需少量的存储空间和管脚应用到需要更多的存储空间和管脚的应用
  13. (2) 从苛求性能的应用到电池供电的应用
  14. (3) 从简单而成本敏感的应用到高端应用
  15. (4) 全系列脚对脚、外设及软件的高度兼容性,给您带来全方位的灵活性。您可以在不必修改您原始框架及软件的条件下,将您的应用升级到需要更多存储空间或精简到使用更少存储空间/ 或改用不同的封装的规格。
  16. STM32F103C8T6单片机核心板接口电路图如下图所示。

STM32单片机核心板接口原理图

6、部分核心代码

#include "sys.h"
char Tou0[100] = {" "};
char Tou1[100] = {" "}; //
char Tou2[100] = {" "}; // 
uint8_t sd_falg = 0;//摔倒标志
 char  JDStr[20] = {0};   //字符串
 char  WDStr[20] = {0};   //字符串
 
 float JD;   //经度
 float WD;   //纬度 
 
uint8_t start_falg=0;  //运动

char  DHStr[20] = {0};   //字符串
char HC05SEND[200] = {0};   //蓝牙发送数据
char lsstr[50] = {0};  //字符串

unsigned char  SendFlag = 0;	//发送标志
unsigned char  startSendFlag = 0;	// 
char Crtl_Z[1]={0x1a};	   //发送短信最后字节
char AT_CMGS[26]="AT+CMGS=\"";
char UphoneID[] = {"123456789"};  //短信接收电话号码
uint8_t gsmsend1=0;
uint8_t gsmsend2=0;

u8 WakeUp_Flag=0;//语音唤醒标志
uint8_t Yundong_flag = 0;
uint8_t bz_flag = 0;
 int main(void)
 {	 
	    unsigned int i;
		delay_init();	 
		delay_ms(180); 
		key_Init();
		infrared_Init(); 
		YHGUI_Config();//oled初始化	 	 
		YHGUI_DispString(30,0,"Init...",16,1);  
		delay_ms(500);	 
		uart3_init(9600);  //初始化	 GPS
		delay_ms(500);	 
		uart1_init(9600);  //´初始化	 GSM
	 	delay_ms(500);
		uart2_init(9600);  //初始化	

	    PWM_Init();  //电机初始化	
		motor_Init();		

		delay_ms(500);
		HC05_Init();   //蓝牙初始化	
 		delay_ms(1000);  //ÑÓʱ1000ms
    	YHGUI_Clear();
    	YHGUI_DispString(0, 0,"轮椅:无人 速度 ",16,1);	 	  
	    YHGUI_DispString(0, 16,"  停止          ",16,1);	
	    YHGUI_DispString(0, 32,"经度:           ",16,1);	
	    YHGUI_DispString(0, 48,"纬度:           ",16,1);	

		while(1)
		{
			//ÏÔʾ¾­Î³¶ÈÊý¾Ý			
			YHGUI_DispString(0,32 ,"经度:",16,1); 
			YHGUI_DispString(0,48,"纬度:",16,1);					
			YHGUI_DispString(48,32 ,JDStr,16,1); 
			YHGUI_DispString(48,48,WDStr,16,1);	
			if(infrared_B==0)
			{
				YHGUI_DispString(0, 0,"轮椅:有人",16,1);	 
				start_falg=1;  //Ô˶¯
			}
			else
			{
				YHGUI_DispString(0, 0,"轮椅:无人",16,1);	 
				start_falg=0;  //Ô˶¯
				
			}

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
时下智能语音交互市场火热,越来越多的设备都开始支持远场AI语音交互。 例如:智能音箱,智能电视等等。但这类产品的识别率和误唤醒率还需再不断的优化提升,以至于日常生活中人们还是离不开各各样的遥控器。而语音遥控器这一产品,作为远场语音交互的一个近场配件,也搭上了这趟语音交互的快速列,成长速度令人惊讶。基于Actions炬芯的ATB1103芯片的语音遥控器,打造了一个AIoT时代的高性价比精品。 一、遥控器应用总体架构 遥控器总体架构分四层,从上到下依次为应用层、应用框架层、硬件抽象层、底层驱动层 1.1、应用层 • 应用状态机– 事件触发让遥控器应用处理不同的状态 • 应用定时器– 定时触发不同的事件,驱动遥控器正常运行 • 应用输入处理– 处理底层来的不同按键消息 • 应用音频输入处理– 将底层的音频处理消息,进行编码,然后通过发送给对端设备 • BLE profile – HID profile,提供按键输入输出接口服务 – BAS service,提供电池服务 – DIS service,提供读取设备基本信息的接口服务 – ota profile,提供OTA 升级服务 1.2、应用框架层 • 输入管理– 按键映射处理、按键过滤机制 • 消息管理– 消息分配和释放、 消息发送和接收 • 内存管理– 动态内存管理 • 闪灯管理– 灯资源分配和释放 • 电池管理– 电量读取、电量管理策略 1.3、硬件抽象层 将应用层和驱动层剥离开的中间件层 1.4、底层驱动层 底层硬件操作接口 二、遥控器模块流程概述 2.1、系统启动 系统相关初始化、板级相关外设初始化、协议栈相关初始化、HidApp 应用初始化,并进入Main 主循环,等待消息处理 2.2、遥控器状态机 遥控器在运行过程中,主要靠如下3 种状态维持他的正常运行。 2.2.1. 触发遥控器进去空闲状态的事件: > 广播状态,没有连接成功,出现超时事件,进入idle > 连接状态,断开连接,如无操作主动断开连接,然后进入idle 2.2.2. 触发遥控器进入激活状态的事件: > 空闲状态,有按键、首次上电,进入激活状态 > 连接状态,出现异常断开,需要回连,进入激活状态 2.2.3. 触发遥控器进入工作状态的事件: > 激活状态下,配对成功或者回连成功,进入工作状态。 2.3、按键处理 由于遥控器的键值较多,通常用矩阵键盘方以节省pin 的使用。当使能Key 模块后,Key 控制器就会处于矩阵扫描状态,当检测到外部按键有值时,就会产生中断,中断就将按键信息上报给应用。 2.4、红外处理 • 在非连接状态下,按下按键,就会发射红外码,进而通过红外操作对端设备,如使用红外进行配对. • IRC 协议上,最短的红外码重发时间为108 ms,而按键的重复上报时间,可能小于108ms,也可能大于108ms,因此按键输入和红外发送模块时间上存在三种可能: 2.4.1. 慢速点按 慢速点按动作特征是在大于Trpc 时间后有多次的按键输入。在Ta 时刻,发出初次按键值,在Tb 时刻,不做任何响应,在Tc 时刻,继续发送检测到的按键值,不会发送重复码. 2.4.2. 快速点按 快速点按的动作特征是用户在Trpc 时间内有两次或者以上的按键按下弹起的动作. 在Ta 时刻,将发送出初次按键,而Tb 时刻并不发送按键值,在Tc 时刻,如果按键仍然是按下状态,将发出按键值,否则将丢掉按键值. 2.4.3. 长按 长按的动作特征是按键按下后,一直不放开。此时CPU 检测到按键的持续按下,则在Ta 时刻发送出初次按键,发送出此时按键对应的红外键码,而在Trpc 时间内没有检测到按键的松开,则在Tb 时间输出重复码,直至检测到按键弹起为止. 2.5、语音采集 • 当启动Voice Key 后,ADC 开始采集 • 采集的数据通过DMA 搬运到应用的循环buffer 中,同时发送消息给Main 线程,让其处理语音数据。 • 如果Main 线程处理速度不够快,audioin 驱动就会因为分不到buffer,而将采集的语音数据丢弃。 2.6、BLE数据传送 • 将audioin 驱动发送上来的数据进行编码压缩。 • 然后将编码后的压缩数据切成几个20byte 的数据包 • 最后通过hid profile notify 接口发送给BLE 协议栈 2.7、应用软件Timer管理模块 2.8、LED管理模块 遥控器定义了几种LED 指示灯,用于指示遥控器的一些状态,如下表所示 通常遥控器只有一个物理的LED 灯用于各种场景的指示,这就需要软件上让其分时复用,如果同时需要显示两种状态,状态需要定义优先级,优先级高的状态先指示。如在配对模下,处于闪灯状态下,这时候按下按键,那么灯还是处于快闪状态。 2.9、O
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值