Android + Bluetooth + Arduino

公開日: 電子工作 | , ,

 以前書いた『気になる物』で紹介したBluetoothモジュールですが、本当に気になって実は少し前に発注してました。 もちろん、すぐに届いて手元に到着していたのですが、回路を作るのが面倒でしばらく放置していました・・・
そして、最近Arduinoなるものの存在を知り、極簡単な接続で実現出来ることに気づいたので、やっとのことで重い腰を持ち上げました。
そして、DoCoMoのアンドロイド携帯(HT-03A)で通信出来ることが確認出来たので、ご報告♪

BT-MOD100R 通電してLEDが点灯した所

 

購入したBluetoothモジュールはBT-MOD100Rと言う物で、こちらで購入しました。同時にアダプタボードも購入し、送料込みで合計9800円。 技適を受けてる物だけあって、結構な出費です・・・TーT
しかし、プリントされている技適の番号(006NYC0046)から調べると、このモジュールは元々雑誌の付録だったそうで、なんだか複雑な心境・・・発売当時に知っていれば間違いなく2~3冊は買っていたはず^^

Bluetoothモジュール BT-MOD100R

 

そしてArduino。
最も標準的と言われてる Arduino Duemilanove 328 利用。 大抵の販売店で3200円で売られています。・・・BTモジュールの3分の1です><
ArduinoをPCと接続するには、USB-B端子のケーブルが必要ですが、プリンター付属のケーブルが余りまくってるので、それを流用することに・・・

Arduino Duemilanove 328

 

ArduinoとBTモジュールの接続は、以下を相互に接続します。

Arduino BTモジュールアダプタ
Digital 3Pin 3 Tx
Digital 4Pin 4 Rx
POWER 5V 1 Vcc
GND 2 GND
Arduino Duemilanove

BTモジュールアダプタ

 

接続写真
実際に接続した写真
(ブレッドボードは、通電確認用の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が点滅します。

Acknowrich
PCとArduinoでの動作の確認はAcknowrichと言うソフトで確認しました。
上のCOM40がBluetooth 下のCOM5がArduino
COM40からデータを送ればCOM5に表示され、COM5からデータを送るとCOM40に表示されて、動作は完璧!

次に、HT-03AとArduinoでの動作確認は、Android + Arduino BT (なんとなく実験 with SIProp開発記)で公開されている物を利用させて頂きました。

BT_Arduino

acknowrich

Sendボタンを押して、PC上で"send"が受信出来ることを確認。
 

と、以上で今回の実験は終了です。
Android + Bluetooth + Arduino でシリアル通信が可能であることが確認出来たので、アンドロイド端末でコントロールできる自作回路が色々と作れそうです。

<追記>
この記事で紹介したモジュール以外にも、AndroidとArduinoの接続で使えそうなBluetoothモジュールを調べてみました。

 

関連記事

no image

米粒AVR(ATtiny10)

通称「米粒AVR」で知られるTiny10を使ってみたくて、秋月の通販で買ってみました。 超小型

記事を読む

no image

米粒AVRでシリアル通信(ただし送信だけ)

米粒AVR(ATtiny10)にUART機能は搭載されていないので、シリアル通信を行う為には自前

記事を読む

Raspberry Pi ロゴマーク

Raspberry Piのリビジョン

リビジョンの種類 現在、Rapsberry Piにはリビジョン1とリビジョン2と呼ばれる2つの

記事を読む

no image

米粒AVRでアナログ入力を試してみた

米粒AVR(ATtiny10)に搭載されている8ビット4チャンネルのアナログ入力を試してみました

記事を読む

no image

S2 Resistor Color Code 公開しました。

このアプリは、抵抗のカラーコードから抵抗値を素早く見る為のAndroidアプリです。 4本帯と、5

記事を読む

no image

AndroidでSoftModemを試してみた

今回、ここで言うSoftModemとは、携帯電話のオーディオ端子(イヤホン・マイク端子)を利用し

記事を読む

no image

AndroidにPS2キーボードを繋いでみた

@yishiiさんの素のAndroid端末を外部のキーにより操作する実験と言う記事を参考に、Ardu

記事を読む

thermometer overlay

パソコンで温度計 #4

前回までに作ったPC温度計のログデータを、計測と同時に撮影した映像にオーバーレイ表示(スーパーイ

記事を読む

no image

PICでMicroBridgeをやってみた

今回は、@yishiiさんが公開されている、PIC24FJ64GB002用のMicroBridgeソ

記事を読む

soundIR 受信機 回路図

赤外線リモコン受信機(イヤホンジャック接続)の回路

  前回からだいぶと時間が経ってしまっていますが、今回はイヤホンジャック接続のリモコン受

記事を読む

Comment (3件)

  1. snowlets

    私もarduinoのシリアル接続にbluetoothを使いたいと探していたところ、こちらのページを見つけました。同じモジュールを購入して、通信はできたのですが、通信速度の変更(115200bpsへ)がうまくいきません。マニュアルではバイナリでコマンドを送信するよう書かれているので、arduinoのsetup()でserial.print(0×02, BYTE);…のようにコマンドのバイナリデータを送信するようにしたのですが、どうも反映されていないようです。もし通信速度を変更された経験があれば、コマンドの送信方法を教えていただけないでしょうか?よろしくお願いします。

  2. 町田 健治

    貴重な情報をありがとうございます。
    このBluetooth KITを用いて、キーボードは作れますでしょうか?

    1. Futaba

      コメントありがとうございます。
      この記事の部品を使って作るとなると、HIDプロファイルのキーボードを作るのは無理だと思います。
      頑張れば、SPPプロファイルのキーボードなら作れるんじゃないかと思います。

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計
Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

SDカード・マイクロSDカード
ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月電子 リアルタイムクロック(RTC)モジュール
秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