一番簡単なArduinoとWindows間の通信のやり方
私は電子工作でArduinoをよく使います。一番よく使うパターンはセンサーICをArduinoにつなげてデータを収集させています。この時、収集したデータをPCに移動する必要がありますが、移動の方法は何種類かあります。
その中でも、必要な条件を満たして、できるだけ簡単にするにはどのような方法が適しているのか。自分の備忘録もかねて、ここに記録したいと思います。
この記事では単純にPCに計測結果を流す方法とC#のプログラムで受けとる方法の2つについて説明します。ただ結果を流す方法は簡単ですが、Excelなどでの処理が必要です。C#で受け取る方法は自動処理につなげられますが、その分敷居が高いです。
結果をだたPCに流す方法
結果をただPCに流すためにはArduinoの開発環境にあるシリアルモニターを使います。シリアルモニターはArduinoのソフトのツールに中か、写真の虫メガネアイコンで起動できます。
シリアルモニターに文字を表示させるためにはArduino側にも命令を書きます。少なくとも次の2つを書く必要があります。
- setupに一回だけSerial.begin()を書く
- 結果を表示したい場所にSerial.print()を書く
試しに”Hello world”を無限に書くプログラムを作ると次のようになります。
void setup() { Serial.begin( 9600 ); } void loop(){ Serial.print( "Hello world" ); delay(1000); }
Serial.beginのカッコの中の9600はシリアルポートの通信速度です。Arduinoのシリアルモニターはデフォルトで9600になっていますから、はじめは9600でいいでしょう。
Serial.printはHellow worldをシリアルモニターに書き出しますがvoid loopの中の処理は反復されますので1秒に一回表示されるように1秒待ちのdelay命令を追加しました。
このHellow worldの部分に計測器の測定結果とかを代入すると、1秒ごとに計測器の測定結果をシリアルモニターに表示することができます。
結果をC#で受け取る方法
私は計測器の制御にはC#を使っています。C#を使う理由は構文の補完機能の強力さのためです。この機能のおかげでサクサクコードが書けます。
具体的なメリットは以前記事にしましたので見てみてください。