ArduinoとAndroid端末の通信を行う前段階として、ArduinoとPCにて通信を行おうとしたところ、うまくいかない。
まだ解決していないがメモ。うまく行ったら記事更新します。
6/26追記:無事通信できたのでまとめなおしました。
環境
- Arduino Uno
- IDE 1.0.5
- Bluetoothモジュール RN41
- Mac OS 10.9.3
手順
基本的にhttp://thinkit.co.jp/story/2013/03/06/3995を参考とした。
RN41とArduinoを接続
- RX1(受信器)⇒TX(送信機)
- TX⇒RX
- vcc⇒vin※1
- GND⇒GND
残り2本のピンは使わない
Arduinoにプログラムの書き込み
- プログラムを書き込む際にはTXとRXは外しておく(書き込めない)。
- プログラムは通常のシリアル通信と同様。Bluetoothのバンドがデフォルトで115200になっているので、シリアル通信のバンド115200にセットするだけでよい。
//original http://thinkit.co.jp/story/2013/03/06/3995/page/0/1 //n押すとArduino付属の13番のLEDが光り,fを押すと消える void setup() { Serial.begin(115200); pinMode(13, OUTPUT); } void loop() { if (Serial.available() > 0) { char c = Serial.read(); if (c == 'n') { digitalWrite(13, HIGH); } else if(c == 'f') { digitalWrite(13, LOW);} } }
PCにてBluetoothをペアリング
- 環境設定からbluetoothを開く
- 対象の端末を選択(自分はRNKS-CN-39)
- ペアリングのパスワードは初期設定1234
- MacOs10.9.3では参考サイトのBluetoothの「シリアル通信の編集」ができなかったが、できなくても問題なく接続できた
- 後述するが非常に不安定であり、一度「未接続」になると以下手順が必要だった(めんどくさかった)
- いったんRNKS-CN-39を削除
- bluetoothを切る
- 再ペアリング(パスワード入力)
通信
- ターミナルにて
screen/ dev/tty.RNKS-CN-39
と入力(RNKS-CN-39は自分のやつにあわせてください) - nを入力
ハマったところ
- 文字の送信ができない
- プログラムは正常に書き込まれている(通常のUSBを通じたシリアル通信では動作)
- Bluetoothの接続はできている
- n入力後could not find PTYとエラーが出る
- Ztermでも試してみたがだめ
原因/解決法
単純に接続が不安定すぎて、未接続の状態になっていたようだ。
Mac側の問題であり、再起動・PRAMクリア※2を行うことで解決できた。
注
※1 vinは外部電源(USBポートではなく)を使う場合に使うポートのようだ。今回はUSBから給電しているためvinを使う必要はないと思われるが、今後のこと(bluetooth使うんだから動かせる電源につなぐっしょ?)を考えてvinにしている。
- http://www.senio.co.jp/bbs/viewtopic.php?f=7&t=85