脑力驱动残疾轮椅与图像显示设计

2016-01-04 09:52陶陈逸黄志成
科技创新导报 2015年28期
关键词:脑电

陶陈逸 黄志成

摘 要:人类的每一闪思维、每一种情绪、每一个想法,在大脑中都会产生特定的脑电图信号(EEG信号),这种信号由千百万个神经元共同产生,并在大脑内传播。将检测到的EEG信号传送给计算机或相关装置,经过有效的信号处理与模式识别后,计算机就能识别出使用者的思维状态。通过采集与利用脑电,我们希望制作出脑力驱动残疾轮椅和脑电信号图像软件。

关键词:脑电 残疾轮椅 arduino平台 图像显示

中图分类号:TP273 文献标识码:A 文章编号:1674-098X(2015)10(a)-0128-02

人类的每一闪思维、每一种情绪、每一个想法,在大脑中都会产生特定的脑电图信号(EEG信号),这种信号由千百万个神经元共同产生,并在大脑内传播。不同思维情况下产生的神经电活动信号表现出不同的时空变化模式会导致EEG信号的不同。将检测到的EEG信号传送给计算机或相关装置,经过有效的信号处理与模式识别后,计算机就能识别出使用者的思维状态。通过采集与利用脑电,我们希望制作出脑力驱动残疾轮椅和脑电信号图像软件。

这部分研究的是如何用计算机语言使EEG在计算机上实现三维显现,并和脑力驱动轮椅相连接,实现在轮椅驱动的同时在显示屏上显示图像。Arduino平台使用的AVR中ATMEGA168或是328的芯片,虽然使用的只是八位芯片,但因为采用的是RISC指令,并且在基于单片机的基础上采用了各种新型技术,使得芯片得到很大提升。所以在基于Arduino平台的基础上,通过与脑电采集装置的结合,进行脑力驱动轮椅的设计。

Mindwave脑电采集装置是一种不依赖于外周神经和肌肉等常规输出通道的信息交流系统。它可为神经肌肉障碍患者提供一条与外界沟通的途径,并在虚拟现实、游戏娱乐和航空等领域具有潜在价值。目前,常用的脑电输入信号包括P300、稳态视觉诱发电位(SS-VEP)、皮层慢电位(SCP)以及μ或β节律等。其中,SCP、μ或β节律等自发脑电不依赖于额外刺激的输入,不会产生视觉疲劳,没有适应性的问题,且其神经生理学基础已获得比较深入的研究,因而在Mindwave脑电采集装置中得到了较多的应用。但是,基于自发脑电的脑机接口也存在明显的缺陷,如并非所有个体都适用基于μ节律的脑机接口,基于SCP的脑机接口要经过长时间的训练才能实现等。以此为基础我们想要为手脚不便的残疾人提供一个脑力驱动的轮椅方便其出行,使用者无需自己用手转动轮子便可完成轮椅的前进、转向、停止等动作。

1 脑电信号采集

头戴式无线脑机接口系统设备[1]采用半导体微加工工艺制作的“干”电极作为采集脑电信号的电极。信号处理采用专用的集成电路,信号的采集和处理端与信号接收端采用射频芯片收发数据。头戴式无线脑机接口系统设备准备采用一种基于硅材料的干电极,它采用的微针结构,通过热氧化、光刻、腐蚀针尖、溅射金属等过程,使用干湿法结合的加工方法和欧姆接触层的正反连接结构,如果效果受限,将准备直接购买商用电极使用,简化工艺流程。脑电信号采集部分采用两个干电极,一个为信号电极,一个为参考电极。安放的位置选择在前额叶,这里没有头发的干扰,适合干电极的贴附。从前额叶可以记录到脑电四个波段的脑电及其能谱分布。脑电信号的采集与处理采用NeuroSky公司的ThinkGear ASIC专用芯片来进行,该芯片集成的脑电信号分析模块可以输出实验所需的“专注度”和“放松度”两个参数。采用了射频传输信号的方式,将采集脑电并处理后得到的控制信号通过射频芯片无线传输到受控端。脑电采集与信号发射端系统主控制器采用TI公司的MSP430 F2132,射频芯片采用Chip.con公司的CC2500,它具有体积小、功耗低、高灵敏度等优点,可以满足本系统的要求。在制作的脑电采集处理及射频传输系统基础上利用C/C++、c#和Java语言版本的API开发设计出相应的软件系统,便于更好的方便实验,实现实验的功能。系统的发射端用于得到专注度和放松度的参数值,接收端负责接收发射端发送过来的包含专注度和放松度的数据包,并将数据包解码得到专注度和放松度的参数值,并根据专注度和放松度的值来控制相应外设的状态。同样也可以输入到计算机中用于观察所测脑电信号的相关信息。

