エンジニア

なんくるないさ

「このブログはアフィリエイト広告を利用しています」

機械学習のためのデータ収集について5

機械学習のためのデータ収集を書いてきました。
jump1268.hatenablog.com



今までのプログラムは押している間に電圧をcsvファイルに書き出していました。

このプログラムだと20行文よみこんでcsvファイル作ったらプログラムが終わっていました。次のデータ取るときは、プログラムを起動してデータとって、,,,てなってすごくめんどくさいし、時間かかるな~。

これは改善しなければ!と思い改善しました。

www.youtube.com


これによって、ボタンを押している間にcsvファイルを作ってくれます。

一番外のwhile の条件n<20を変えることによって、今は20個分のcsvファイルを作るとプログラムは終了しますが、
自分が好きな分に調整できます。

また次のcsvファイルと次のcsvファイルを作る間に1秒ほど待つ時間も入ってるので、

使いやすくなってます。

python側のプログラムは

import pandas as pd
import numpy as np
import serial
import datetime
import csv
import time


dt_now = datetime.datetime.now()

def main():
    ser = serial.Serial("COM10")  # COMポート(Arduino接続)

    #df = pd.DataFrame(columns=["A0","A1"])
    


    n =20
    while n <30:
        num = 0
        df = pd.DataFrame(columns=["A0","A1"])
       


        while num < 50:#5回分のセンサの値をまとめてから csvファイルをつくる

            data = ser.readline().rstrip()  # \nまで読み込む(\nは削除
            data = data.decode() #対話型だとこれが必要らしい
            (xdeg, ydeg, zdeg) =data.split(",")
            xdeg = float(xdeg) -512
            ydeg = (float(ydeg)-512)/512 #正規化するため→(ー1~1)
            zdeg = (float(zdeg)-512)/512

        

            new_data = pd.Series([ydeg, zdeg], index=df.columns)

            df = df.append(new_data, ignore_index=True)

            num = num + 1

        xdeg = int(xdeg)
        minute = dt_now.minute
        hour = dt_now.hour
        second = dt_now.second
    
       # del df['label']
        # CSVファイルの作成+
        #df.to_csv("label"+str(xdeg)+"-"+str(minute)+"min"+str(n)+'.csv',index=False,header=False)#ファイル名、index,ヘーダを削除。
        df.to_csv("label"+str(xdeg)+"-"+str(n)+'.csv',index=False,header=False)#ファイル名、index,ヘーダを削除。
         
        #print(df)
        print(str(n)+"回目"+"label:"+str(xdeg))
        n = n + 1
        time.sleep(1) #csvファイルを作ってから〇秒間まってから次の信号を受け取りcsvファイルを作る。

if __name__ == '__main__':
    main()

↓無料体験すればアマゾンギフトが2000円もらえます。
(このサイトのプレゼント1000円+私のポケットギフト)←(笑)ギフト券使わないといけないので
登録したらコメントでもなんでも言ってください。