経緯

Arduinoでスイッチの情報を取得して、openFrameworksに何番がONで何番がOFFなのか、データを送るときに、bit列を使おうと思った。理由は、なんとなく頭良さげだから。ひゃっほー。1

初めてだったこと

  • bitで情報をやりとりする
  • openFrameworksとArduinoの通信

いつもはFirmata使ってたし、データを送る先はProcessingしか使ったことがなかった。

今回使う回路

13番ピン-6番ピンに7つのスイッチを接続して、それぞれ、 ** ONのときHIGH, OFFのときLOW ** になるとする。
便宜上、13番ピンに接続されたスイッチをSW0, 12番ピンに接続されたスイッチをSW1, … , 6番ピンに接続されたスイッチをSW6と名前をつける。

やり方

方針としてそれぞれの状態を二進数として表すことにする。

例えば、SW0とSW3とSW5がONとしたとき、

を送る。

Arduino側のプログラム

地味に最後のSerial.write()で詰まったSerial.print()は文字列を送るためのもののようで、数字を文字列として扱ってしまうみたい。

openFrameworksのプログラム

受信するためのArduinoReceiverというクラスを作った。

ArduinoReceiver.h

ArduinoReceiver.cpp

ArduinoReceiverの使い方

ofApp.h

** ofApp.cpp **

まとめ

  • bitを使うと頭良さそう。あと満足感がなんとなくある。
  • Serialはそんなに怖くない。
  • Firmataは便利だけど、Serialにすると、Arduinoで細かい処理ができるから幸せ。

  1. 馬鹿っぽい