Core2用にWifiを準備しています。
wifi ssid:
sensor-net
パスワード:sensot-net0101
M5Stackを用いたジェスチャ認識に挑戦
手順にしたがってなるべく進めてください。
(A)
Edge Impulseのアカウト作成お願いします。
Googleアカウントを活用するのがいいでしょう。
project名は gesturerecognition などがよいです。(なんでもよい)
(B)M5Stack Core2のArduino開発環境の構築 (Arduino言語を使います。micropythonやuiflowなどに挑戦してもらっても問題ありませんがその場合はジェスチャー認識コードは自分で書いてみてください。)
https://docs.m5stack.com/ja/core/core2
からArduino IDEを選択(ブラウザ拡張で日本語翻訳ツールをいれてください。)
https://docs.m5stack.com/ja/quick_start/core2/arduino
Windowsの人はCP210x_VCP_Windows CP2104 ダウンロードをまずは選んでください。その後zipを解凍する(Zip解凍ソフトをいれること)。
Zip解凍したあとのフォルダでx64の実行ファイルをクリックしてドライバをインストールする。
デバイスマネジャーでシリアルポートを確認するとよい。
ArudionoIDEを右上にある言語設定を「日本語」にして開発環境の手順をすすめてください。
BordmanagerとLibrary(関連ライブラリプロジェクト→ライブラリの読み込み→ライブラリ管理.)は両方セットする必要があります。
(C)標準のサンプルHelloworldなど各種サンプルを動かしてください。
M5Stackと自分の開発PCをUSBケーブルで接続する。
調子が悪いUSBケーブルや端末もあるので注意。
その他のいろんなサンプルはコチラでも公開しています。
https://drive.google.com/drive/folders/1PihokRdO-3__r5y-53DxC56APn_lOm3z?usp=sharing
(D1)ジェスチャ認識用の加速度データ取得ソースの書き込み
https://drive.google.com/file/d/1yuKhZsS48eXV3FVMaGRuD6K7dDJ9Ma6h/view?usp=share_link
にアクセスして
ACCGuesturempu6886v3.zipをダウンロード後に適切な場所で展開する。
inoファイルをクリックしてArduino開発環境で開く。
(D2)シリアル通信は115200の速度で設定
M5Stackの3つある◯のうちの左のボタンAをおしながら加速度のある動作させてください。
Arduinoのシリアルモニタの左下シリアル送受信の通信の速度(ボーレード)は115200にしてください。
シリアルモニタの終了後Xボタンで閉じること。開きぱなしになるため。
SerialMonitorなどの使い方はこちら
https://docs.arduino.cc/software/ide-v2/tutorials/getting-started-ide-v2
(D3)
Windowsの場合はteratermを用いてCOMと通信をおこないます。macの場合はそのままシリアルモニタからcopy&pasteできます。
それぞれのジェスチャを30秒 =30000ミリ秒ほどがんばるといいとおもいます。
Windowsの人のTeraterm入手先
https://forest.watch.impress.co.jp/library/software/utf8teraterm/
macOSの場合、ターミナルで screen コマンドを使います
コマンド操作が苦手なら CoolTerm などのアプリもあります ( https://freeware.the-meiers.org/ )
(E)センサデータをcsvファイルにする。
teratermの新規>シリアル通信で選択したデータを
copy&pasteでデータをvscodeなどで再保存して名前をつけてcsvファイルにします。
ファイル名は label名.sampleN番目.csv 例えばGesA.sample10.csvとしてください。
timestamp,accX,accY,accZの行から後をコピーしてください。
別のデータを取る場合はteratermの設定からバッファのクリア 画面のクリアを選んでください。その後M5StackCore2のSDカード側のリスタートボタンを押すと最初から計測できる。
(F)EdgeImplse
(F1)Edgeinmplseでcsvデータファイルを読み込む
Edgeimplseでまず、Createprojectでプロジェクトを作成して「DataAquisition」でアップロードしていきます。
複数ファイルは同時に選択できます。
アップロードが一回目うまくいったあと2回目うまく行かない場合は再度プロジェクトを破棄して作り直してください。
(F2)Edgeinmplseでデータ分割
SplitはデータをクリックしてSplitで+addして隙間クリックを多めにして10個以上複数に分けてみてださい。
保存ファイル名はGesA.sample14.csvなどです。
そうすればラベルがGesAと自動で全て付きます。
一部testデータとして移動できます。2割ぐらいのデータをテストデータに移動しましょう。
(F3)EdgeinmplseでCreate Impluse いよいよモデルを作成していきます。
Spectral Analysis
IMU (Syntiant)
Raw Data
を選択
LeaningBlockはClassificationを選択してください。
その後右のsave impulse
(F4)Edgeinmplseの右の選択メニューから
Spectral Analysis
IMU (Syntiant)
Raw Data
を順番に選択してsave parametersを押していく。
結果のグラフをまって最後にClassiferを実行
結果のグラフを記録
(F5)Edgeinmplseでデータをtest dataにも分けている場合には左メニューからModelTestingも行う。
結果の表を記録(スクリーンショット)で完成
(F6)EdgeinmplseでDeplayでIoTコードとして出力(今回は行わない)
(G)授業動画
EdgeIImpluseの授業動画を準備しました。参考にしてください。
https://tdu.box.com/s/oqes52t8jyfw2hot5uhwo0lkzuo34lfr
https://tdu.box.com/s/akx55pbq5oa51mnb28b6g8gyq9vkqlmo