RM141129
・サンプリングレートについて
プログラム中のwaitによって決まります。単位はmsです。
・GOOD/BADの判定について
緑の丸に入ったらGOODとなります。
・データのセーブ
ちゃんとできているようです。
・ブロックの管理方法
プログラムの冒頭でtrialによって試行数を指定し、達すると終了するようにしました。
・ゴール位置のランダム化
シーケンスを作成し、順序を入れ替える方式に改めました・・・。
同じ位置に連続して出てしまう点はまだ改められておりません(すいません)。
・その他
プログラム冒頭で様々な設定値を変えられるようにしました。
boolean cursor=true; カーソルの表示非表示
float rotd=15; 回転角度
int targetSize=100; ターゲットの大きさ
int wait=20; データ保存の間隔
int trial=16; 試行数
int wait1=1000; 反応終了時からGOOD表示までの時間
int wait2=2000; 反応終了時から軌跡表示までの時間
とりあえず今日のところはここまでとさせてください。
ファイル:RMove
圧縮ファイル中のRM3を使用してください。
RM141012
RM141010
少し修正しました。ゴールに到達したら、Arduinoからトリガが出ます。トリガが出たら赤ランプが光るようになっています。また、ゴールに到達してから2秒後に軌跡がでるようにプログラムを修正しました。
ProcessingとArduinoの間はシリアル通信で接続されているので、遅延なしというわけにはいきません。検証してみないとわかりませんが、あまり遅延が気になるようであれば、ディスプレイにフォトダイオードを貼り付けて、トリガにすればよろしいかと思われます。動作画面を貼り付けて起きます。
プログラム:RMove
RM1(Processing側)とRMA1(Arduino側)が必要です。Arduinoと通信するので、Arduino側を動かさないとProcessing側も動かないかもしれません。
刺激呈示プログラム/Processing#141006
ターゲット(緑丸)と、ターゲット到達後に、軌跡を表示できるようになりました。到達後2秒間のインターバルがあります。あとは、Arduinoからトリガーを出す部分をつくればだいたいOKかと思います。Processingで動作します。

プログラム:rotatedMove
刺激呈示プログラム/Processing
マウスカーソルの位置に比べ、赤いカーソルの位置が時計回りに30°回転して表示されるプログラム。画面キャプチャ時に、マウスカーソルが消え失せましたが、実際はマウスカーソルも同時に表示されます。
以下、プログラムです。・・・いろいろ難所があり、予想以上に長くなってしまいました。rotation moveのあたりで、カーソル位置の回転変換を行っています。d=30の値を変えれば、回転角度を変えられます(単位は「度」、回転方向は時計回りです)。ちなみに、//norcursor;の//を除去してやると、カーソルを非表示にすることができます。
プログラム:rotatedMove
processingの開発環境はフリーです。インストール方法は、こちらをご覧ください。rotatedMoveのフォルダの中の、rotatedMove.pdeを開発環境のショートカットにドラッグアンドドロップすればプログラムが開きます。開発環境の▶ボタンで、実行できます。(たぶんそのままで動きますが、実行マシンにjavaがインストールされている必要があるかもしれません。)
3Dプリントに必要なもの
バイオフィードバック学会(6/28-29)
6/28~29、東邦大学医療センター大橋病院にて、第42回日本バイオフィードバック学会が開催されました。本学からは、平良・長野が口頭発表に参加してきました。平良さんは緊張している様子です↓

今回の学会では、オープンソースで自作した皮膚温測定器で、マッサージ中の皮膚温を測った結果を報告しました。
開発の話:14BF_NAGANO_OPENVER
運用の話:14BF_TAIRA_openVer
こちらはシンポジウムの様子。脈波ランプも紹介されました。シンポジウムのテーマは、「バイオフィードバックの付加価値を探る」でした。オープンソースハードウェア・ソフトウェアを利用することで、バイオフィードバックをより身近にできないか?という内容の話をしました。

シンポジウム:2014BFSympo_OpenVer
2014生理心理学会in筑波
emotivを使って脳波計測
少し前から当研究室に導入されたワイヤレス脳波計の「emotiv」。
卒論生が実験で用いたいということで、測って見ました。
装着は上の写真のように行います。
つまり、ただ頭にかぶせるだけで測れてしまいます!
実際には装着に少し慣れが必要で、適切な場所に電極が上手く接地させるコツを得とくしなければならないのですが、
Ag/AgCl電極を一本一本電極ノリで頭に付けていく作業を考えると、だいぶ簡易的に測定が出来るといえると思います。
実際の計測している画面は↓のようになります。
14チャンネル分の波形が表示され、脳波を目で確認する事ができます。
↑は開眼から閉眼を行ってもらった時の脳波の波形です。
目を閉じた途端にゆったりとした波形に変わっており、α波をとらえたものと思われます。
日頃は自律神経系指標を主に扱っている研究室ですが、
中枢神経系指標も取り入れることによって、新たな発見に繋がればと思います。
生体反応をランプの明るさに
生体反応を身近なものとして生活に取り込むことを目的として、様々な研究を進めています。その成果として、指先に伝わってくる心臓の拍動に応じて明滅の仕方が変わるランプを作成しました。まだ試作段階ですが、遠く離れた人の拍動を記録し、それを再生することでランプ越しに記録された人を感じることも可能となるかもしれません。Arduinoなどのオープンハードウェアを用いており、シェードの部分は3Dプリンタで作成しているため、自分好みのランプも作ることができます。また、赤・青・緑の3色が出せるLEDライトを使っているので、黄色や紫、ピンクなど多彩な色を表現することができます。
DaVinci32U-Arduinoピン変換表
いやダメだ・・・これだけだと、どれがSCLでどれがSDAかわからない。つまりI2Cでつなぐとき困る。
そう、これがないと困るね。ストリなのダビンチ説明書からです。
http://strawberry-linux.com/catalog/items?code=25005
ついでにEEPROMのマニュアルも載せておきます。
セラピューティックケア時の皮膚温変化
研究交流会
EmoTrig1
Emotiveにトリガを出すための装置をArduinoで作成しました。いちおう2chのトリガを入れられます。ch0,ch1両方2.5V以下の時はAをシリアルポートに出力します。ch0のみ2.5V以上の時はBを・・・という具合に、トリガの状態をA-Dの文字で出力します。ボーレートは9600bpsにしてあります。delayを入れて、100HzでAD変換値のチェックと文字送信を行うようにしています。ニッケル水素電池4本で、TTLのかわりに5V入れてみましたが、正しく動作しているようでした。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | int a0; int a1; String str; void setup() { pinMode(13, OUTPUT); Serial.begin(9600); // baud rate of serial communication } void loop() { a0 = analogRead(0); //ADC 0ch a1 = analogRead(1); if(a0 if(a0>512 && a1<512){str="B";} //ch0=HIGH && ch1=LOW output B if(a0512){str="C";} if(a0>512 && a1>512){str="D";} Serial.print(str); Serial.println(); delay(10); //check AD voltage with 10ms interval } |
Arduino用プログラム→
EmoTrig1
Arduino1.0.5開発環境で動作チェックしました。
追記(131210):
その後実際に接続して確認したところ、トリガが出た瞬間と終わった瞬間だけ値を変更する仕様に変更する必要があった(現場において来ちゃいました・・・)&57600bpsしないとトリガを逃すことなどもわかりました。




































