脳波を見る
Measuring Brain Wave

 このところ東京デバイセズ関連の記事が多くて、半分まわし者になっていますが、まぁ、面白い物が多いと言う事で良しとして、今回は最近発売された脳波バンドのデータを Processing を使ってサクッと見ようという内容です。

■脳波バンドのハック

 一つ前の記事で、小型 Arduino 基板を使った脳波バンドのハックについて少し触れました。これはセガトイズが販売している脳波でボールを浮かせるMindFlexというゲームに使われているバンドです。脳波から意識の集中度合いを計測し、集中しているほどボールを高く浮かせる仕組みになっています。中で使われているモジュールは NeuroSky 社が開発した物で、このおもちゃをハックする事で意識の集中やリラックスの度合い、α波やβ波と呼ばれる脳波の周波数に対応した強度を得る事ができるようになります。最近話題のネコミミも同社のモジュールを利用した製品です。

 MindFlexのハック情報を見ながらコツコツデータを取っていたのですが、脳に直接接触する物なので、コンセントに繋がったPCと直接接続するにはリスクを伴います。脳波バンドとコンセントに繋がったPCとは電気的に分離する必要があり、本格的にデータロギングしようと思うとなかなかめんどくさいことになります。

 また、このハックではNeuroSkyのモジュールがFFTした結果データしか得られません。このモジュールは生データを出力する機能を持っていますが、それを引き出すためにはNeuroSkyのモジュールのジャンパを変更し57600bpsのシリアル信号をアイソレータ経由で取得する必要がありめんどくさいのです。

■Bluethooth接続の脳波バンド

 そんな時に使えるグッツがこの B3 Band です。MindFrexよりも小型でBluethooth経由の仮想シリアルポートから NeuroSky モジュールの全てのデータを取得する事ができます。

 

 しかしながら、フォーマットはバイナリ形式なのでターミナルソフトで見てもなんだかよく分りません。そこで、MindFlexのハックページにあった Arduino 用のパーサをベースに、Processing で動作する全てのデータを取得できるパーサを書きましたので公開します。(自分でソースコードを理解し問題解決できる人のみお使い下さい。)

 Processing用の脳波表示ソースコードのダウンロード

 以下、setup() 内の COMポートの番号を自分の環境に合わせて書き換えてお使い下さい。

import processing.serial.*;

SerialParser sp;

void setup() {

size(800,200);

println(Serial.list());

sp = new SerialParser(this, "COM40", 57600);

}

 このコードが脳波研究の第一歩を踏み出すための助けになれたら幸いです。


Latest update at 2012/5/29