はじめに
備忘録.Arduino IDEでセンサの出力を ツール/シリアルモニタorシリアルプロッタから見ることはできるが,データとして取得したい場合のメモ.
環境
OS Windows 10
Aruduino MEGA 2560
Arduino IDE (ver.1.8.9)
visual studio 2019
やり方(備忘録)
あらかじめブレッドボード等でArduinoボードに回路を作成しておく.
Arduino IDEにて以下のソースコードを実行.
Arduino_IDE
intSignal1;unsignedlongt;//TheSetUpFunction:voidsetup(){Serial.begin(250000);//Set'supSerialCommunicationatcertainspeed.}//TheMainLoopFunctionvoidloop(){Signal1=analogRead(0);t=millis();//Serial.print(t);//Serial.print(", ");Serial.println(Signal1);}
この際,Arduinoボードに刺したセンサのANALOG IN ピン番号と対応する数字をanalogRead()
の関数内に入力.
また,サンプリング周波数はSerial.begin
で調整.
他にここでIDE上部ツール/シリアルポート
から通信しているポート番号を確認しておく.
次に,VSで新規プロジェクト(C# コンソールアプリ.NET Framework)を作成.
以下のソースコードを実行.
Program.cs
usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.IO.Ports;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApp1{classProgram{staticvoidMain(string[]args){SerialPortmySP=newSerialPort("COM*");varsw=newSystem.IO.StreamWriter("***.csv",false,System.Text.Encoding.GetEncoding("shift_jis"));mySP.BaudRate=250000;mySP.Open();while(true){stringmyData=mySP.ReadLine();sw.WriteLine(myData);Console.WriteLine(myData);}}}}
注意すべきは,先ほど確認してシリアルポート番号をnew SerialPort("COM*")
の*に代入することと,BaudRate
にArduino IDEで設定したサンプリング周波数と同じ値を入力すること.
時間も同様に出力したい場合はArduino IDE上で設定が可能.今回のソースコードではコメントアウトを外すことでミリ秒の出力ができる.