2012年9月11日火曜日

Android から Bluetooth 経由で RS232 信号をやりとりする


構成は

Android
 |
[Bluetooth]
 |
Bluetooth モジュール (Bluetooth Module - BlueSMiRF Gold)
 |
[シリアル通信 (CMOS レベル) ]
 |
RS232CインタフェースIC (ADM 3202AN)
 |
[シリアル通信 (RS232 レベル) ]
 |
クロ

Bluetooth モジュール には Sparkfun の Bluetooth Modem - BlueSMiRF Gold (https://www.sparkfun.com/products/10268) を使いました。

これは、Bluetooth を使ってデータを送受信し、そのデータを RX/TX ピンの接続先にシリアル通信で中継するモジュールです。

Sparkfun には他にもいくつか Bluetooth モジュール製品があり、
https://www.sparkfun.com/search/results?term=bluetooth&what=products

以下の製品でも同じことができます。
Bluetooth Mate Gold : https://www.sparkfun.com/products/9358
Bluetooth Mate Silver : https://www.sparkfun.com/products/10393

Bluetooth Modem - BlueSMiRF Silver : https://www.sparkfun.com/products/10269
Bluetooth Modem - BlueSMiRF HID : https://www.sparkfun.com/products/10938


Bluetooth Modem のシリアル通信の信号レベルは 0 〜 Vcc (Vcc は Bluetooth Modem を動作させるための電圧 Operating Voltage) です。Bluetooth Modem -BlueSMiRF だと Operating Voltage は 3.3V から 6V です(製品ページに書いてあります)。


シリアル通信では、この範囲の電圧を 0 と 1 に割り当てることで論理データ(0, 1 のデータ)を送ります。

どの範囲の電圧を 0 と 1 に割り当てるかでいくつかの論理レベルがあります。
(Logic voltage levels - Wikipedia http://en.wikipedia.org/wiki/Logic_level#Logic_voltage_levels)

・CMOS レベル
 Low (0) : 0V 〜 VDD / 2
 High (1): VDD / 2 〜 VDD
 * VDD = 供給されてる電圧

・TTL レベル
 Low (0) : 0 V 〜 0.8V
 High (1) : 2V 〜 VCC
 * VCC = 5V ± 10%


一方、RS232 の電圧レベルはこれとは異なります。
http://en.wikipedia.org/wiki/RS-232#Voltage_levels
・RS232 レベル
 Low (0) : +3V 〜 +15V
 High (1) : -3V 〜 -15V
 *-3V 〜 +3V は無効な範囲

クロの入力は RS232 レベルの信号になっている必要があるため、Bluetooth モジュールのシリアル信号のレベルを変換する必要があります。

今回は RS232C インタフェース IC (DIP) ADM3202AN を使いました。
秋月電子通商でソケットとコンデンサ付きのキットが売っていたので、これを利用しました。
http://akizukidenshi.com/catalog/g/gI-03030/

ここで注意するのは接続するピンです。

BTモジュール              ADM3202AN                                  クロ
RX -------------------- ROUT  --- 変換 ---  RIN      -------------------- TX
TX --------------------    TIN  --- 変換 ---  TOUT  -------------------- RX

ADM3202AN は信号のレベルを変換するだけなので、RX と TX をクロスさせません。
(ちょっとここではまりました。。。)


ということで完成

背中にバッテリーとミニブレッドボードを載せました

ブレッドボードちっちゃいよね
http://akizukidenshi.com/catalog/g/gP-05157/
他に白と黒もあります

左の突き刺さってるのが BT モジュール、右の IC がレベル変換です


Android と Bluetooth モジュールとの通信は
Y.A.M の 雑記帳: Android Bluetooth でシリアル通信(SPP)する Fragment 書いた
にまとめました。




0 件のコメント:

コメントを投稿