Terrarium

いわゆる掃き溜めの ありふれた有象無象

PlatformIO on VSCode でシリアル通信のデータを手っ取り早くファイルに保存する

TL;DR

画面下の PlatformIO メニューからターミナルを起動し,そこで

platformio device monitor | tee output.csv

Problem

実験やテストなどで Arduino を使って ADC の結果を PC に取り込みたいという状況はよくあるはず.

Arduino の開発環境ではシリアルモニタという機能があり,Arduino と簡単にシリアル通信をすることができ,これを使って ADC の値を読み込んでコピペすることでデータを取り込むことができる.

しかしこれは効率がいいとは言えない.

一方で私は普段から Visual Studio Code などで Arduino の開発を行うことができる Platform IO というツールを使っているが,こちらにもシリアルモニタ機能があるもののボタンから起動した場合にはデータはコピペするしかない(はず…).

platformio.org

tellusium.hatenablog.com

PlatformIO をコマンド上で実行できれば,パイプやら tee コマンドやらでファイルに流すのは容易である.

このデータ取り込みを効率良く行うために Platform IO をコマンドで起動する手法がわかったのでメモ代わりに残しておく.

Solution

Visual Studio Code で PlatformIO のプロジェクトを開くと画面下に次のようなボタン群が表示されている. このコンセントのようなマークがシリアルモニタであり,起動すると Arduino と通信できる.

f:id:tellusium:20190712221035p:plain

ここで一番右側のターミナルマークがあることに気づく. このボタンを押すと,PlatformIO のコマンド群が使える状態のターミナルが起動する. ここで次のコマンドを使うと,シリアルモニタをターミナルから起動できる.

platformio device monitor

これでターミナル上でシリアル通信が行えるので,一工夫して

platformio device monitor | tee output.csv

などとやれば,画面上に通信結果を表示させつつ CSV ファイルに通信内容を流すことができる.

Conclusion

データ取得がはかどりますね.