1. 引言
生物反馈技术是借助精密的工具将心理生理有关的生物学信息反馈给受试者,受试者在专业人员的指导下进行训练,使受试者可以有意识地控制自身的心理生理活动,以达到调整机体功能、治疗疾病的目的。通过生物反馈训练,可以改变有机体的内环境,改变循环、神经、呼吸、消化等系统的工作状态,为治疗多种疾患提供了新手段。与现代生物医学高新技术相结合,成为增进人类健康的有力工具,同时生物反馈技术具有无痛苦、无副作用,方便使用等优点,因此被许多发达国家所重视,近年来生物反馈技术广泛用于临床治疗。生物反馈技术主要应用于紧张性头痛 [1] 、焦虑与抑郁症 [2] [3] 、注意缺陷多动障碍 [4] 、盆腔炎症 [5] 、便秘 [6] 、大便失禁 [7] 等心理生理疾病。在减压方面,袁晓娇等 [8] 研究了不同情况下对考试焦虑个体进行了生物反馈干预,结果表明生物反馈在血流量和心率、皮温以及皮电阻等通道训练是有效的,王智等 [9] 探究生物反馈和音乐放松训练时发现,放松训练后期的LF/HF值、指端皮电值、SMR波振幅显著降低,手指皮温显著升高,结果表明不同反馈形式的生物反馈训练和音乐放松都能显著降低个体焦虑水平。
国内外生物反馈仪器昂贵,仅针对于专业场合,而针对类似家庭式的训练方式有所欠缺;同时采集生物电信号要求高,软硬件成本高。针对以上情况,本课题选用采集方便快捷的脉搏信号,将采集的脉搏模拟量信号进行预处理后,通过蓝牙传输至上位机Processing端,进行数据运算、显示等功能,患者可根据现实的数据及波形进行生物反馈治疗,可以达到减压放松的效果。本课题开发成本低,产品使用方便,可针对于家庭等非专业用户。
2. 信号的采集和预处理
2.1. 信号采集
目前,主流的脉搏波测量方法有两种:压力脉搏波和容积脉搏波,自1938年Hertzman首次提出光电容积脉搏波描记法(PhotoPlethys-mography, PPG)以来,在20世纪的几十年中,国外许多科学研究人员在容积脉搏波领域中做了大量的基础研究和临床应用研究工作 [10] 。光电容积法基本原理是利用人体组织脉动时造成的透光率不同来进行脉搏测量的,具有方法简单,佩戴方便,可靠性高等特点。
本课题中信号采集采用穿透式光电容积法,传感器由红外发光二极管和红外接收三极管组成,红外接收三极管能在红外光照射下产生电能,将光信号转换为电信号,设计透射式光源和接收器距离相等并且对称,接受透射光,较好地反映出脉搏与时间的关系。可以反映皮肤浅部微动脉信息,适合来提取脉搏信号。该传感器特点为灵敏度高,价格便宜,耐用性好。传感器原理图如图1所示。
2.2. 采集信号预处理
由于脉搏信号的频带一般在0.05~200 Hz之间,信号的幅度均很小,一般在毫伏级水平,容易受到各种信号干扰。本课题在传感器后面使用了低通滤波器和放大器,滤波和放大的运放采用运放MCP6004构成的放大器和滤波器,使放大信号可以更好地被单片机的AD采集到,滤波放大电路如图2所示。

