忘備録など

忘備録として

MyoWareを使ってみる③csvファイル作成からグラフ化まで('ω')ノ

前回データをラズパイのほうに読み込みました('ω')ノ

riderid.hatenablog.com

 

今回はこのデータをcsvファイルにしたいと思います('ω')ノ

その後、libreoffice、pandasでそれぞれでグラフ化してみます('ω')ノ

 

Arduinoから送られてきたデータをラズパイ側でcsvファイルにします

コードはこんな感じです('ω')ノ

f:id:riderid:20210717011948j:plain

f = open('data.csv', 'w') でdata.csvというファイルを開きます

open()は2つの引数をとり、(filename, mode)で、filenameはファイル名です

modeは 'r'…読み取り専用、'w'…書き込み専用、'a'…追記専用 となっています

また、'b'とするとバイナリモードで開かれます

csv.writer(f, lineterminator = "/n") でファイルに書き込みます

lineterminator = "/n" では改行コードを指定しています

np.array([count, value]) では、count(1-9991までの数字)とvalue(受信データ)でリストを作ります

write.writerow(x) でcsvファイルに1行ずつ書き込みます

先ほどarray()でリストを作ったのはwriterow()の引数が2次元以上の配列だからです

これが 数字だとエラーが出ます

これをtime.sleep(0.01) で0.01sごとに繰り返します

最後は f.close() でファイルを閉じます

0.01sごとに1000のデータをとるので、10s分のデータになります

 

こんな感じでcsvファイルができました('ω')ノ

f:id:riderid:20210717014939j:plain

 

次にグラフを作ります('ω')ノ

まずはlibreofficeExcelもどきで出してみたいと思います('ω')ノ

 

sudo apt install libreofficeとコマンド入力し、libreofficeを入れます

f:id:riderid:20210718101412j:plain

 

挿入(insert)のタブからグラフ(chart)を選択します('ω')ノ

f:id:riderid:20210718101458j:plain

f:id:riderid:20210718101556j:plain

こんな感じでグラフができました('ω')ノ

 

次に、pandasを使ってグラフ化していきたいと思います('ω')ノ

pip install pandas をコマンド入力して、pandasをインストールします

f:id:riderid:20210718101830j:plain


コードはこんな感じです('ω')ノ

f:id:riderid:20210720233853j:plain

pd.read_csv('ファイル名') でcsvファイルを読み込みます

plt.plot(df['time'], df['voltage']) でtime列とvoltage列を指定してプロットします

 

グラフが表示されました('ω')ノ

f:id:riderid:20210718194405j:plain

 

次回はFFTで使えるデータを作りたいと思います('ω')ノ

ではまた('ω')ノ