エンジニア

なんくるないさ

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

機械学習のためのデータ取集について4(arduino側)

jump1268.hatenablog.com



前回のarduinoのプログラムを少し変えて
下のようにしています。(前回のは一つのセンサの値を読み込みシリアル通信でパソコンに送信するだけ)

なぜ変えたかをまず先に説明します。
いろいろな機械学習の本を買いながら調べると、機械学習はセンサの情報を収集するのが一番手間がかかるらしい。
センサの情報が何の動作を表しているのか、またその動作以外の情報が紛れていないかが大事
これは改良しなければと思い下のようにしました。


まず常にシリアル通信して、センサの電圧情報を送ってcsvファイルを作るとなると後々扱いずらい。
ということで、ボタンを押しているときだけシリアル通信するプログラムを書きました。
ボタンは二つ用意して、ある動作をしているときは白のボタンを押してセンサの情報を送信
違う動作をしているときは緑のボタンを押してセンサの情報を送信
という感じに。このとき本当に送信できているか、どっちのボタンを押しているかわかりやすいように白色LEDを利用しています。

f:id:jump1268:20180924123933p:plain

www.youtube.com






arduino


__________________________

/*
ボタンを押しているときだけシリアル通信

*/

int buttonw = 7; // 変数buttonに7を代入する。白ボタン
int buttong = 8;// 緑ボタン
int led = 2; // 変数ledに2を代入する./白ボタンをおすと青いLEDになる
int led2 = 3; // 変数led2に3を代入する。緑ボタンを押すと緑色

void setup() {
pinMode(buttonw, INPUT);// buttonw(白ボタン)ピンを入力されたかわかるようにする
pinMode(buttong, INPUT);// buttong(緑ボタン)ピンを入力されたかわかるようにする。
pinMode(led, OUTPUT); // ledピン(2ピン)を出力にする。出力できるようになる。
pinMode(led2, OUTPUT); // ledピン(3ピン)を出力にする。出力できるようになる
Serial.begin(9600);
while (!Serial);
}

void loop() {
if (digitalRead(buttonw) == HIGH) { //白ボタン、buttonwピンがHIGHならば
digitalWrite(led, HIGH); // ledピン(2)にHIGHを出力する。青色
int val = analogRead(A0);
int val1 = analogRead(A1);
//int val2 = analogRead(A2);
// int val3 = analogRead(A3);
Serial.print(1);//ラベル1を出力したのちに、A0,A1,A2の電圧を出力する。
Serial.print (",");
Serial.print(val);
Serial.print (",");
Serial.print (val1);
// Serial.print (",");
// Serial.print (val2);
// Serial.print (",");
// Serial.print (val3);
Serial.println ("");
delay(50);
} else { // そうでなければ
digitalWrite(led, LOW); // ledピンにLOWを出力する } }
}

if (digitalRead(buttong) == HIGH) { //緑buttonピンがHIGHならば
digitalWrite(led2, HIGH); // led2ピン(12)にHIGHを出力する。緑色
int val = analogRead(A0);
int val1 = analogRead(A1);
int val2 = analogRead(A2);
int val3 = analogRead(A3);
Serial.print(2);//ラベル2を出力したのちに、A0,A1,A2の電圧を出力する。
Serial.print (",");
Serial.print(val);
Serial.print (",");
Serial.print (val1);
// Serial.print (",");
//Serial.print (val2);
// Serial.print (",");
// Serial.print (val3);
Serial.println ("");
delay(50);
} else { // そうでなければ
digitalWrite(led2, LOW); // ledピンにLOWを出力する } }
}


長いですね。



↓無料体験すればアマゾンギフトが2000円もらえます。
(このサイトのプレゼント1000円+私のポケットギフト)←(笑)ギフト券使わないといけないので
登録したらコメントでもなんでも言ってください。
機械学習について勉強したい方は下のサイトで無料体験レッスンうけるのが良いかもですね。