ProcessingとArduino間でシリアル通信テスト...と言ってもオリジナリティはゼロ。
今回は、ProcessingとArduinoを接続する 2 – 時系列データの視覚化、Touche導入の内、『データの変化をグラフにプロット』の例を使わせて頂きました。
Firmataではなく、ハンドシェイク式でのシリアル通信とのことで一定の結果を得られる満足感がある上、汎用的に使えそうなので書き留めておくことにしました。
Arduino IDE 1.8.5を使っているため、グラフだけならプロッタもあるというのは承知していますが、Processingではカラーも使えるし、グラフのみではない汎用性という意味で比べ物になりません。
必要になるのは、Arduinoボードとポテンショメータ、光(CdS)センサ、10Kの抵抗、ブレッドボードを各1個とジャンパワイヤだけ。(もちろん、USBケーブルとPC、Arduino IDEもしくは代替も要るけど。)
これらの構成から、そしてリンク先のタイトルから当然、ポテンショメータを回す、光量を変えるという2つのパターンでProcessingによるグラフが描かれることになります。
前回、ProcessingからArduino回路上のLチカは試しましたが、ビジュアル効果は得られず、Processingと連携した意味があまりなかったのですが、今回は、「らしく」て、とても満足。
スケッチは、そのまま使わせて頂いているのでリンク先を参照。
新たな言語を覚える気力はない今日この頃ですが、Processingに関しては、データのビジュアル化、Arduinoととなると、これ以上なく相性の良い組み合わせと思われ、いつかは覚えなくてはとは思っていました。
まぁ、前から感じていたことですが、Arduino IDEでLCDやOLED用のスケッチを書いているのと似ているし、Arduino IDEは、そもそもProcessingに強く影響を受けていることもあり、親しみやすさもある、Arduino+Processingによるオシロやロジアナで見慣れてもいるので拒絶反応を示すほどではなく、今後もお世話になることでしょう。
ちなみに前回のLチカと今回など以前、シリアルポートのインスタンスを作ろうとSerial.list()[0]としたら、Debian(Linux)を使っている自身においては、期待する/dev/ttyUSB0にならず、他の配列要素を確認することもなく、固定値に書き換えたのですが、今回、リンク先のスケッチ通りSerial.list()[4]のまま、実行したら、あっさり、/dev/ttyUSB0が認識された...4(5番め)ならいけるのか、その時々で違うのか、/dev/ttyACM0だと何に...。
と思ったら、よく見るとProcessingのスケッチにprintln(Serial.list());と書くと下部のウィンドウに配列要素に格納されているシリアルポートが列挙されるってことか...、何れにしても自動設定する方法はなさ気。