该装置具有以下几个特征:

(1)、电路简单、系统整体功耗低、发热量低、可以稳定连续运行;

(2)、使用新型、主频高的控制芯片,能在芯片上实现数据滤波

(3)、设计安卓端上位机显示心电信号与反馈信息

(4)、PC端上位机显示信号波形,将采集的数据以文件格式储存,并对数据进行分析,供科研人员进一步研究。

实施方案

1总体流程图

2.前端模拟放大电路

采用AgCl电极片,减小基线漂移。

心电信号通过二级放大,放大倍数1000倍以上,第一级采用仪表放大器AD620进行放大,二级电路用LM358,和OP07构成放大。通过蓝牙,用于STM32与手机通信。附加MPU6050用于跌倒检测。

心电部分采用右腿驱动,减小工频干扰。通过RC与运算放大器构成有源带通滤波器,0.3HZ-106Hz的频率通过。电源部分采用AMS11175.0V和7660s构成一对正负5负的电压为运放供电。通过AMS11173.3V稳压到3.3V为STM32进行供电。

2.1负电源产生电路

用两个ICL7660s并联,提高能够输出的最

2.2心电放大电路

R25,C24,R26和U2(OP07)构成右腿驱动电路,AD620将信号放大10倍左右。C25与R12与U3(OP07)构成一个有源高通滤波器。R35、C26构成低通滤波器,放大倍数=(R34/R33)*(R37/R36)=1000。

2.3电压抬升电路

经过放大后的信号,电压范围在-5V到+5V,为了让STM32AD能够读到电压值,需要将放大的信号转换到0-3.3V。可知最后输出的电压在0到3.3之内,可以由STM32的AD读出。

3.单片机部分

3.1 主控单元选取

本次数据采集与滤波电路使用的主控芯片为意法半导体公司的STM32F103RBT6。该芯片的具有ARM 32-bit Cortex-M3 CPU,片上128k flash,20kRAM,12-bit精度的是,片内ADC转换器,以及I2C接口等外设。可以在简单的电路上完成信号采集与数据滤波等运算。

3.3.2信号的采集与传输

模拟信号的采样使用了ADC1的第10通道,两次采样时间间隔为14个时钟周期,转换精度为12bit,ADC的触发时钟配置为TIM2输出,通过DMA方式进行外设到内存数据传输,采用DMA乒乓结构进行数据存储和处理

3.2.1定时器配置PWM输出关键代码

TIM_TimeBaseStructure.TIM_Period = 400;

TIM_TimeBaseStructure.TIM_Prescaler = 720 - 1;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;

TIM_OCInitStructure.TIM_Pulse = 200;

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//下面详细说明

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

TIM_OCInitStructure.TIM_Pulse = 200;

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;

TIM_CtrlPWMOutputs(TIM2, ENABLE);

3.3.2.2配置DMA外设到内存传输

DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;           DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue;

3.3.2.3用定时器配置ADC采样率

ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_CC2 ; //Timer触发         ADC_ExternalTrigConvCmd(ADC1, ENABLE);   //使用外部中断触发(相对于M3内核来说)

3.3.3干扰来源

工频干扰:工频干扰是由电力系统引起的一种干扰,由50hz及其谐波构成的一种干扰,幅值约为ECG(心电信号)的50%

基线漂移:呼吸作用引起的,源于被测对象在测试过程中呼吸时电机与人体皮肤间的阻抗仪器放大的热噪声等干扰引起的,频率约为0.15-0.3hz。呼吸作用时ECG幅值有15%的变化

肌电干扰:来源于人体的肌肉颤抖,肌电干扰产生毫伏级电势,可视为瞬间发生的高斯零均值带限噪声

3.3.3数字陷波滤波器的设计

工频干扰可以用先波器进行处理,过滤50hz信号,而基线漂移则通过高通滤波器消除0.5hz以下的频率。常用固定频率的设计有IIR滤波器和FIR滤波器两种,其中FIR滤波器具有良好的线性相位。但是在同等性能条件下阶数比IIR滤波器高,运算量大。故本设计的工频陷波和高通滤波均采用IIR滤波器来设计

