本帖最后由 刘佳辉dd 于 2020-10-22 10:58 编辑
目录 摘要... 1 一、 设计任务与要求... 1 1、设计任务... 1 二、 系统方案... 2 1、控制器选用单片机比较... 2 2、控制系统的论证与选择... 2 三、电路设计与系统软件设计... 2 1、电路的设计... 2 四、测试方案与测试结果... 4 2、测试条件及仪器... 4 3、测试结果及分析... 4 五、参考文献... 5 附录1:电路原理图... 6 附录2:源程序... 6
摘要该无线运动传感器基于TI模拟前端芯片ADS1292 和温度传感器LMT70设计制作。可实时采集和记录使用者的心电信号与体表温度,实现动态心电图的显示并分析计算使用者的心率,同时基于加速度计传感器检测使用者运动信息,实现运动步数和运动距离的统计分析,通过WIFI模块将使用者的心电信号、体表温度和运动信息实时上传至服务器,在手机端实时显示动态心电图、体表温度和运动信息。
关键词:ADS1929、运动传感器、实时、无线上传、心电图检测一、设计任务与要求
1、设计任务 (1)基于ADS1292模拟前端芯片设计心电检测电路,完成使用者的心电信号实时测量 (2)基于LMT70温度传感器测量使用者体表温度。 (3)基于加速度计等传感器检测使用者运动信息,实现运动步数和运动距离的统计分析。 (4)无线运动传感器节点能通过无线上传使用者的基本心电信号、体表温度和运动信息,并在服务器(手机)端实时显示动态心电图、体表温度和运动信息,要求传输时延不大于1秒。
2.设计要求: ①实时采集和记录使用者的心电信号,实现动态心电图的测试与显示; ②分析计算使用者的心率,心率测量相对误差不大于5%。 ①实时采集和记录使用者的体表温度,温度采样率不低于10次/分钟; ②体表温度测量误差绝对值不大于2℃。 ①运动距离记录相对误差不大于10%; ②运动步数记录相对误差不大于5%。
二、系统方案
1、控制器选用单片机比较方案一:采用传统的51系列单片机价格低,开发容易,体积小 方案二:采用stm32f1系列单片机性能相对强,体积小 方案三:采用stm32f4系列单片机性能强,功耗高,开发难度大 通过对功耗,开发难度,性能的比较,我们选择了方案二
2、控制系统的论证与选择方案一:采用在洞洞板上搭建简易单片机系统 在洞洞板上搭建单片机系统可以方便的修改硬件,也易于搭建,但是系统连线较多,不仅相互干扰,使电路杂乱无章,而且系统可靠性低,不适合本系统使用 方案二:自制单片机印刷电路板,自制PCB电路实现较为困难,打样周期长,花费较多的时间,影响整体设计进程。不宜采用该方案 方案三:采用单片机最小系统,单片机最小系统能明显减少外围电路的设计,降低系统设计的难度,非常适合本系统的设计,所以我们采用方案三
三、电路设计与系统软件设计
1、电路的设计(1)单片机选择 此次设计我们采用STM32F103C8T6单片机,STM32F103系列微处理器是首款基于ARMv7-M体系结构的32位标准RISC(精简指令集)处理器,提供很高的代码效率,在通常8位和16位系统的存储空间上发挥了ARM内核的高性能。该系列微处理器工作频率为72MHz,内置高达128K字节的Flash存储器和20K字节的SRAM,具有丰富的通用I/O 端口。
(2)atk-esp8266-v1.3子系统框图 应用范围 atk-esp8266-v1.3是一款超低功耗的UART-WiFi透传模块,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi无线网络上,进行互联网或局域网通信,实现联网功能。ESP8266支持三种天线接口形式:板载PCB天线、IPEX接口和邮票孔接口,板载PCB天线和IPEX接口天线客户可直接使用,无需添加任何匹配电路。
(3)BMI160子系统产品概述 BM160惯性测量单元(IMU)将16位低功耗3轴加速度计和 3轴陀螺仪集成与单一封装,专为智能手机、平板电脑和可穿戴设备等市场的不断讯( lalways-on)应用而设计。沉浸式游戏增强现实和新兴的三维室内扫描应用,对实时性等用户体验有近乎苛刻的要求。BM160可以将惯性测量单位加速度计和陀螺仪的数据与外挂地磁传感器数据进行同步。
(4)电源 电源由变压部分、滤波部分、稳压部分组成。为整个系统提供土5V或者±12V 电压,确保电路的正常稳定工作。这部分电路比较简单,都采用三端稳压管实现 故不作详述。
2、程序的设计 file:///C:/Users/16060/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg 3.1 智能软件设计流程 心率检测算法 程序执行,当 T 呈现不同数值时,则程序所执行的任务不同,由定时器 3 对其加以控制,每次间隔10ms 自动增加一次。当测量心率时单片机会对经ADS1292模块传输所转换而来的脉搏传感器发出的相关数据进行读取和分析,从而得出用户的心率值,并发给上位机显示出来。而记步的作用就是对加速度的值进行读取,之后对其加以处理和分析,从而对用户的运动状态进行判断,得出用户所运动的步数。通过对通道时钟的应用,对 ADC 分频因子进行设置,与输入引脚绑定后在对ADC 做复位处理;进行 ADC 工作模式的设置、校准;而后就能够对ADC 进行使用。
心电图滤波算法 滑动平均值滤波是指先在RAM中建立一个数据缓冲区,依顺序存放N个采样数据,每采进一个新数据,就将最早采集的那个数据丢掉,而后求包括新数据在内的N个数据的算术平均值或加权平均值。这样,每进行一次采样,就可计算出一个新的平均值,从而加快了数据处理的速度。 滑动平均值滤波程序设计的关键是:每采样一次,移动一次数据块,然后求出新一组数据之和,再求平均值。滑动平均值滤波程序有两种,一种是滑动算术平均值滤波,一种是滑动加权平均值滤波。不管是算术平均值滤波,还是加权平均值滤波,都需连续采样N个数据,然后求算术平均值或加权平均值。
四、测试方案与测试结果1、硬件测试 采用数字万用表对电路板连接情况测试。
2、功能测试 1. 实时采集和记录使用者的心电信号,实现动态心电图的测试与显示 2. 分析计算使用者的心率 3. 实时采集和记录使用者的体表温度 4. 实现运动步数和运动距离的统计分析 5. 在服务器(手机)端实时显示动态心电图、体表温度和运动信息,传输时延不大于1秒
2、测试条件及仪器数字万用表、温度计、患者脉搏模拟仪、安卓手机
3、测试结果及分析
(1)测试结果
表格一 运动检测
表格二 心电信号检测
(注:标准心率:
(60次/分钟)
表格三 温度检测
file:///C:/Users/16060/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg 图2.3 心电图的测试与显示 (2)测试分析与结论
根据上述测试数据,由此可得出以下结论:
1. 可以实时采集和记录使用者的心电信号,可以实现动态心电图的测试与显示,心率测量相对误差不大于5%。 2. 可以实时采集和记录使用者的体表温度,体表温度测量误差绝对值不大于2℃。 3. 可以记录运动距离,相对误差不大于10%;可以记录运动步数记录,相对误差不大于5%。 4. 无线运动传感器节点能通过无线上传使用者的基本心电信号、体表温度和运动信息,并在服务器(手机)端实时显示动态心电图、体表温度和运动信息,传输时延不大于1秒。 综上所述,本设计符合要求。
五、参考文献[1]徐金增. 单片机编程仿真实验系统设计与实现 [M].山东:山东师范大学出版社,2009. [2]王春娴 实用电子电路(数字电路分册) 北京:高等教育出版社2012. [3]梁宗善 电子技术基础课程设计 .武汉:华中理工大学出版社2005.
附录1:电路原理图file:///C:/Users/16060/AppData/Local/Temp/msohtmlclip1/01/clip_image006.giffile:///C:/Users/16060/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif
附录2:源程序测温:
float ADC_filter;
float lmt70_TV;
float lmt70_Temp;
void LMT70_Updata(void)
{
ADC_filter= LMT70_Filter(ADC_ConvertedValue);
lmt70_TV= ADC_filter*3300.0f/4095; // תmVµçѹ
lmt70_Temp= -0.19216408f*lmt70_TV+211.14034181f+offsetTemp;
}
WIFI模块:
void ESP8266_TCP_AP(char *name,char *key)
{
ESP8266_Init();
int8_tsta = -1;
char*p = NULL;
p=(char*)malloc(255);
ESP8266_QuitTrans();
sta= ESP8266_SendCmd("AT+RESTORE\r\n", "ready\r\n",4000);
sta= ESP8266_SendCmd("AT+CWMODE=2\r\n", "OK\r\n",1000);
sta= ESP8266_SendCmd("AT+RST\r\n", "ready\r\n",5000);
sprintf((char*)p,(char*)("AT+CWSAP=\"%s\",\"%s\",1,3\r\n"),name,key);
sta= ESP8266_SendCmd(p, "OK\r\n",1000);
}
|