足裏センサデバイスのオフラインにおける使い方
arduinoの記事 : https://qiita.com/ketaro-m/items/f6d6eb8175f1c845839e
・python 64bit版
・python3.9.2
・Python3.8.5
・RealVNC
・Arduino IDE 1.8.19
まず、PCにRealVNCをダウンロードする。
次にVNCアカウントを作成する。
VNCアカウントは無料で作成でき、最大5台のRaspberryPyをVNCできる。
<RaspberryPiに置くプログラム>
圧力、加速度、ジャイロを検出し、csv形式で書き込むためのプログラム。
データは1分ごとに新しいファイルが作成されて作り変えられるようになっている。
Arduino nanoに書き込むプログラム。センサの取り方を記載してある。
注意:「デバイスの使い方」にあるAccelGyro.inoとは中身が違うので要注意。
<サーバに置くプログラム>
RaspberryPiで集めたデータを受信する。
右足データと左足データを組み合わせる。
重心を計算する。
左足の拡張カルマンフィルタを計算する。
右足の拡張カルマンフィルタを計算する。
機械学習に用いるcsvファイルを生成する。
ディレクトリを作成する。
まず、VNCを使ってPCからRaspberryPyにclient_left.pyとclient_right.pyとAccelGyro.inoを送信する。
client_left.pyとclient_right.pyは、それぞれ左足用のデバイス、右足用のデバイスに転送する。
Arduinoというフォルダをhome/piの階層に作る。その中にAccelGyroという名前でフォルダを作り、そこにAccelGyro.inoを格納する。
Arduino IDEを用いてArduino nanoにAccelGyro.inoを書き込ませる。
このときボードはArduino nano、プロセッサはATmega328P(Old Bootloader)、シリアルポートはUSBの方を選択。
注意:もし初めて書き込む場合、ライブラリ「MPU9250_asukiaaa」が必要となる。
スケッチ→ライブラリをインクルード、からMPU9250_asukiaaaをインクルードする。
以上ができたらプログラム実行開始。
このとき、最初の行に「This is Debug 1023~.」などといった数字が書かれているときと「This is Debug.」のように何も書かれていないときがあるがどちらもデータを取れているので気にしない。言わばバグの処理。
ステップ4ができたらあとは動作を実行してデータを集めるのみ。
実験が終わったらプログラムを停止する。
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つのプログラムしか実行ができないので、上記の手順を動かしたいプログラムだけコマンドを用意し実行する。
これで、サーバにデータが蓄積される。