赵进创,马 超,潘屏萍,傅文利
(广西大学 计算机与电子信息学院,广西 南宁530004)
脑机接口BCI(Brain Computer Interface)是一种新型的人机交互方式,它基于脑电信号EEG(Electroencephalogram)实现人脑与计算机或其他电子设备的交互,脱离了对人体外周神经和肌肉组织的依赖[1-2]。因此,该技术在医疗、游戏以及工业控制等诸多领域表现出很好的发展前景。
目前,国内外脑机接口技术研究与应用的主流方案是以计算机作为核心处理平台[1]实现多通道脑电信号采集。此方案通常具有较好的性能,但也存在系统操作复杂、软硬件设备昂贵、体积庞大、功耗高等不足,难以进行推广和市场普及。
本文采用TGAM1_R2.4A单通道脑电信号采集模块[3]、STM32嵌入式处理器结合μC/OS-II多任务实时操作系统设计并实现了一个通过专注度和眨眼信号控制的嵌入式小车控制系统。测试结果表明,该系统在控制小车速度和方向方面具有反应灵敏、稳定性较高的特点。
系统由脑电信号采集与传输、脑电信号处理、运动控制和信息显示等部分组成。脑电信号采集由TGAM1_R2.4A模块实现。脑电信号通过蓝牙模块BLK-MD-BC04B传输至STM32嵌入式处理器进行处理,获取专注度和眨眼信号。系统通过L298N芯片控制电机的转动状态。系统框架图如图1所示。
图1 系统框架图
TGAM1_R2.4A是基于ThinkGearTM脑波传感器技术设计的采集芯片,由放置在前额处的传感器电极触点和耳部的参考电极触点采集脑电信号。脑电信号经芯片内部处理后可通过串口(UART)输出数字化原始脑电信号,α,β等脑波波段数据以及eSense专注度和放松度指数。
采用具有串口功能的BLK-MD-BC04B蓝牙模块作为无线传输的发送和接收单元。利用AT命令配置蓝牙发送单元为从机模式并设置配对密码。蓝牙模块与TGAM1_R2.4A连接原理图如图2所示。配置蓝牙接收单元为主机模式和自动搜索远端蓝牙设备状态,设置与发送单元相同的配对密码并与STM32串口1连接,连接原理图如图6所示。
图2 TGAM1_R2.4A与蓝牙发送单元连接原理图
STM32接收到脑电信号作为ThinkGearTM数据包,依据通信协议解码获得eSense专注度数据、数字化原始脑电信号。系统可直接解码获取专注度数据,但眨眼信号需系统自行识别。
STM32接收到的数字化原始脑电信号如图3所示,图中幅度较小的波形是反映人脑活动的脑电信号,幅度较大的尖峰则是眨眼动作引起的眼电信号与脑电信号的叠加[4]。由图3可知眨眼动作引起的眼电信号幅度远大于脑电信号,而有意眨眼信号的幅度比自然眨眼信号大100单位以上。本文采用有意眨眼信号结合方向指示灯控制小车方向。
图3 STM32接收的原始脑电信号
因不同使用者的脑电信号幅度不同且同一使用者佩戴传感器的位置和角度的不同也会导致采集到的脑电信号幅度不同,故不能设定一个固定的眨眼信号判断阈值满足系统要求。在系统上电后启动一个自动设定眨眼信号判断阈值的过程,该过程持续时间为60 s,同时要求在设定过程中保持自然眨眼动作状态,按图4所示流程进行判断阈值的设定。人正常眨眼频率约为每分钟10~20次[5],故该过程以6 s为时间单位,分别计算每个时间单位内脑电信号的最大值Ai,然后计算60 s时间内10个脑电信号最大值的平均值。考虑到眨眼动作的不一致性,为提高眨眼信号识别的准确率,需要对平均值加一个过渡缓冲值。经测试,过渡缓冲值设为100可获得较好的识别效果。图4中AREF为眨眼信号判断阈值,即:
系统完成自动设定眨眼判断阈值后即可进入有意眨眼信号识别阶段,其流程如图5所示。STM32读取原始脑电数据A并与 AREF比较。若 A>AREF,则开始计时,直到A<AREF时停止计时,记录时间为t。由于每次眨眼动 作 的 持 续 时 间 在0.3 s~0.4 s之 间[5],若 0.1 s<t<0.3 s, 则 认为是一次有意眨眼动作。若t≤0.1 s 或 t≥0.3 s,虽然检测到超过眨眼判断阈值的脑电信号,但其持续时间与眨眼动作不同,认为是需要过滤的干扰信号。
图4 判断阈值设定流程图
图5 有意眨眼信号识别流程图
系统采用Cortex-M3内核架构的嵌入式芯片STM32-F103ZET6[6]作为核心处理器,采用 3.5英寸 TFT液晶触摸显示屏进行相关信息的显示和控制指令的输入,利用L298N芯片驱动两路电机控制小车运动状态,采用TLP521-2光耦芯片进行隔离以保证系统稳定性,电路原理图如图6所示。L298N的使能端ENA、ENB与STM32芯片的PWM输出端口PA6、PA7连接,改变 STM32输出脉冲的占空比即可调节电机的转速,进而达到控制小车速度的目的。小车运动状态的控制定义如表1所示。
利用全彩LED的颜色变化显示专注度大小。在小车顶部设置指示前方、左方、右方的方向指示灯。
小车控制过程为:系统上电后进行眨眼信号判断阈值的设定,然后进入运动控制状态。在运动控制状态中系统以1.5 s的时间间隔按顺时针方向对3个方向进行扫描。当扫描某一方向时相应的方向指示灯亮,若在1.5 s内没有检测到有意眨眼信号,则进入下一运行方向的扫描;若在1.5 s内检测到有意眨眼信号,则立即执行相应动作,在动作执行期间若检测到有意眨眼信号,则系统停止运动退出动作执行状态,重新进入扫描状态。
图6 小车控制系统电路原理图
表1 小车运动状态的控制定义
图7 运动控制程序流程图
软件主体采用具有抢占式内核的 μC/OS-II多任务实时操作系统[7]与μC/GUI图形用户界面相配合的方案。利用串口中断方式进行脑电信号的接收并在中断服务程序中进行脑电信号解码、专注度提取、眨眼信号识别以保证脑电信号得到实时处理。设置小车运动状态控制任务为最高优先级的任务以确保对小车运动状态的实时控制。其运动控制程序流程如图7所示。
系统上电后,各功能模块进行初始化,通过蓝牙模块建立连接,启动60 s自动设定眨眼信号判断阈值过程。在上述启动过程中,若某一过程未成功完成,则系统无法进入下一个启动过程。在确定眨眼信号判断阈值之后,若系统检测到一次有意眨眼信号,则进入运动控制状态。
眨眼信号是系统重要的控制信号,眨眼信号的识别效果直接影响系统的性能。组织5名未参与本研究的人员进行眨眼信号识别效果的测试。测试分为A、B两个批次,其中A批次是被测人员首次接触该系统进行的测试,B批次是被测人员经过半小时的训练之后进行的测试。测试结果如表2所示。
对测试数据分析可知,在被测人员不熟悉系统操作的情况下,眨眼动作不规范,识别率较低。但经过短时间的训练之后,识别率已经达到比较可靠、稳定的水平。
为测试系统性能,设计图8所示的运动路线,被测人员在B批次测试后开始进行按规定运动路线控制小车运动的测试,每位被测人员测试10次并绘制运动轨迹图。从50次测试结果中根据偏离规定路线的程度选出最佳和最差运动轨迹,如图8所示,A虚线为最佳控制轨迹,B实线为最差控制轨迹。
测试结果表明,本系统的眨眼信号识别方法对经过相关训练的使用者来说具有较好的识别效果。系统在控制小车前进速度和方向方面反应灵敏,稳定性较高。
利用脑机接口(BCI)技术结合低成本、低功耗的嵌入式处理器平台,设计并实现了一个通过专注度和眨眼信号控制的小车控制系统。测试结果表明,该系统模块简单、易于应用且具有较好的稳定性和较高的反应速度。本系统为脑机接口技术在医疗(如电动轮椅)、游戏以及工业控制等方面的应用和推广进行了有益的探索。
表2 眨眼信号识别率测试结果
图8 运动路线及测试轨迹图
[1]王娇娜,刘纪红,张力,等.基于脑-机接口的无线智能机器人控制系统[J].电子技术应用,2012,38(8):119-125.
[2]王根,方慧娟,罗登.基于事件相关电位的 BCI新型输入系统研究[J].微型机与应用,2013,32(7):66-68.
[3]NeuroSky.TGAM1 Spec Sheet[EB/OL].(2010-03-24)[2013-12-09].http://www.neurosky.com.cn.
[4]STEVEN J LUCK著.事件相关电位基础[M].范思陆,丁玉珑,曲折,等译.上海:华东师范大学出版社,2009.
[5]苑玮琦,滕红艳.眼睛疲劳程度判定方法研究[J].计算机工程与应用,2013,49(17):199-203.
[6]STMicroelectronics.STM32F103E[EB/OL].(2011-04)[2013-12-09].http://www.st.com.
[7]任哲.嵌入式实时操作系统 μC/OS-II原理及应用(第二版)[M].北京:北京航空航天大学出版社,2012.