#author("2023-01-06T10:17:03+00:00","","")
#author("2023-01-06T11:44:12+00:00","","")
[[大森]]~
[[技術資料]]~


*目次 [#e890b3d5]

#CONTENTS
**【このページでできること】[#i495c384]

足裏センサデバイスのオフラインにおける使い方

**【参考資料】[#n524e1f0]

arduinoの記事 : https://qiita.com/ketaro-m/items/f6d6eb8175f1c845839e

**【実行環境】[#rde624e4]
・python 64bit版~
・python3.9.2~
・Python3.8.5~
・RealVNC~
・Arduino IDE 1.8.19~

**【使い方】[#q403d9b3]
***ファイルの説明 [#yd049dee]
まず、PCにRealVNCをダウンロードする。~
次にVNCアカウントを作成する。~
VNCアカウントは無料で作成でき、最大5台のRaspberryPyをVNCできる。

<RaspberryPiに置くプログラム>~
#ref(client_left.py,,client_left.py)~
#ref(client_right.py,,client_right.py)~
圧力、加速度、ジャイロを検出し、csv形式で書き込むためのプログラム。~
データは1分ごとに新しいファイルが作成されて作り変えられるようになっている。~
#ref(AccelGyro.ino,,AccelGyro.ino)~
Arduino nanoに書き込むプログラム。センサの取り方を記載してある。~
注意:「デバイスの使い方」にあるAccelGyro.inoとは中身が違うので要注意。~

~
<サーバに置くプログラム>~
<データ取得・解析編>~
#ref(server.py,,server.py)~
RaspberryPiで集めたデータを受信する。~

#ref(connection.py,,connection.py)~
右足データと左足データを組み合わせる。~

#ref(gravity.py,,gravity.py)~
重心を計算する。~

#ref(kalmanfilter_left.py,,kalmanfilter_left.py)~
左足の拡張カルマンフィルタを計算する。~

#ref(kalmanfilter_right.py,,kalmanfilter_right.py)~
右足の拡張カルマンフィルタを計算する。~

#ref(study_preparation.py,,study_preparation.py)~
機械学習に用いるcsvファイルを生成する。~

#ref(study_perceptron.py,,study_perceptron.py)~
機械学習を実行する。~

#ref(filemaker.py,,filemaker.py)~
ディレクトリを作成する。~
~
<データ編集>~
#ref(study_label.py,,study_label.py)~
学習データにラベリングする。~

#ref(study_connection.py,,study_connection.py)~
学習データを既存の教師用データと結合する。~

#ref(study_delete.py,,study_delete.py)~
学習データを一部消去する。~

***データの集め方(RaspberryPi編) [#q0bc128b]
***<ステップ1 (PCでの作業)> [#vd791eef]
まず、VNCを使ってPCからRaspberryPyにclient_left.pyとclient_right.pyとAccelGyro.inoを送信する。~
client_left.pyとclient_right.pyは、それぞれ左足用のデバイス、右足用のデバイスに転送する。~

***<ステップ2 (RaspberryPiでの作業)> [#na008614]
Arduinoというフォルダをhome/piの階層に作る。その中にAccelGyroという名前でフォルダを作り、そこにAccelGyro.inoを格納する。~

***<ステップ3 (RaspberryPiでの作業)> [#me575527]
Arduino IDEを用いてArduino nanoにAccelGyro.inoを書き込ませる。~
このときボードはArduino nano、プロセッサはATmega328P(Old Bootloader)、シリアルポートはUSBの方を選択。~
注意:もし初めて書き込む場合、ライブラリ「MPU9250_asukiaaa」が必要となる。~
スケッチ→ライブラリをインクルード、からMPU9250_asukiaaaをインクルードする。~

***<ステップ4 (RaspberryPiでの作業)> [#z97570d8]
以上ができたらプログラム実行開始。~
このとき、最初の行に「This is Debug 1023~.」などといった数字が書かれているときと「This is Debug.」のように何も書かれていないときがあるがどちらもデータを取れているので気にしない。言わばバグの処理。~

***<ステップ5 (RaspberryPiでの作業)> [#rd360b0e]
ステップ4ができたらあとは動作を実行してデータを集めるのみ。~
実験が終わったらプログラムを停止する。~
~
***データの集め方(サーバ編) [#q0bc128b]
WinSCPを使ってサーバにプログラムを転送する。~
階層は
 var/www/html/自分のディレクトリ
に置く。自分のディレクリは自由に作ってよい。~
~
次にコマンドプロンプトからサーバにアクセスし、プログラムを動かす。~
サーバへのアクセスは~
 ssh ギリシャ文字@133.55.115.240
 パスワード : 自分のギリシャ文字のパスワード
 sudo su -
 パスワード : 自分のギリシャ文字のパスワード
でsudo権限でアクセスできる。もし、自分のギリシャ文字がsudoを持たない場合、sudoを持っている人が権限を与えなければならない。~
その場合はsudo権限上で~
 su
 usermod -G wheel sudoを与えたい人のギリシャ文字
 su sudoを与えたい人のギリシャ文字
となる。例えば~
 su
 usermod -G wheel lambda
 su lambda
と打てばlambdaがsudo権限を持ったことになる。~
~
以上の手順でsudo権限上でプログラムを動かす。~
 cd ..
 cd var/www/html/自分のディレクトリ
 python3 filemaker.py
の手順で1つずつ動かす。このとき、1つのコマンドプロンプトでは1つのプログラムしか実行ができないので、上記の手順を動かしたいプログラムだけコマンドを用意し実行する。~
の手順で1つずつ動かす。このとき、1つのコマンドプロンプトでは1つのプログラムしか実行ができないので、上記の手順を動かしたいプログラム(11個)だけコマンドを用意し実行する。~
これで、サーバにデータが蓄積される。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS