Android + Bluetooth + Arduino
2009年12月27日
Tweet
以前書いた『気になる物』で紹介したBluetoothモジュールですが、本当に気になって実は少し前に発注してました。 もちろん、すぐに届いて手元に到着していたのですが、回路を作るのが面倒でしばらく放置していました・・・
そして、最近Arduinoなるものの存在を知り、極簡単な接続で実現出来ることに気づいたので、やっとのことで重い腰を持ち上げました。
そして、DoCoMoのアンドロイド携帯(HT-03A)で通信出来ることが確認出来たので、ご報告♪
購入したBluetoothモジュールはBT-MOD100Rと言う物で、こちらで購入しました。同時にアダプタボードも購入し、送料込みで合計9800円。 技適を受けてる物だけあって、結構な出費です・・・TーT
しかし、プリントされている技適の番号(006NYC0046)から調べると、このモジュールは元々雑誌の付録だったそうで、なんだか複雑な心境・・・発売当時に知っていれば間違いなく2~3冊は買っていたはず^^
そしてArduino。
最も標準的と言われてる Arduino Duemilanove 328 利用。 大抵の販売店で3200円で売られています。・・・BTモジュールの3分の1です><
ArduinoをPCと接続するには、USB-B端子のケーブルが必要ですが、プリンター付属のケーブルが余りまくってるので、それを流用することに・・・
ArduinoとBTモジュールの接続は、以下を相互に接続します。
| Arduino | BTモジュールアダプタ |
| Digital 3Pin | 3 Tx |
| Digital 4Pin | 4 Rx |
| POWER 5V | 1 Vcc |
| GND | 2 GND |
![]() |

実際に接続した写真
(ブレッドボードは、通電確認用のLEDを光らせる為に使用しただけ。BTモジュールは上に置いてるだけで、ブレッドボードには刺さっていません。)
そして、シリアル通信のテストに利用したArduinoのソースです。
NewSoftSerial(Arduinoライブラリ)を利用しています。
#include <NewSoftSerial.h>
unsigned int count=0;
NewSoftSerial mySerial(4,3);
void setup()
{
pinMode(13, OUTPUT);
// PC側
Serial.begin(9600);
Serial.flush();
// Bluetooth側
mySerial.begin(9600);
mySerial.flush();
}
void loop()
{
// PC側からのデータ受け取り処理
if (Serial.available() > 0)
{
int inByte = Serial.read();
mySerial.print((byte)inByte);
}
// BT側からのデータ受け取り処理
if (mySerial.available() > 0)
{
int inByte = mySerial.read();
Serial.print((byte)inByte);
}
// 動作確認用
count++;
digitalWrite(13, (count&0x1000)?HIGH:LOW);
}
動作は、PC(USB-COMM)からデータを受信するとBluetooth(RFCOMM)へ送信し、逆にBluetoothからデータを受信するとPCへ送信するだけの簡単な物です。
ちなみに、動作確認の為にPin13のL LEDが点滅します。

PCとArduinoでの動作の確認はAcknowrichと言うソフトで確認しました。
上のCOM40がBluetooth 下のCOM5がArduino
COM40からデータを送ればCOM5に表示され、COM5からデータを送るとCOM40に表示されて、動作は完璧!
次に、HT-03AとArduinoでの動作確認は、Android + Arduino BT (なんとなく実験 with SIProp開発記)で公開されている物を利用させて頂きました。
Sendボタンを押して、PC上で"send"が受信出来ることを確認。
と、以上で今回の実験は終了です。
Android + Bluetooth + Arduino でシリアル通信が可能であることが確認出来たので、アンドロイド端末でコントロールできる自作回路が色々と作れそうです。
<追記>
この記事で紹介したモジュール以外にも、AndroidとArduinoの接続で使えそうなBluetoothモジュールを調べてみました。
Category: Androidと電子工作
TrackBack URL :







私もarduinoのシリアル接続にbluetoothを使いたいと探していたところ、こちらのページを見つけました。同じモジュールを購入して、通信はできたのですが、通信速度の変更(115200bpsへ)がうまくいきません。マニュアルではバイナリでコマンドを送信するよう書かれているので、arduinoのsetup()でserial.print(0×02, BYTE);…のようにコマンドのバイナリデータを送信するようにしたのですが、どうも反映されていないようです。もし通信速度を変更された経験があれば、コマンドの送信方法を教えていただけないでしょうか?よろしくお願いします。
貴重な情報をありがとうございます。
このBluetooth KITを用いて、キーボードは作れますでしょうか?
コメントありがとうございます。
この記事の部品を使って作るとなると、HIDプロファイルのキーボードを作るのは無理だと思います。
頑張れば、SPPプロファイルのキーボードなら作れるんじゃないかと思います。