IIR滤波器的设计方法有脉冲响应不变法和双线性变换法,但过程比较复杂,借助Matlab的fdatool工具包可以直接生成相关参数。再通过直接II型翻译成c语言形式应用于STM32平台

导出滤波系数得到转移函数

再根据滤波器直接II型实现框图,翻译成c语言代码并烧录到主控芯片中运行

c语言响应代码

x0=ADC_ConvertedValueLocal;  //输入ADC采集到的信号

w0[0]=IIR_50Notch_A[0]*x0-IIR_50Notch_A[1]*w0[1]-IIR_50Notch_A[2]*w0[2];

y0=IIR_50Notch_B[0]*w0[0]+IIR_50Notch_B[1]*w0[1]+IIR_50Notch_B[2]*w0[2];

w0[2]=w0[1];

w0[1]=w0[0];

3.3.4数字高通滤波器的设计

数字高通滤波器能有效抑制呼吸作用导致的基线漂移,同样采用Matlab Fdatool工具箱设计0.5hz二阶IIR高通滤波器,导出滤波系数。

得到响应函数:

翻译成C语言代码:

w1[0]=0.991153*(IIR_High_A[0]*x1-IIR_High_A[1]*w1[1]-IIR_High_A[2]*w1[2]);

y1=IIR_High_B[0]*w1[0]+IIR_High_B[1]*w1[1]+IIR_High_B[2]*w1[2];

w1[2]=w1[1];

w1[1]=w1[0];

3.3.5.采用SG平滑滤波算法对心电信号进行平滑处理

对IIR滤波后的数据进行SG平滑处理,先在Matlab平台上面进行实时仿真,通过提取MIT-BIH数据库的文件,对其进行SG平滑滤波以验证算法的效果,再将其翻译成c语言,

SG平滑之后数据比之前平滑很多

3.3.5跌倒检测算法检测

基于MPU6050六轴模块设计跌倒检测算法。MPU6050是全球首例整合性6轴运动处理器件整合了3轴陀螺仪和3轴加速度计,免除了组合陀螺仪和加速度计时之轴间差的问题。

由于产品佩戴于胸前,所以选取X轴方笔直朝下,使用I2C通讯协议,提取MPU6050各轴数据,消除零点漂移之后,对加速度计的数据进行均值滤波,通过加速度计数据得到x轴与重力加速度方向的角度,然后通过卡尔曼滤波融合陀螺仪的加速度,得到修正之后X轴与重力加速度方向的倾角,实际实验测试出临界阈值。

mpu6050_get_data(&gx,&gy,&gz,&ax,&ay,&az,&temperature);

acc_filter();

ax-=AX_OFFSET;

ay-=AY_OFFSET;

az-=AZ_OFFSET;

gx-=GX_OFFSET;

gy-=GY_OFFSET;

gz-=GZ_OFFSET;

angle_dot = gz * GZRO_SCALE;

angle =atan(sqrt(ax * ax + ay * ay )/az );

angle =angle * 57.295780;

kalman_filter(angle, angle_dot, &f_angle, &f_angle_dot);

3.5.6数据帧协议

4安卓端程序设计

4.1  Android客户端的作用相当于一个网关,一是通过蓝牙发送请求数据的命令至STM32核心控制系统并接收数据,同时在界面上绘制心电图; 二是通过Wifi在后台将心电数据发送至服务器,包含如下组件:

  1. 蓝牙服务:负责与STM32系统建立蓝牙连接的串口信道,收发数据。
  2. 绘图模块:实现与用户的交互功能,对采集数据进行实时画图,以供观察。
  3. 网络服务:负责向服务器发出连接请求,将接收的数据通过Wifi发送至服务器
  4. 其它服务:包括短信提醒和保存数据的功能,可以通过对网络返回的数据进行判断,给用户预先设置的联系人发送短信提醒,并且对数据进行保存,方便让专业学者进行诊断

4.2  Android SDK对蓝牙的支持

4.2.1 蓝牙通信技术

蓝牙通信技术是一种支持设备短距离通信( 一般10m以内) 的无线电技术,能在包括移动电话PDA无线耳机笔记本电脑相关外设等众多设备之间进行无线信息交换 利用蓝牙技术,能够有效得简化移动通信终端设备之间的通信

4.2.2 Android蓝牙APIS

