渡辺君へ
8.くらいまでWikiの麻生のところにOpenBCIのインストールから実行までまとめてあるからそれ読んでこのWikiのページに渡辺君なりにまとめてください。(今書いてあることに必要なことを追加するぐらいで大丈夫だと思います。)
そこから先は、僕がやっておきます。
麻生より
1. 目標
2. OpenBCIヘッドウェアの組立て
3. FTDIドライバ・インストール(Macのみ)
4. GUIインストール
5. 脳波の測定の準備(Windows, Unix)
8. 脳波の測定の実行と動作確認
9. ジャンケンの出す手の分類学習
10. ジャンケンの出す手の予測
簡易脳波計をつけて,ジャンケンに負ける手を出すときの脳波から,出す手を脳波から事前に予測する.ジャンケンを実行してPCがジャンケンに勝つ手を出す勝率を表示する.
注意 目標2はPythonを実行できる環境(Ubuntu等)でやるので、その環境で目標1もやってください
| 電極 | 線の色 | サイトンボードピン |
| 耳のクリップ | 黒 | ボトムSRBピン(SRB2) |
| FP1 | 紫 | ボトムN1Pピン |
| FP2 | グレー | ボトムN2Pピン |
| C3 | 緑 | ボトムN3Pピン |
| C4 | 青 | ボトムN4Pピン |
| P7 | オレンジ | ボトムN5Pピン |
| P8 | 黄 | ボトムN6Pピン |
| O1 | 赤 | ボトムN7Pピン |
| O2 | 茶色 | ボトムN8Pピン |
| 耳のクリップ | 黒 | ボトムBIASピン |
配線の色とサイドボードピンの組み合わせは一致しないかもしれないので、写真の通りの電極と一致するように写真と表を見比べて接続する。
以下のサイトを参考にして、同じように電極とデイジー・ピンのペアリングも行う。
電池パッケージを結束バンドなどで固定しておく。
以下のサイトでインストール http://openbci.com/index.php/downloads
USB ドングルをコンピュータ側にでっぱりをスライドさせ、青いライトを点灯させる
Cyton ボードのスイッチは、上にスライドで PC 接続、下にスライドで Bluetooth 接続となる
今回はPC接続なので上にスライドする
ここから先はWindowsとUbuntuでやり方が違う
#ref(): File not found: "GUI設定.png" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
OpenBCI_GUI.exeを開いて
(1) LIVE from (Cyton)
(2) Serial(from Dongle)
(3) COM3
(4) 8CHANNELS
(5) START SYSTEM
以上の流れで実行できる
・今回は、8CHANNNELで行う
・エラーが出たときはOpenBCIHub.exeを起動してからOpenBCI_GUI.exeを起動する
シリアルポートにアクセスするのに十分な特権でOpenBCIアプリケーションを起動する
OpenBCIソフトウェアをホームフォルダに展開したと仮定すると、以下のコマンドで実行できる
cd ~/application.linux64 && sudo bash OpenBCI_GUI
(1) LIVE from (Cyton)
(2) Serial(from Dongle)
(3) SERIAL / COM PORT は一番上のやつ
(4) 今回は8CHANNELS
(5) START SYSTEM
以上の流れで実行できる
・装着するときは電池がついている方を後ろ向きにする
・DATA LOG FILE でファイルを変更できる(デフォルトで日付)
・実行できる状態か確かめるときは、SERIAL / COM PORT の横の矢印から確認できる
・GET CHANNEL と STATUS が Success となっていれば実行可能
・脳波がとれない場合はそのチャンネルの頭のねじを回すことで調節する(2番はとれなかった)
START SYSTEM を実行すると以下のような画面になり、左上の START DATA STREAM で測定開始、STOP で測定終了となる
#ref(): File not found: "OpenBCI_start.png" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
作業する場所にフォルダを作り、以下のプログラムと画像を入れる
#ref(): File not found: "slide.py" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
#ref(): File not found: "test.py" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
#ref(): File not found: "Black_image.png" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
#ref(): File not found: "guu.png" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
#ref(): File not found: "paa.png" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
#ref(): File not found: "tyoki.png" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
#ref(): File not found: "white_image.png" at page "簡易脳波計によるジャンケン予測のためのクラスタリング"
そのフォルダの中にcountというフォルダを作り、以下の画像を入れる
python3でやる
pipのインストールはこのサイトの「pipのインストール方法」を見てやる
モジュールのインストールは以下のコマンドで
pip3 install opencv-python
sudo pip3 install pyautogui
sudo pip3 install xlib
pip3 install matplotlib
sudo apt-get install python3-tk
sudo apt-get install python-scipy
pip3 install scipy
pip install scikit-learn
pip3 install pandas
pip3 install sklearn
必要なコードとファイルは,Google Driveの/麻生/brainの中にあります。
一応、国際学会では違う分析手法で発表したのでその時のコードもgakkaiというフォルダの中に一緒に入れておきます。(これは興味があれば見ておいてください。)
tv.pyを以下のコマンドにより実行することによってシステムを動かすことができます。
python tv.py
⒈ 分析したい脳波データの部分を抽出する
⒉ 分析対象となる脳波のデータを独立主成分分析によって、分析に効果的であると考えられる成分を抽出する
⒊ 独立成分分析によって処理したデータをフーリエ変換
⒋ 周波数帯でシータ波とアルファ波、ベータ波に分割する
⒌ 分割したデータをランダムファレストにより学習
⒍ 学習したモデルを使って予測
Pyautoguiは、Pythonのモジュールでデフォルトのコードはmacのデスクトップの画面の座標で設定してあるため、パソコンによっては座標を変更する必要があるかもしれません。
OpenBCIのスタートの位置にpyautogui.click(x,y)を合わせないといけない
data_getのスライドを何回表示させるかは、以下のコードのfor文の繰り返し回数を変更することで設定できる。
すべての組み合わせの9回を1セットとしてある
OpenBCIで取得したデータが保存されるディレクトリにPATHを変更する必要がある。
分析したいファイル名はOpenBCIの画面でファイル名を設定する部分があるので、そこで読み込むファイル名を設定するファイル名にしておく。