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にしている。
※2PRAMクリアについて