簡易脳波計をつけて,ジャンケンに負ける手を出すときの脳波から,出す手を脳波から事前に予測する.ジャンケンを実行してPCがジャンケンに勝つ手を出す勝率を表示する
注意 目標2はPythonを実行できる環境でやるので、その環境で目標1もやってください
| 電極 | 線の色 | サイトンボードピン |
| 耳のクリップ | 黒 | ボトムSRBピン(SRB2) |
| FP1 | 紫 | ボトムN1Pピン |
| FP2 | グレー | ボトムN2Pピン |
| C3 | 緑 | ボトムN3Pピン |
| C4 | 青 | ボトムN4Pピン |
| P7 | オレンジ | ボトムN5Pピン |
| P8 | 黄 | ボトムN6Pピン |
| O1 | 赤 | ボトムN7Pピン |
| O2 | 茶色 | ボトムN8Pピン |
| 耳のクリップ | 黒 | ボトムBIASピン |
#ref(): File not found: "脳波装置.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
配線の色とサイドボードピンの組み合わせは一致しないかもしれないので、写真の通りの電極と一致するように写真と表を見比べて接続する。
以下のサイトを参考にして、同じように電極とデイジー・ピンのペアリングも行う。
電池パッケージを結束バンドなどで固定しておく。
リティとプライバシーから App Store と確認済みの開発元からのアプリケーションの許可に設定する
以下のサイトでインストール https://github.com/OpenBCI/OpenBCI_GUI/releases/tag/v4.1.6
#ref(): File not found: "USB.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
USB ドングルをコンピュータ側にでっぱりをスライドさせ、青いライトを点灯させる
#ref(): File not found: "Cyton1.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
Cyton ボードのスイッチは、上にスライドで PC 接続、下にスライドで Bluetooth 接続となる
今回はPC接続なので上にスライドする
青く光らなかったら電池切れの可能性があるので、電池の交換を行う
#ref(): File not found: "加工openbci.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
OpenBCI_GUI.exeを開いて
(1) LIVE from (Cyton)
(2) Serial(from Dongle)
(3) COM3 (ここがCOM3にならないときもあるので、その時はUSBドングルを挿したときに表示されたものを選択する)
(4) 8CHANNELS
(5) START SESSION
以上の流れで実行できる
・今回は、8CHANNNELで行う
・USBドングルは2種類あるので、COM3と表示されるものを使う
・エラーが出たときはOpenBCIHub.exeを起動してからOpenBCI_GUI.exeを起動する
・装着するときは電池がついている方を後ろ向きにする
・Session Date の Name でファイル名を変更できる(デフォルトで日付)
・実行できる状態か確かめるときは、AUTOSCAN から確認できる
・下部分に緑文字で "Successfully connected to Cyton using COM3" と表示されれば実行可能
・脳波がとれない場合はそのチャンネルの頭のねじを回すことで調節する
START SESSION を実行すると以下のような画面になり、左上の START DATA STREAM で測定開始、STOP で測定終了となる
#ref(): File not found: "gui.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
Google Driveの中の"学生"→"08清水"の"専門ゼミ脳波"のフォルダをzipファイルにまとめた
#ref(): File not found: "noha.zip" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
zipファイルの中にはこれらが入っている
#ref(): File not found: "tv.py" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
#ref(): File not found: "X_tra.py" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
#ref(): File not found: "黒.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" | #ref(): File not found: "グー.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" | #ref(): File not found: "パー.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" | ||
#ref(): File not found: "チョキ.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" | #ref(): File not found: "zyan.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" | #ref(): File not found: "ken.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" | ||
#ref(): File not found: "kati.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" | #ref(): File not found: "make.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" | #ref(): File not found: "hikiwake.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン" |
python3でやる
pipのインストールはこのサイトの「pipのインストール方法」を見てやる
"sudo","apt-get"のコマンドはwindowsではできないので、"sudo"のみのものは"sudo"なしでも大丈夫
"apt-get"はwindowsではできない
モジュールのインストールは以下のコマンドで
Python で opencv を取り扱うためのモジュール
pip3 install opencv-python
マウスやキーボード操作を制御するためのモジュール
sudo pip3 install pyautogui
PythonにXlibを実装する
sudo pip3 install xlib
Pythonの描画ライブラリ
pip3 install matplotlib
高度な科学計算を行うためのライブラリ
pip3 install scipy
機械学習のライブラリ
pip install scikit-learn
データ解析を支援する機能を提供するライブラリ
pip3 install pandas
これ以外のモジュールを要求されたら、その都度インストールをしていく
必要なコードとファイルは,Google Driveの/麻生/brainの中にあります
一応、国際学会では違う分析手法で発表したのでその時のコードもgakkaiというフォルダの中に一緒に入れておきます。(これは興味があれば見ておいてください。)
tv.pyを以下のコマンドにより実行することによってシステムを動かすことができます。
python tv.py
⒈ 分析したい脳波データの部分を抽出する
⒉ 分析対象となる脳波のデータを独立主成分分析によって、分析に効果的であると考えられる成分を抽出する
⒊ 独立成分分析によって処理したデータをフーリエ変換
⒋ 周波数帯でシータ波とアルファ波、ベータ波に分割する
⒌ 分割したデータをランダムファレストにより学習
⒍ 学習したモデルを使って予測
実行手順
作業するフォルダを"brain"という名前にしてある(ここの名前は自分で変えても大丈夫です)
訓練データの取得方法とその後
訓練データを取得するときは、"tv.py" の451行目の( )内を5にしておく
"python tv.py" を実行
①:"ASO"を選択
②:"Start Date Stream" を押す
③:"date get" を押す
④:出てくる画像に従ってデータを取得
⑤:データ取得後、OpenBCIをSTOPさせる
#ref(): File not found: "やり方1.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
データを取得した後の処理方法(名前を「test5」に設定してある)
#ref(): File not found: "保存方法1.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
④の赤線部を"shimizu5_train"という名前でbrainフォルダにいれる
#ref(): File not found: "ファイルの移し方.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
これは tv.py の123行目にもいれる
これは X_tra.py の100行目にもいれる
じゃんけん実行準備
このときに"tv.py"の 451行目の( )内を 1 に変えておくと楽になる
"python tv.py の実行"
①:"ASO"を選択
②:"Start Date Stream" を押す
③:"date get"を押す
#ref(): File not found: "やり方1.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
データ取得した後の処理
#ref(): File not found: "じゃんけん保存.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
#ref(): File not found: "ファイルの移し方2.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
じゃんけん実行
"zyanken"を実行する前に、毎回、上の画像にある644行目のファイル名を変更する
(go10_train.txt の部分)
"python tv.py の実行"
①:"ASO"を選択
②:"Start Date Stream" を押す
③:"zyanken"を押す
#ref(): File not found: "じゃんけん方法1.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
tv.pyの変更部分
123行目
#ref(): File not found: "加工済み5.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
451行目
#ref(): File not found: "訓練データ部分1.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
486行目
#ref(): File not found: "加工済み4.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
492行目
#ref(): File not found: "ファイルの移し方.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
644行目部分
#ref(): File not found: "研究1.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
660行目部分
#ref(): File not found: "コマンドプロンプト.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
X_tra.pyの変更部
#ref(): File not found: "X_tra.png" at page "簡易脳波計によるデータ収集での脳波ジャンケン"
勝ち:3
負け:4
引き分け:3
start system or start session?
Serial port said 「COM3」but, Device Manager said 「COM5」.
the Error [connecting to serial port. Try a diffrent port?]