基于安芯一号单片机的医用输液器智能控制系统
一、项目设计背景及概述 1、开发目的 众所周知,我国人口众多,医疗资源稀缺,医院时常人满为患。输液作为一种重要的治疗手段,其受众面是非常之广,几乎每个人都有在医院挂水的经历。然而进入信息时代的今天,输液器却仍然保留着最原始的功能,缺乏智能化或信息化的控制手段,这也是导致医院注射室秩序混乱,护士疲于奔命,患者苦不堪言的最直接原因。目前医院所使用的悬挂式输液器虽然有控制流速的装置,但无法得知输液剩余时间,且缺乏输液完毕后的报警系统,使患者不能合理安排注射时间,且注射完毕后不得不大声呼喊护士,这样做既造成了注射室的喧哗,影响了其他患者的休息,亦耗费了患者的体力。 2、功能特性 本小组设计的输液器智能控制系统不但可以实时调整患者输液的流速,而且可以以剩余时间的方式,形象直观地指出患者的输液进度,并且在输液即将完毕后自动发出提示。 3、创新性及实用性 本装置的创新之处在于,比较以往传统的输液装置只具备输液功能和简单的调速功能,本装置赋予了其监测时间和结束报警的功能,使得患者可以根据自己的意愿精确设定输液时间,做到与其他事宜的无缝衔接,合理安排手头工作。举个例子来说,就如同于我们平时下载电影,如果只知道下载速度而不知道下载剩余时间,就会显得很被动,无法统筹控制和管理各下载任务,无法合理安排其他事务。而正因为有了剩余时间,使得我们可以精确安排下载流程,合理调配各项活动。对医院而言,本装置也可使医务工作者及时获知患者输液信息以便补液和结束输液,做到有条不紊,秩序井然,最终提高效率。本装置的实用性在于,无需对传统输液器进行改装加工,只需在顶部挂钩处添加本装置即可。此外其结构简单,易于安装,使用方便。 二、项目设计原理 1、总体设计原理 由物理知识可知,悬挂着的输液瓶主要受到两个力:一个是竖直向下的重力G,另一个是竖直向上的拉力F。由于F=G,故输液瓶静止与空中。 其中K为常数,可知输液瓶受到的拉力F与瓶中液体体积V成线性关系。那么通过测量拉力F,即可得到体积V。 基于以上的推论,本系统通过测量一段短时间 内输液瓶受到拉力的变化量 ,并与此时受到的拉力F做一下运算即可得到输液结束所需的时间t:
注:F为除去输液瓶毛重后液体所受的拉力 2、硬件设计原理 硬件上的设计难点在于液体重量的获取。针对此问题,我们采用了高精度的3kg拉力传感器(如图2-1所示),此传感器是电阻桥式压力传感器。
图2-1 拉力传感器 电阻桥式压力传感器的工作原理如下所述:将应变片黏贴到受力的力敏型弹性元件上,当弹性元器件受力产生变形时,应变片产生相应的变化,进而使电阻阻值发生变化,有力引起的阻值变化转换为电压的变化,通过测量输出电压的数值再通过相应的计算即可得出测量的物体的重量。其内部电路如图2-2所示。
图2-2 拉力传感器内部电路 尽管此传感器的精度较高,但其输出的电压仍然很低,单片机的AD口不能检测出来。我们采用的方案的是:采用专用的传感器检测芯片HX711。 HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A 或通道B,与其内部的低噪声可编程放大器相连。通道A 的可编程增益为128 或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B 则为固定的64 增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。 从传感器输出的电压经过HX711的128倍放大后,由其24位AD采样后得到的数值已能够满足此项目的需求。 由于此传感器的精度较高,其对电源的要求而随之提高,为了满足其对供电的需求。我们使用了5V线性稳压器使供电电源更加稳定,纹波更小。 以上就是硬件设计原理的介绍,详细的硬件设计将在后面的硬件设计中论述。 3、软件设计原理 本项目软件部分的设计难点在于如何准确地获取输液的重量,如何抵抗外部的干扰。 依据总体设计原理里提及的输液剩余时间的获取,软件程序将获取的总重量减去称重传感器毛重及输液瓶重量后即为输液的重量,再通过每1s的采样获取输液重量的变化,即可计算出剩余时间。但实际中并不完全是这样的。由于在实际中输液的速度极慢,碍于传感器的精度有限,在1s的采样周期内,采集到的输液重量几乎不变,无法进行剩余时间的预测。为了克服这种情况,我们参照光电编码器里的T测量转速的办法,通过测量在第n个1s内输液重量改变1个单位,再将n乘以1s采样周期内改变1个单位所算得的剩余时间,这才得到输液剩余时间。 由于输液瓶并不是静止不动的,每时每刻它都受到各种力的作用。这会对我们重力的测量带来各种干扰。为了尽量降低这种干扰的影响,我们的软件程序中对运算得到的重量变化率进行了简单的一阶滤波,这能有效地降低高频干扰的影响。不过,这样依然不够的,如输液瓶遭到人为施加的晃动时,剩余时间会突变得非常严重的。故我们的程序中,通过每三个变化周期里其剩余时间变化一致时才认为采集到的数据为正确的数据。通过这种办法,能够很好解决外部大的干扰带来的影响。 在此,我们只是介绍了软件设计中所用到的重要技术,详细的软件设计将在后面的软件设计中论述。 三、项目设计 1、硬件设计
图3-1 硬件总体框图 简要说明一下,我们采用的供电方案是:由220V市电经电源适配器得到5-12V,然后经过LM2940-5.0线性稳压芯片得到5V,再给单片机、传感器、LCD显示屏和无线模块供电。 由于拉力传感器受压后输出值改变量小,故需要经过放大电路后再送到单片机的AD口进行模数转换以得到足够的精度。而由于HX711芯片内部已自带128倍可编程放大器,故不需要在外部电路多加放大电路。 由于医院的输液室不算宽广,而且输液悬挂点较多。针对这种情况,无线模块使用Zigbee是最合适的。但手头上暂无Zigbee,只有以前用过的XL02-232AP1。故无线模块暂定于XL02-232AP1。 为了开发的方便,LCD显示屏暂时利用手头上已有的OLED 128*64 0.96寸黄蓝双色显示屏。 以下是系统的硬件原理图:
图3-2 系统硬件原理图 由于时间紧急,我们并没有PCB打样。我们利用以前用过的旧板上通过飞线焊接,搭建最小系统。实物图如下所示:
图3-3 最小系统实物图 配上各种模块后的实物图如下所示:
图3-4 总的实物图 2、软件设计 软件设计主要分为两个部分:上位机和下位机。下位机的工作主要是在规定的采样周期内采集输液的重量,经过算法计算得到输液剩余时间,然后通过OLED显示及通过无线模块发送到上位机。 而上位机的工作主要是收集下位机发送的数据,将数据分类并排序,最后在界面上显示出来。 2.1 下位机软件设计 下位机的程序先经过各方面的初始化(包括定时器、串口、称重传感器的去皮等),然后等待1s采样时间的到来。当1s采样周期到来时,单片机通过HX711采集输液的重量,对于真实的数据进行处理,不符合的抛弃。以下是其程序流程图:
图3-5 下位机程序框图 2.2 上位机程序设计 上位机经过初始化,打开特定通讯端口,创建连接后,就等待着下位机发送数据。当上位机收到数据后,判断数据是否符合通讯协议的规定(通讯协议为:A5 ID AA 剩余时间),符合进行排序并显示;不符合则抛弃。其软件流程图如下所示:
图3-6 上位机软件流程图 四、测试结果 我们的程序调试完毕后,用医用输液瓶进行测量,测量的结果如下表所示:
表4-1 实验测量结果 从上表上的数据可以看出,在短时间内的误差几乎为0,而在较长时间上有所不足,在我们的实验上误差最大为15.7%,但其实际上偏差的分钟数并不算很多(最多为11分钟),这在实际使用当中依然能让人接受。 五、总结 本方案是以深联华单片机芯片为核心,通过相应的传感器和无线模块,将病人当前输液时间信息实时的反馈给院方和病人的一个效率解决方案。针对当前医院输液混乱的现实情况,本着以病人为核心,以医院工作效率为重点而提出的这个输液时间监控解决方案解决了输液时间这个长期存在但并未正确解决的问题,使医院输液秩序得到有效的维护,并解决了病人在无法获知时间的焦急感。而且在实际测量中,其结果能让人满意。本方案设计产品精巧,有效,成本低廉,同时后期可扩展的可能性大,可大面积的在医院推广使用。 |