2 脑控轮椅的设计

2.1 系统介绍

脑控智能轮椅的控制系统主要由脑电采集装置、蓝牙接收、运行于电脑的基于C的信号分析软件、arduino平台、电机主控制板等部分组成。该文采用的脑控轮椅系统结构如图1所示,轮椅主控板采用的是双通道输入来控制水平方向的前进、后退、左右转向功能。

2.2 C语言软件部分编写

通过蓝牙采集到ASIC芯片上的脑电信号数据分为了集中度、放松度、眨眼信号等几组不同数据,我们挑选出其中的集中度和放松度来作为轮椅前进或者停止的判别依据。首先设定出停止与前进的阀值,然后在集中度达到前进阀值且持续时间达到2 s后,输出前进信号,同样的,在放松度达到停止阀值持续1 s后,输出停止信号。以9600波特率为基准建立串口输出模块,通过USB的形式发送出去。

2.3 Arduino平台

Arduino UNO是Arduino USB 接口系列的最新版本,作为Arduino平台的参考标准模板。UNO的处理器核心是ATmega328,同时具有14 路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16 MHz 晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。UNO已经发布到第三版,与前两版相比有以下新的特点:在AREF处增加了两个管脚SDA和SCL,支持I2C接口;增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。这样改进了复位电路设计,USB 接口芯片由ATmega16U2替代了ATmega8U2。

2.4 Arduino语言编写

通过USB与电脑连接后,以9600比特率接收信号,若此时得到前进信号,将通过11号端口以5V电压输出,在接收到停止信号后,停止电压输出,Arduino平台代码如图2。输出的电压直接提供给轮椅主控板,然后通过主控板最终驱动轮椅移动。

3 信号的图像显示

在考虑到前期问题后,我们想借助现有知识解决编程问题,由此提出了多语言混合编程[4]的可能。

所谓多语言混合编程,是指使用两种或两种以上的程序设计语言来开发应用程序的过程。我们知道,起始程序都是一样的,最终都是机器码,只是在编写时使用的语言不同(编程语言都是程序的抽象,为了编程方便,本身并不是可运行的程序,最终必须编译成机器码才能运行,不同语言只是不同人编的,用的语法不同)。个人写的源文件无论是任何语言写的,最终编译的结果都是机器码。函数调用在机器码就是很简单的一步,将参数表要求的参数值放入堆栈,然后使用jmp指令跳转到要调用的函数的函数地址即可,别的程序不管怎么实现,只要告诉参数表和函数地址就能调用,所有程序最终都是机器码,自然也符合这个规则。所以实现互调,只要将对方的接口程序文件映射到自己的进程中,然后预先知道他的参数表,得到他的接口函数地址,将参数放入堆栈,然后跳转到函数地址,这样就实现调用。我们提出通过C++语言与MATLAB语言混合编程[5]绘制,并成功通过编程读取芯片输出的相关数值,实现了简单的二维显示(见图3)。

MATLAB具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

我们提出的解决方案是只以MATLAB为主,学习MATLAB相关的GUI设计,最终成功实现脑波的三维实时显示,实现各频段脑波的三维图像实时显示(见图4),并结合移动端的显示。

参考文献

[1] 王三强.脑电信号采集系统设计及在脑—机接口中的应用研究[D].重庆:重庆大学,2006.

[2] 张军.ASIC技术的特点与应用[J].黑龙江:信息技术,2001(9):1-3.

[3] 程晨.Arduino开发实战指南[M].北京:机械工业出版社,2012.

[4] 左艳丽.C语言和汇编语言混合编程的方法和实现[J].湖南省娄底市:职教与经济研究,2008(3):60-62.

[5] 陈建平,罗先启.MATLAB与C/C++、FORTRAN语言混合编程[J].湖北省宜昌市:三峡大学学报:自然科学版,2004(6):547-551.

[6] 邓昌瑞.基于MATLAB GUI的多功能计算系统设计及实现[D].南昌:南昌大学,2012.

猜你喜欢
脑电
基于脑电情绪识别的研究现状
Bagging RCSP脑电特征提取算法
现代实用脑电地形图学(续)
儿童癫癎发作后全面性脑电抑制7例
现代实用脑电地形图学(续)
现代实用脑电地形图学(续) 第五章 脑电地形图的临床中的应用
现代实用脑电地形图学(续) 第五章 脑电地形图在临床中的应用
介绍一种脑电生理新技术—错误相关负电位
现代实用脑电地形图学(续)第五章脑电地形图在临床中的应用
现代实用脑电地形图学(续) 第五章 脑电地形图在临床中的应用