mindwave mobile(黒いやつ)をprocessing for mac
参考URL
ドライバ
http://store.neurosky.com/products/mindwave-mac-drivers
ThinkGearというアプリケーション?ドライバも含まれているかも??
http://developer.neurosky.com/docs/doku.php?id=thinkgear_connector_tgc
processingライブラリgit
https://github.com/ericblue/Processing-Brain-Grapher
サンプルと動画
http://www.magicandlove.com/blog/2012/03/15/neurosky-mindwave-and-processing/
日本語説明書?PEF
http://developer.neurosky.com/docs/lib/exe/fetch.php?media=qsg_japanese_version.pdf
手順
1.参考URLからドライバインストール
URL先のページ先は白いやつ用って出てる。最初間違ってインストールしたけどドライバは共通かな?
2.ThinkGearインストール
3.PCとmindwaveでペアリング
mindwaveのつまみをonの方向に3秒ほどスライドする
LEDが2連続点灯したらペアリング開始らしい
(参考のPDFから)
4.processing起動、サンプル起動(どれでも)
5.動いてたら動いた
自分の使用したサンプル
さらに試しでHashMap使ってたくさんある変数をまとめてみた
import java.net.*;
import java.util.Map;
import neurosky.*;
import org.json.*;
ThinkGearSocket neuroSocket;
HashMap<String, Integer> mess;
void setup() {
size(600, 600);
mess = new HashMap<String, Integer>();
ThinkGearSocket neuroSocket = new ThinkGearSocket(this);
try {
neuroSocket.start();
}
catch (ConnectException e) {
println("Is ThinkGear running??");
println(e.getMessage());
}
}
void draw() {
background(255);
//println(mess.entrySet());
String txt = "values list\n";
for (Map.Entry m : mess.entrySet ()) {
print(m.getKey() + " : ");
println(m.getValue());
txt += m.getKey()+" : "+m.getValue()+"\n";
}
fill(0);
text(txt, 20, 20);
}
void poorSignalEvent(int sig) {
println("SignalEvent "+sig);
mess.put("sig", sig);
}
public void attentionEvent(int attentionLevel) {
println("Attention Level: " + attentionLevel);
mess.put("attentionLevel", attentionLevel);
}
void meditationEvent(int meditationLevel) {
println("Meditation Level: " + meditationLevel);
mess.put("meditationLevel", meditationLevel);
}
void blinkEvent(int blinkStrength) {
println("blinkStrength: " + blinkStrength);
mess.put("blinkStrength", blinkStrength);
}
public void eegEvent(int delta, int theta, int low_alpha, int high_alpha, int low_beta, int high_beta, int low_gamma, int mid_gamma) {
println("delta Level: " + delta);
println("theta Level: " + theta);
println("low_alpha Level: " + low_alpha);
println("high_alpha Level: " + high_alpha);
println("low_beta Level: " + low_beta);
println("high_beta Level: " + high_beta);
println("low_gamma Level: " + low_gamma);
println("mid_gamma Level: " + mid_gamma);
mess.put("delta", delta);
mess.put("theta", theta);
mess.put("low_alpha", low_alpha);
mess.put("high_alpha", high_alpha);
mess.put("low_beta", low_beta);
mess.put("high_beta", high_beta);
mess.put("low_gamma", low_gamma);
mess.put("mid_gamma", mid_gamma);
}
void rawEvent(int[] raw) {
//println("rawEvent Level: " + raw);
}
void stop() {
neuroSocket.stop();
super.stop();
}