今回は、秋月電子で販売している「RN-42使用 Bluetooth無線モジュール評価キット」を購入してみました。Bluetoothを介してシリアル通信ができます。さっそく使ってみて、Arduinoと連携させました。
準備1: ArduinoとBluetooth無線モジュールの接続
まず、RN-42使用 Bluetooth無線モジュール評価キットに
- ピンヘッダをハンダ付け
- DIPスイッチの保護シールをはがして、すべてOFF側にセット
接続のポイントは下記の通りです。データシートをよく見て接続してください。
- ArduinoとBluetoothモジュールの3.3V同士, GND同士を接続
- ArduinoとBluetoothモジュールのTXDとRXDはクロス接続
- BluetoothモジュールのRTSとCTSは直接つなぐ (文献[1][2])
- Arduinoの3番ピンとBluetoothモジュールのResetを接続 (文献[1][2])
準備2: Arduino用ソフト
いったん、Digitalピンの0,1番を外します。Arduinoにソフトを書き込む際に、Digitalピンの0,1番がつながっているとソフトを書き込めません。
Arduinoには下記のファイルを書き込みます。
int BTReset = 3; int LED = 13; char inByte = 0; // incoming serial byte void setup() { // make the Bluetooth Module reset: digitalWrite(BTReset, LOW); delay(100); digitalWrite(BTReset, HIGH); delay(500); // initialize serial communication at 115200 bits per second: Serial.begin(115200); pinMode(LED, OUTPUT); // make a LED pin output } void loop() { // if we get a valid byte, read analog ins: if (Serial.available() > 0) { // get incoming byte: inByte = Serial.read(); if (inByte == '0') { digitalWrite(LED, LOW); } else { digitalWrite(LED, HIGH); } Serial.println(inByte); delay(100); } delay(1); // delay in between reads for stability }
書き込めたら、再度、Digitalピンの0,1番を接続してください。
MacからBluetooth接続してシリアル接続
まず、Macの"Bluetooth"環境設定を開き、RNBT-DF42とペアリングします。
次に、ターミナルを起動してください。ターミナル中で
screen /dev/tty.RNBT-DF42-RNI-SPP 115200
と入力し、シリアルモニタ(screen)を起動します。Bluetooth無線モジュールの通信速度(ボーレート)はデフォルトで115.2kbpsなので、指定しておきます。
※なお、デバイス名の"RNBT-DF42-RNI-SPP"は変わる可能性があります。その際は /dev内を探してみてください。
※なお、デバイス名の"RNBT-DF42-RNI-SPP"は変わる可能性があります。その際は /dev内を探してみてください。
シリアルモニタ起動中に、キーボードの'0'(ゼロ)を押すとArduinoのLEDが消灯します。キーボードの'0'以外を押すとLEDが点灯します。※下記写真では点灯状態が分かりやすいように、13ピンに赤色LEDを差しました。
シリアルモニタを終了するにはキーボードで "Ctrl+A Ctrl+¥" を入力し、"y" を押せばOKです。
参考文献
[1] 『PICで楽しむBluetooth・Wi-Fi機器の自作』後閑哲也著 技術評論社 (p.56, p.63)
[2] "Bluetooth Data Module Command Reference & Advanced Information User’s Guide" Roving Networks. 2013 (p.45の真ん中あたり 3.3.0.2のところ)
[3] "タブレットとつながる!カンタンI/O実験ボードの製作" 後閑哲也 インターフェース 2013年5月号 (p.59-61) ← 本書の内容(接続法やソフトウェア)が文献[1]とちょっと違います。文献[1]のほうを参照した方が良さそうです。
すばらしいです。
返信削除私は現在BT周辺に手を出そうと思っており、安価なモジュールで実験をしようと思っていました。ちょうどRN42に目をつけて、検索をしていたところ、ナイスな記事が・・・
RN42を購入しても、問題ないことがわかりました。
これからも、どうぞブログの更新を続けてみてください。
励ましの言葉をいただき、とても嬉しいです。
返信削除どうもありがとうございます。