家用心率监护与预警装置设计

2018-04-19 08:13闭琼元陈剑雪张琳珊焦世恒宗玛帝袁荣浩
东方教育 2018年5期
关键词:脉搏心率单片机

闭琼元 陈剑雪 张琳珊 焦世恒 宗玛帝 袁荣浩

摘要:本次主要介绍以aduino Mega 2560芯片为核心,配合外围电路,利用MAX30100传感器来进行心率监测及预警的实际设计过程。同时MAX30100芯片传感器属于I2C接口器件,故在程序开发中,采用I2C接口协议进行。

关键词:Mega 2560;MAX30100;传感器;FIFO寄存器;I2C

一、引言

心脏是人体发动机,对人体健康至关重要。如何早期觉察“发动机”出了故障,及时检修,保证其正常运转,已经成为一项不可忽略的保健措施。心脏病发病时常具有突发性和一过性的特点,如果发现不及时将会危及生命。而心率反映着心脏功能,所以可以通过监测心率来反映心脏功能。此次项目设计的“家用心率监护与预警装置”可以检测心率是否在正常范围、以及监测心率异常增高、心脏停搏等。利用血液是高度不透明的液体,光照在一般组织中穿透性要比在血液中大几十倍的特点,可通过光电容积法制成的脉搏传感器,通过对手指末端透光度的监测,间接检测出脉搏信号。光电式脉搏传感器具有结构简单、无损伤、可重复好等优点。根据光电容积法原理,从改善光源、消除景光噪声、电磁屏蔽和提高信噪比四个方面出发,研究改进方法,对提高使用的灵活性和准确度有着重大意义。通过光电传感器对脉搏信号进行检测,并用单片机技术进行数据处理,实现智能化的脉搏测试技术。人正常心率范围在60到100次,当心率低于60或者高于100时心率可能存在异常,当心率可能发生异常时,我们所设计的家用心率监护与预警装置可以起到及时报警的作用。

二、設计方案

1、装置组成及工作原理:

此设计以单片机aduino Mega 2560为核心,由心率传感器MAX300100采集脉搏信号。当一定波长的光束照射到指端皮肤时,光束将通过透射或反射方式传送到光电接收器,在此过程中,LED光射向皮肤,透过皮肤组织反射回的光被光敏传感器接受并转换为电信号再经过AD转换成数字信号,简化过程:光--->电--->数字信号。由于动脉对光的吸收有变化而其他组织对光的吸收基本不变,得到的信号就可以分为直流DC信号和交流AC信号。提取其中的AC信号,就反映出血液流动的特点。而MAX30100芯片有两个LED灯,内部集成ADC数据转换,经过优化的光学器件和低噪声模拟信号处理器,检测脉搏血氧及心率信号。采集到的信号为脉冲信号,以该脉冲信号作为中断信号交由单片机进行脉冲周期的计算,然后得到每分钟的心率,若测量数据超过正常范围(小于60次或大于100次),报警器就会报警。

2、各电路模块:

三、软硬件设计

软件介绍:Arduino集成开发环境(或是Arduino IDE)包含了一个用于写代码的文本编辑器、一个消息区、一个文本控制台以及一个带有常用功能按钮和文本菜单的工具栏。软件连接Arduino和Genuino之后,能给所连接的控制板上传程序,还能与控制板相互通信。

主控制器模块:主控制器使用Aduino Mega2560单片机。Arduino Mega2560是采用USB接口的核心电路板,具有54路数字输入输出,适合需要大量IO接口的设计。处理器核心是ATmega2560,它的接口齐全,一个就能满足多种需要,这给我们省去了很多不必要的麻烦。Arduino Mega2560可以通过3种方式供电,而且能自动选择供电方式:外部直流电源通过电源插座供电、电池连接电源连接器的GND和VIN引脚、USB接口直接供电。这里我们使用连接3.3V的GND和VIN引脚。

传感器模块:这里我们使用MAX30100心率传感器,集成有两个LED灯,一个光检测器,优化光学和低噪声的仿真信号处理,以检测脉搏血氧饱和度和心脏速率信号。只要将手指头紧贴在传感器上,就能估计脉搏血氧饱和浓度及脉搏(相当于心跳)。两个LED发出波长的光,即红色和红外。发射的光线可透过人体内的单组织点。先由响应红色和红外光线的单个光电二极管接收光线,然后由互阻放大器产生正比于接收光强的电压。红色和红外LED通常采用时间复用的方式,因此相互间不会干扰。环境光线经估计将从每个红色和红外光线中扣除。测量点包括手指、脚趾和耳垂。因为指端皮肤最薄,所以我们的实际操作在指端进行。由于MAX30100芯片的硬件设计,基本存在对时钟延时的需要,当延时积累超出一定范围时,对时钟中断的设计要求则不得不通过补偿方式???,不断调试修正。

报警模块:报警器为蜂鸣器,由单片机控制当所测心率低于60或大于100时,则蜂鸣器报警。

显示模块:采用RS485串口表LED数码管显示屏232/TTL显示模块。单片机Mega2560可以通过RS485总线、RS232或者TTL接口发送指令控制显示屏的显示内容。显示屏上面的数据来自于MAX30100的两个LED灯。显示器支持常用的ASCII协议。可显示整数小数、负号、小数点等ASCII字符,是市面上支持ASCII字符最全面的一款数码显示器。

四、难点突破

MAX30100心率传感器的通讯是I2C的通讯,在通讯过程中要注意一个点,就是在进行读操作时,读出一个寄存值后给予ACK,读寄存器的指针会自动加一,但有一个例外就是FIFO寄存器(0X50)。SCL、SDL都要4.7K上拉电阻,要外接一个,而且电压不宜过大,以免烧坏芯片!用3.3V电压是比较合适的。两个LED的电流不要设成最大的值,否则读出来的值都是0xffff。在数据处理方面,Aduino代码烧录完成后,模拟出来的数据不是0就是255,??我们使用一个示波器,检查时序有没有错误,以及观察器件通信时器件有无反应,一步步发现并解决问题,而不是单纯靠瞎猜。在实际操作中发现,使用IR(红外)读出的心跳值会比较大,所以使用IR的数据作为测心率的标准。在程序基本完成时,因为要在实际环境中完成心率数据的采集及处理,所以在硬件的调试中,一定要根据实际测的数据,计算测量误差,然后不断调节程序,以使测出的心率与实际心率贴合。

五、收获体会

参加本次项目实践是一次收获很大的经历。经过小组成员的团结协作,我们终于完成了项目要求。人们都说大学是培养解决问题能力的阶段,在实践之中我们培养了个人独立思考能力。在项目实施过程中发现问题、提出问题并解决问题。最重要的是我们增强了团队协作意识,做完这个项目之后,我们的眼界更开阔了,本次项目成为我们人生中的一笔财富。

参考文献:

[1]孙骏荣、吴明展、卢聪勇.Arduino一试就上手[M].台北:科学出版社,2012:7-25

[2]Dale Wheat.Arduino技术内幕[M].北京:人民邮电出版社,2013:57-59

作者简介:闭琼元,男,上海工程技术大学电子电气工程学院自动化系学生。

猜你喜欢
脉搏心率单片机
谁是逃跑的劫匪
离心率
在最佳心率区锻炼
探索圆锥曲线离心率的求解
脉搏的检查及与脉搏异常相关的疾病
C8051F020与80C51单片机的异同点
求解圆锥曲线离心率“五法”
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