Figure 2. Amplified structure of the two-level filter
图2. 两级滤波放大结构图
设计采用运放芯片为MCP6004,MCP6004系列运算放大器是专门为各种通用应用设计的,MCP6004支持轨到轨输入输出,MCP6004系列提供了工业级和扩展级的温度范围。电源供电范围为1.8 V到5.5 V。运放支持四级运放,本电路设计采用其中的两路进行滤波和放大,一路用做电压跟随器,将电压跟随器的输出端接至Arduino的AD采样端。
3. 数据处理与传输
3.1. Arduino采样与处理
Arduino是一种开源单片机控制器,采用基于开放源代码的软硬件平台,构建开放源代码的simple I/O接口板,简化了开发流程,开发环境和开发语言简单利于理解。其主要优势包括:价格便宜;跨平台操作,可以运行在Windows、Macintosh OSX和Linux操作系统中;软件开源并并可扩展;硬件开源并可扩展,开发者能够根据设计需求设计自己的模块,可以对其扩展或者改进。使用简单方便,可靠性强。
本课题采用Arduino Nano板,是Arduino USB接口的微型版本,Arduino Nano板尺寸非常小,具有8路模拟量采样口,10位AD转换精度,这意味着它可将0至5 V特之间的输入电压映射到0至1023之间的整数值,本课题中采用模拟量A0口进行A/D转换成数字量信号。同时通过Arduino计算心率,根据相邻两个脉搏波的上升段中间值之差来确定心跳间隔时间(IBI),由此可以计算出BPM的数值。通过Arduino输出数据脉搏波数据,IBI值和BPM值至上位机Processing端。
3.2. 蓝牙数据传输
蓝牙(Bluetooth)是一种支持设备短距离通信的无线电技术,能在包括移动电话、PDA、笔记本计算机、相关外设等众多设备之间进行无线信息交换。经过发展,蓝牙已具备小型化无线电、低功率、低成本、内置安全性、稳固、易于使用并具有即使互联网功能。
本课题蓝牙模块选用蓝牙串口HC06,该模块的4个引脚为别为VCC、GND、TXD和RXD。预留的LED状态输出脚,常亮表示蓝牙已经连接并打开了端口。配对后可作为全双工串口使用,但仅支持“8位数据位,1位停止位,无奇偶校验”的通信格式。同时支持通过AT指令设置波特率、名称、配对密码等。蓝牙串口的发射端链接Arduino,接收端连接PC端,传输波特率为9600。经测试传输信号稳定,无丢包乱码等情况。HC-06蓝牙串口原理图如图3所示。
4. 基于Processing的上位机的设计
4.1. Processing简介
Processing是由美国麻省理工学院媒体实验室美学与运算小组创立,是一款专为设计师和艺术家所推出的编程语言,Processing提供反馈和交互的能力使它已经成为一个流行的学习编程的方法。其概念是在电子技术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师,它是Java的延伸,但是在语法上简单许多,具有许多贴心及人性化的设计 [11] 。它可以结合Arduino等相关硬件,快速设计出完整的交互系统,构建出完善的、体验性强的交互产品,拓展性极强 [12] 。同时,Processing也广泛应用于信息可视化设计与研究,可以减少工作量,提高开发效率 [13] 。
4.2. Processing上位机的设计
上位机主要包括脉搏波形、心率(BPM)、心跳间隔时间(IBI)、视觉动画显示,音乐的播放功能。上位机中的脉搏波形数据、BPM值、IBI值均为Arduino通过蓝牙串口传输过来的数据,数据传输通过Processing中的串行库传入上位机中 [11] ,传输的波特率为9600,串口功能代码如下:
import processing.serial.*;
Serial port; //创建串口对象
printArray(Serial.list()); //列出所有可获得的串口
Port = new Serial(this, Serial.list()[0], 9600); //选用串口0,波特率为9600
串口传输过来的BPM与IBI值直接显示在上位机,传输过来的脉搏波形显示在上位机界面中。视觉动画显示通过Processing中的运动效果来制作,屏幕中有三个大小可变速度可调的圆,可以根据脉搏的情况调整圆变化的速度,使受试者有更舒服的视觉体验。音乐播放功能利用Processing中的Sound功能,Sound功能可以播放、分析和合成声音,本课题采用播放功能,播放音乐库里面舒缓的音乐,配合屏幕上视觉动画,达到缓解心情的效果,Sound功能代码如下:
import processing.sound.*;
SoundFile file; //创建音频文件
file = new SoundFile(this, sample.mp3); //读取音频文件
file.play(); //播放音频文件
Processing上位机效果图如图4所示,利用Processing制作上位机具有简单、经济、交互界面友好等优点,简单经济主要体现在库代码开源、软件开源,开发成本低、开发效率高;交互界面相比于一般编程语言较好,并且效果好,操作简便。

Figure 3. HC06 Bluetooth serial schematic
图3. HC06蓝牙串口原理图

Figure 4. Processing PC effect chart
图4. Processing上位机效果图
在上位方面,研究一般采用虚拟仪器LabVIEW与C#等编写上位机。首先,LabVIEW与C#编写交互界面较困难,且效果不是很好,而Processing编写的上位机交互界面效果较好;其次,LabVIEW与C#开发效率低,其中LabVIEW软件成本较高,C#开发难度大,相比而言,开源的Processing具有效率高,成本低的特点。
5. 生物反馈系统效果演示
受试者佩戴好传感器和连接好蓝牙串口后,打开上位机Processing运行后,生物反馈系统效果演示如图5所示,图中包括脉搏波形,BPM值与IBI值,以及变换地视觉动画,其中右下角为脉搏波形历史

Figure 5. Effect chart of biological feedback system
图5. 生物反馈系统效果图
曲线。开始一段显示的是受试者当前波形,待波形稳定后,受试者可以通过自调节来改变脉搏波形。上位机会对采集的脉搏波进行分析,当心率值相比前时刻较快时或心率值较高时,则Procesing上位机中的视觉动画将会降低缩放速度,播放轻快的音乐,使受试者放松地观察自己的生物反馈信息,进行生物反馈训练。
6. 总结
本课题设计的基于Arduino与Processing的生物反馈系统具有成本低、使用方便的特点。硬件方面采用基础的检测方法,经过放大滤波处理后,经过Arduino运算后输入到上位机,采用开源硬件Arduino,具有硬件成本低,性能稳定的特点;软件方面采用开源软件Processing进行上位机设计,使用简便,交互界面友好,开发效率高。
受试者可以查看自身的脉搏波形和心率值,进行生物反馈训练,配合动画和音乐以达到减压放松的效果。产品成本低,使用方便,易于家庭化使用的。
基金项目
上海市大学生创新训练资助项目(S14071)。