Top Page Index About Link Mail Form このページの応用機器製作します

Bluetoothで WILLCOM W-SIMを使う実験


WSIM-BTと DDと nine

概要

 WILLCOM W-SIMはそれ自体が電話機であり、モデムでもあり、RS-232Cのようなシリアル信号で制御できることはある程度知られていましたが、コネクタがなかなか入手できませんでした。chip1stopで入手できるとの情報もあったのですが、わたしが問い合わせてみると在庫無しと言われました。

 そんな昨今、「マイコン工作実験日記」なるブログを見つけました。この方はなんと、W-SIMで音声端末を自作されています。興味深く読ませていただきましたが、その中に W-SIMコネクタは MOUSERで売っている(サイトで W-SIMと検索すると出てくる)との記述があったのでわたしも注文・入手できました。これさえあればいろいろ遊べます。というわけで Bluetoothでつないでみることにしました。

WSIM-BT システムブロック図

 こちらがブロック図です。Bluetoothモジュールストロベリー・リナックスSparkFunで扱っている物です。買ってみてわかったのですが、これはまたずいぶんとお手軽なモジュールでした。Bluetoothのややこしいプロトコルはモジュール内部で全て処理されるので、電源を入れればそのまま接続待ち状態になり、パソコンで Bluetooth接続すれば 9600bpsのシリアル信号でパソコンとモジュールの TX/RX信号で通信できるようになります。

 今回は W-SIMをつなげてパソコンからは単なるモデムのように認識させるのが目的なのでこのモジュールを買ったままではさすがに使えません。それでこの図のようにマイコンを搭載、そいつで最初に Bluetoothモジュールにコマンドを送り、各種設定をして Bluetooth接続待ち状態にします。それからバッファを ONにして Bluetoothモジュールと W-SIMが直接やりとりできるようにするだけです。マイコンは最初の設定が終わって以降、状態に応じて LEDを点滅させるだけで、通信には直接関りません。

Bluesoleilで W-SIM/BTを認識・接続した状態  以上により、Bluetoothを通じて W-SIMをモデムとして使うことに成功しました。パソコン側からは Bluetoothの仮想シリアル信号の先にモデムがつながっているように見えますので、OSを問わずに使えます。右の画像は WindowsXP + Bluesoleilで認識・接続した状態です。Ubuntu Linuxの場合はこちらのページの方法でつなげました。

 Bluetoothのシリアル接続DD(WS002IN)でのダイヤルアップ (Deviceは /dev/ttyUSB0 → /dev/rfcomm0 にする)

 消費電流を測ってみましたが、待機時でも 100mA近く流れているようです。通信時のピークは 500mAをかるく越えているかもしれません(実は電流計の分の電圧降下で電圧が保持できずに落ちてしまうので正確に測定できていない)。W-SIMは通信時に 200mA程度流れるらしく、それに加えて Bluetoothの電流が流れ、更に DC-DCコンバータで電圧を上げているのでそれらの電流の合計の 1.5倍以上が電池から流れているはずです。けっこう電気を食うので、電源を入れたままの使い方には向かないでしょう。また、この実験の追試をする人は電源には注意してください。DC-DCコンバータで小さなコイルを使ったりすると動かないかもしれません。

 消費電流は、待機時 100mA、通信時 500mA程度と見ておけばいいでしょう。2000mAHの Ni-MH電池を使ったとすれば、待機時間 20時間、連続通信時間 4時間程度ということになります。いざというときはアルカリ電池を買って使う方法もありますし。

追実験について

 追実験や検証をされる人の為に回路図とファームウェアとそのソースを置いておきます。

 →回路図(png)
 →ファームウェア・ソース 2008.2.9(zip)

 念のため、これによって何か不具合が発生したり損害を被ることがあったとしても当方は責任を負いません。

 上記ファームでは PINコード認証と暗号化にも対応しています。ATtiny2313の内蔵 EEPROMのアドレス 10h(16)から PINコードを ASCIIコードで格納したうえで、01hに 1を書くと PINコード認証、2を書くとそれに加えて暗号化も行われます。と書くとなんかすごいことをしているみたいですが、実際は Bluetoothモジュール自体にその機能があるのでそれを有効にするだけです。

 ポート(チャンネル)番号を変更できるようにしました。EEPROMアドレス 02hに 1〜30を書くとそのポート番号を使用します。それ以外では 1になります。

 ↓PINコード(1234)認証・暗号化あり、ポート番号 3の設定例。PINコードは最大 16文字までOK。

avrdude> read eeprom
>>> read eeprom
0000  ff 02 03 ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0010  31 32 33 34 ff ff ff ff  ff ff ff ff ff ff ff ff  |1234............|
0020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
0030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|

中を見てみる

裏蓋を開けた図

 ケースはタカチの SW-65Bを穴あけ加工して使っています。このシリーズは安価で入手しやすいのでよく利用してます。その裏蓋を開けるとこうなっています。単三型の Ni-MH電池あるいはアルカリ電池で動作します。

裏蓋を開けて電池を抜いた所

 電池を抜いた所。向きを間違えないようにプリンタで印刷したラベルを貼っています。

基板の写真

 基板をケースから引っ張り出した所です。小さなケースに納めるために CPU(ATtiny2313)やバッファ(74VHC244)はフラットタイプを使い、Bluetoothモジュールも購入時についていたピンヘッダを抜いてあります。ケースを一回り大きな SW-75B/Gを使えば通常の DIP部品でも組み立てられるかもしれません。

 LEDはマイコンで制御するのでどれがどれでもいいのですが、以下のようになっています。