Raspberry PiとArduinoでシリアル通信をしてみた。
Arduinoには、シリアル通信をエコーするプログラムを書き込んでおく。
void setup()
{
Serial.begin(9600);
while (!Serial) {
}
}
void loop()
{
if (Serial.available()) Serial.write(Serial.read());
}
Raspberry PiをWiFi接続できるようにしてあるのでsshでログイン。
cuコマンドを入れる。
$ sudo apt-get install cu
ArduinoとはUSBケーブル一本つなぐだけでOK。
dmesgを確認すると、ttyACM0がそれっぽい。
$ dmesg
...
...
[89367.152516] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device
ACMとかCDCってなんだ?と思ったら、こちらのページによるとUSB上でRS-232Cを使うためのクラスみたいです。
cuコマンドでArduinoと通信する。
$ cu -l /dev/ttyACM0 -s 9600
Connected.
hogefuga~.
Connection to 10.0.1.26 closed.
入力した文字がそのままターミナルに出力される。
終了するときは~.(チルダドット)。
sshも終了されてしまうが。
とりあえず、これでRaspberry PiとArduinoでシリアル通信の確認ができる。
あとはもう少しArduino側のプログラムを書いてやれば、Raspberry PiからArduinoにつながったセンサーのデータを自由に読み出したりアクチュエーターを動かしたりすることができるようになると思う。