Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8895

Arduinoで得たセンサの出力をCSVに吐き出す

$
0
0

はじめに

備忘録.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上で設定が可能.今回のソースコードではコメントアウトを外すことでミリ秒の出力ができる.


Viewing all articles
Browse latest Browse all 8895

Trending Articles