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