2011年6月21日火曜日

Bluetooth は素人でも扱えるのか?

Bluetooth は、元々PC と比べて非力な携帯電話用の規格だったことから、最近のリッチなマイコンでも扱うことが出来るようです。

しかしプロトコルスタックやらプロファイルやらで、単純なシリアル通信をするだけでも、とても大変です。ここは先人の成果を多いに利用させていただきましょう。

Arduino でBT というと、BT のプロトコル/プロファイル部を隠蔽して、ただの無線シリアルアダプタとして使えるようにしたBT シリアルモジュール(→例 Bluetooth mate ※注意:技的認証なし)を使うのが一般的です。

さらに、USB ホストシールドでUSB BT アダプタを使う例もありますが、Arduino には荷が重そうです。

別の手段を探ってみると、PICの24F シリーズという16bit のPIC マイコンに、USB ホスト機能を搭載したものがあり、それを使ったUSB BT モジュール用のプロトコルスタックがありました。


それを利用して、Android 端末からBluetooth でキャタピラ車をコントロールする、という内容をhrdakinori さんという方が公開していたので、やってみました。

ソースは何も変更せずにそのまま組んだだけですが、こんな感じになりました。



このプログラムは、2つのモータを制御するIC (Toshiba TB6612FNG) をコントロールしているので、各チャンネルに回転方向用の(CW/CCW)2つの信号と、1つのPWM 出力が出ています。
PIC用、Android 用のソースコードは、hrdakinori さんのサイト、または上記の動画にリンクがあります。
PIC のCPUボードは、オプティマイズの PIC24USB を購入しました。

ちなみに、BT のプロファイルは SPP (Serial Port Profile) を使っていますが、iOS のSDK ではSPP を使えないので、そのまま応用することはできません。

1 件のコメント:

  1. Hello,

    I wanted to ask about this project. The communication between de PIC microcontroller and the Bluetooth Dongle is done by USB interface of the PIC or is done by the UART interface??

    I am checking the pin assignment but is not clear for me.

    Thank you very much

    返信削除