前回データをラズパイのほうに読み込みました('ω')ノ
今回はこのデータをcsvファイルにしたいと思います('ω')ノ
その後、libreoffice、pandasでそれぞれでグラフ化してみます('ω')ノ
Arduinoから送られてきたデータをラズパイ側でcsvファイルにします
コードはこんな感じです('ω')ノ
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ファイルができました('ω')ノ
次にグラフを作ります('ω')ノ
まずはlibreofficeのExcelもどきで出してみたいと思います('ω')ノ
sudo apt install libreofficeとコマンド入力し、libreofficeを入れます
挿入(insert)のタブからグラフ(chart)を選択します('ω')ノ
こんな感じでグラフができました('ω')ノ
次に、pandasを使ってグラフ化していきたいと思います('ω')ノ
pip install pandas をコマンド入力して、pandasをインストールします
コードはこんな感じです('ω')ノ
pd.read_csv('ファイル名') でcsvファイルを読み込みます
plt.plot(df['time'], df['voltage']) でtime列とvoltage列を指定してプロットします
グラフが表示されました('ω')ノ
次回はFFTで使えるデータを作りたいと思います('ω')ノ
ではまた('ω')ノ