AndroidSDK2.0版本及以上包含了对蓝牙网络协议栈的支持,这使得Android设备能够无线连接其它蓝牙设备交换数据Android的应用程序框架提供了访问蓝牙功能的APIs( 应用程序接口) , 这些APIs让应用程序能够无线连接其他蓝牙设备,实现点对点,或点对多点的无线交互功能。可用的蓝牙APIs都包含在android.bluetooth包里,使用蓝牙APIs,一个Android应用程序能够实现下列功能: ( 1) 扫描其它蓝牙设备;( 2) 查询本地蓝牙适配器用于配对蓝牙设备; ( 3) 建立RFCOMM信道; ( 4) 通过服务发现连接其它设备; ( 5) 数据通信;( 6) 管理多个连接。

4.3 Android客户端设计

4.3.1 蓝牙通信:进行蓝牙通信需要完成以下四个步骤: ( 1) 设置蓝牙适配器; ( 2) 发现已经配对或者可用的附近的蓝牙设备; ( 3) 连接设备; ( 4) 在不同设备之间传输数据。

系统流程如图:

4.3.2 绘图模块:提取心电数据,并绘制心电图.提取STM32模块经过滤波后得到的心电数据,通过事先设定的协议:以@为开始符,|为数据的分隔符,$为停止符,进行数据的发送和提取,再通过SufaceView控件去进行动态心电图的绘制

4.3.3数据上传:在向服务器上传数据时,采用Socket 通信协议 Socket 通常称作套接字,一个Socket 对象包含了IP地址和端口应用程序通常通过套接字向网络发出请求或者应答网络请求套接字之间的连接过程可以分为三个步骤: 服务器监听,客户端请求,连接确认 首先在PC端建立一个ServerSocket监听客户请求,本文采用在Android手机端监听了上传事件的方法,触发事件后,通过“socket=new Socket(172.38.30.10)”来请求连接服务器 通过socket.getOutputStream().write()来发送数据。

5.PC端上位机程序设计

二:上位机部分

采用VC++6.0编写PC端上位机,上位机与手机通过WiFi进行通信.

上位机具有以下功能:

  1. 波形显示,实时显示用户心电图
  2. 与手机通过Wi-Fi进行数据传输
  3. 在服务器端显示用户心率,姓名等信息
  4. 心率分析,通过检测QRS波中的R波,运用阈值检测算得心率数据
  5. 将心电图的数据记录并保存到文件,也可以从文件中读取心电数据进行显示。
  6. 上位机支持多用户连接,服务器端可根据用户的姓名进行选择观看。
  7. 采用FFT计算出频谱心电图(FCG),对于研究心电图具有重要意义。运用蝶形算法计算fft求得心电信号的频谱,比DFT的计算量减小很多。

