意念控制智能车项目进展2014.10.25-26

来源:互联网 发布:软件成熟度模型cmm 编辑:程序博客网 时间:2024/04/29 04:31

2014.10.25

从项目购置实验物品起,真正启动项目。

本日共完成从使用串口调试软件,通过蓝牙传输,读取Mindwave耳机读取到的五组脑电波原始数据(前进,后退,左转,右转,停下)。由于未能了解传输信号原理,每组信号经过处理,只记录了8个数据包(每个包中存在512个小包和1个大包)。每个小包中有8个16进制数据,每个大包中有36个。每个数据包的记录时间大约为1秒。

同时编写C程序对处理过的数据进行丢包检测和High与Low信号的处理(下面展示部分代码)。


for(j=0;j<8;j++){for(i=0;i<513;i++){fscanf(MWData,"%x %x %x",&Data[j][i].High,&Data[j][i].Low,&Data[j][i].CheckSum);Data_z[j][i].checksum=Data[j][i].CheckSum;if(Data[j][i].High==170&&Data[j][i].Low==170){fseek(MWData,100L,1);break;}//printf("第%d组第%d个 %x %x %x\n",j,i,Data[j][i].High,Data[j][i].Low,Data[j][i].CheckSum);Data_z[j][i].rawdata = (Data[j][i].High << 8) | Data[j][i].Low;Data_z[j][i].sum=((0x80 + 0x02 + Data[j][i].High + Data[j][i].Low)^ 0xFFFFFFFF) & 0xFF;//printf("%d %d\n",Data_z[j][i].sum,Data_z[j][i].rawdata);}}



2014.10.26

本日通过阅读EEG信号说明,发现大包中存在POOR_SIGNAL Quality(噪音值)、ATTENTION eSense(专注度)、MEDITATION eSense(放松度)与Blink Strength(眨眼干扰)。8组数据对于分析显然不够,今早对于实验原始数据进行了重新采集(至少23个数据包)。由于数据过多,编写了C程序来处理数据,并将有用数据(大包以及每个小包中的后3个16进制数)保存到另一个文件中。


#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){    FILE *fp_1,*fp_2;    char str_big_check[12],str_big[108],str_small[9];    int i,data_num=0;    if((fp_1=fopen("Mind.txt","r"))==NULL)    {        printf("Error_1\n");        exit(0);    }if((fp_2=fopen("Mindnew.txt","w"))==NULL)    {        printf("Error_2\n");        exit(0);    }        while(!feof(fp_1))    {        fgets(str_big_check,12,fp_1);        if(strcmp(str_big_check, "AA AA 20 02"))            fseek(fp_1,-10L,1);        else        {            data_num++;            fseek(fp_1,-11L, 1);            fgets(str_big, 108, fp_1);            fputs(str_big,fp_2);            fputc(' ',fp_2);            for(i=0;i<512;i++)            {                fseek(fp_1, 16L, 1);                fgets(str_small, 9, fp_1);                fputs(str_small, fp_2);                fputc(' ', fp_2);            }        }    }    fclose(fp_1);    fclose(fp_2);    printf("%d",data_num);    return 0;}

将上面采集到的有用数据稍作处理,即可得到所需数据集。

在上一日的基础上,改进了数据处理程序,添加了专注度等的数据采集。


struct SMA{int singal;int attention;int meditation;long int delta;long int theta;long int lalpha;long int halpha;long int lbeta;long int hbeta;long int lgamma;long int hgamma;int check;}sma[row];

得到的数据通过导入MATLAB,得到峰值曲线。

目前遇到瓶颈为:

  1. 得到的信号曲线起伏不定,未能发现任何有规律之处。
  2. 脑电波信号精确度无法确定,将来在数据采集上会有一个值域。
  3. 峰值可能并不是有效信号的载体,信号变化率将在MATLAB中重做。
  4. 两人MATLAB水平目前菜得抠脚,继续学习。



0 1
原创粉丝点击