LoginSignup
3
4

More than 5 years have passed since last update.

mindwave mobileをprocessing(MacOSX yosemite)で使用する方法

Last updated at Posted at 2015-05-27

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使ってたくさんある変数をまとめてみた

sample.pde
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();
}

結果
スクリーンショット 2015-05-27 18.17.29.png

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4