根据电子设计大赛心率检测的设计实践思路相关推荐

  1. 王者荣耀T恤图案图形设计大赛—英雄台词字体设计

    王者荣耀T恤图案图形设计大赛-英雄台词字体设计 保留作者信息 禁止商业使用 修改作品禁止更改版权信息 -如果王者出一个类似NBA的数据的话,我绝对是助攻王,场均助攻5.6次,哈哈 -最近闲暇时经常和奶 ...

  2. 电子设计大赛计算机,【计算机设计大赛】电子设计类决赛圆满落幕

    原标题:[计算机设计大赛]电子设计类决赛圆满落幕 四川旅游学院2017年大学生计算机设计大赛电子设计类决赛圆满落幕 为体现学生的创新能力,提高我院学生对数电建模以及电力电子技术.变流技术等方面的了解, ...

  3. 大学生html5设计大赛方案,大学生简历设计大赛活动策划书

    大学生简历设计大赛活动策划书 一.活动主题: 点亮职场航灯 二.活动背景: 作为毕业生,渴望获得适合自己发展的就业岗位,为自己的事业发展搭建广阔的平台,而在校生,也计划从现在起为走向我们的将来打下坚实 ...

  4. 计算机设计大赛百度云,计算机设计大赛计算机设计大赛.doc

    计算机设计大赛计算机设计大赛 "2013年中国大学生计算机设计大赛华东赛区赛" 参赛事项 大赛主题 数字媒体设计类(普通组和专业组)参赛主题为"水",其余组别主 ...

  5. 欧派caxa设计软件_欧派家居“领航者”杯CAXA设计大赛十强争霸 彰显设计实力

    设计,是定制家居企业的核心竞争力. 欧派家居一直以来坚持原创设计,除了拥有多支高水平设计师团队外,还与国内知名 设计工作室.意大利等顶级设计师达成战略合作联盟.成熟的产品研发管理体系.完善的培训和研发 ...

  6. html网页设计大赛作品介绍,HTML网页设计大赛--赛出风采

    原标题:HTML网页设计大赛--赛出风采 为了锻炼学生们的实际操作能力,让学生们能够将日常老师传授的知识做到学以致用,北大青鸟深圳嘉华学校会定期举办各种类型的知识竞赛.2019年6月11日在嘉华第一自 ...

  7. 未来飞行器设计大赛 如何轻松获得设计大奖?

    未来飞行器设计大赛 现状:比赛参加人数较多,评委都是航空业内专家,打分和点评足够到位.如果你觉得有实力,千万不要错过,实力足够强完全可以脱颖而出.在比赛中可以收获很多朋友,见识同学们的脑洞大开.对&q ...

  8. 云南计算机设计大赛,云南省大学生计算机设计大赛决赛举行 作品贴近生活

    原标题:云南省大学生计算机设计大赛决赛举行 作品贴近生活 大赛开幕式现场 记者袁虹/摄 参赛选手进行答辩 记者袁虹/摄 评委与参赛选手交流 记者袁虹/摄 参加本次大赛的选手.评委合影 记者袁虹/摄 昆 ...

  9. 2016全国大学生计算机设计大赛,“中国大学生计算机设计大赛”简介

    "中国大学生计算机设计大赛"(下面简称"大赛")是由教育部高等学校计算机类专业教学指导委员会.教育部高等学校软件工程专业教学指导委员会.教育部高等学校大学计算机 ...

最新文章

  1. 有计算机二级证书当兵有好处吗,大学生拿到这个证书可享受的福利,当兵有什么不一样?...
  2. 用 C 语言开发一门编程语言 — S-表达式
  3. 不同版本的Chrom浏览器对应的ChromDriver的版本
  4. 2012 Stackoverflow meetup at Shanghai PRC
  5. CSS3 实现厉害的文字和输入框组合效果
  6. 查询Linux系统网卡流量负载,超好用linux系统查询网卡等流量参数的工具,分享给大家!!!...
  7. 归并排序 java_归并排序(Java实现)
  8. 【剑指offer】面试题24:反转链表(Java)
  9. Codeforces Round #364 (Div. 2)C. They Are Everywhere(尺取法)
  10. zookeeper学习笔记001-Address already in use: bind启动报错
  11. 《Windows程序设计》第三章学习心得(1)|图解消息机制
  12. 索尼pha2 android手机,索尼PHA-2A便携式耳机放大器图文评测
  13. [并发并行]_[pthread]_[使用线程池并发复制文件]
  14. 【软著】自己申请软件著作权流程
  15. [微软中国]秋季校园招聘开启了(可内推)
  16. ValueError: The name None occurs multiple times, use a level number
  17. 提升 Docker Desktop For macOS 磁盘使用率
  18. UDP协议全面实验分析详解
  19. c语言 signal作用,C语言中的signal函数
  20. JavaFX --- 标签、文本框、密码框、下拉框、按钮、单选按钮、复选框

热门文章

  1. 不对齐 谷歌浏览器_谷歌浏览器input上下不对齐兼容解决办法
  2. 关于gitlab Web IDE功能使用
  3. 测绘-空中三角测量程序设计
  4. 语雀批量导出MarkDown文件
  5. android支持svg格式图片么,Android Studio2.0中使用SVG图片格式
  6. 关于阿里飞天系统中分布式系统底层各服务的介绍
  7. win7电脑连接无线网络怎么连接服务器未响应,Win7无线网络无法连接的原因及Wifi无法连接解决方法大全...
  8. 正则表达式及bash脚本(一)
  9. 信息系统项目管理师复习方法学习计划
  10. 中国移动基于 Kubernetes 的物联网边缘计算应用实践