一番簡単なArduinoとWindows間の通信のやり方

私は電子工作でArduinoをよく使います。一番よく使うパターンはセンサーICをArduinoにつなげてデータを収集させています。この時、収集したデータをPCに移動する必要がありますが、移動の方法は何種類かあります。

その中でも、必要な条件を満たして、できるだけ簡単にするにはどのような方法が適しているのか。自分の備忘録もかねて、ここに記録したいと思います。

この記事では単純にPCに計測結果を流す方法とC#のプログラムで受けとる方法の2つについて説明します。ただ結果を流す方法は簡単ですが、Excelなどでの処理が必要です。C#で受け取る方法は自動処理につなげられますが、その分敷居が高いです。

結果をだたPCに流す方法

結果をただPCに流すためにはArduinoの開発環境にあるシリアルモニターを使います。シリアルモニターはArduinoのソフトのツールに中か、写真の虫メガネアイコンで起動できます。

シリアルモニターに文字を表示させるためにはArduino側にも命令を書きます。少なくとも次の2つを書く必要があります。

  1. setupに一回だけSerial.begin()を書く
  2. 結果を表示したい場所に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#を使う理由は構文の補完機能の強力さのためです。この機能のおかげでサクサクコードが書けます。

具体的なメリットは以前記事にしましたので見てみてください。