lab/技術情報

android と ARDUINO と Bluetoothと

Androidでなんかおもろいことできんかなと思っていたところ、Bluetooth経由でARDUINOを動かせることを知り早速チャレンジ。

目次

design

ANDROID端末(HTC Desire)からBluetooth経由でARDUINOをコントロール。ARDUINOからはモータを駆動し、ミニカーを走らせて見ようというもの。

ANDROID

Google提供のANDORID SDKでプログラムを書く。ARDUINOをコントロールするにはBluettoothのSPP(serial port profile)を実装すればよいらしい。 幸いANDROIDのAPIにはこれが用意されている。よってデバイスの捜索とコネクションあたりのコードを書けばそれなりに動く。

Bluetooth

Bluetoothチップは電波法に抵触するブツであるだけに公的機関の技術認証を得たものは非常に高価! そこで怪しげな中国輸入品を扱うサイトで調達することとした。
http://szparts.com/?pid=19584564 1枚¥3950円。日本で在庫を抱えているのか、注文後中一日で到着。
電子工作初心者でBluetooth通信以外の箇所でトラブルを抱えたくなかったため、USB接続で電源供給&シリアル通信できるタイプのものをチョイス。 windows PCに接続すると仮想COMポートとして動作してくれるため、デバッグは比較的容易。 単純にANDROIDとARDUINOをつなぎたいだけならこちらの
http://szparts.com/?pid=19584589 1枚3750円
チップでいいんだろうけど。今思うとデバッグは至難だっただろうなと。

たまたま手元に転がっていたBluetoothUSBドングルをPC1号機に、調達したBTchipをPC2号機に挿す。ドングル側でデバイスを捜索し、BTChipとペアリング。 両方のPCでTeraTerm?を起動して1号機でキーをたたくと、2号機の画面に出力された。逆も成功。てなわけで動作確認完了。

今度はPC1号機ではなくAndroid端末からテスト。ペアリングは無事成功。 つづいて、SPPを実装しているターミナルアプリケーションをAPPストアからダウンロード。先ほどのPC間のテストと同様に通信可能であることを確認。 ほいで、自作ANDROIDプログラムからの動作テスト。あれなんかうまくいかんぞ?デバイスのUUIDを指定するところがダメらしい。 WindowsPCにBluetoothChip?をつないだときのデバイスID(だったか?)を指定するとうまくいった。この辺はBluetoothプログラミングをもうちょい知らんといかんな。 んだけど、本題ではないのでUUIDを直接指定することで華麗にスルー。

ARDUINO NANO

こいつもUSBで電力供給できることを大前提に選定し、千石電商のリアル店舗@秋葉原で調達。 BTchipからのシリアル通信を受けてモータをコントロール。 マイコンに書き込むプログラムは無料の開発環境をダウンロードして:http://www.arduino.cc/en/Main/Software 。 ARDUINOとPCをMINI USBで接続し、C言語で書いたプログラムを転送するだけでOK。すげー簡単だ! BTChipからの出力をARDUINOでの入力とし、モータ駆動したりLED光らせたりのコードを書いてみた。

実際にモータを駆動しようとしたところ、ARDUINOからの出力だと電力不足のため、別途モータコントローラを調達して駆動した。

駆動部(ミニカー)

TAMIYA製のギヤボックス付きモータキットを購入。値段の割りにギヤボックスはしっかりとつくってあって、 ギヤ比が4パターンから選べたりした。 本課題ではゆっくりでも着実に動いてほしいので、最大ギヤ比のセッティングとした。

result

ANDROID→BTchip→ARDUINO→モータ と動作させることに成功。後で動画さらします。 出先でiPhoneを充電できる!みたいな「乾電池→USB電源供給キット」を購入し、PCやAC電源がなくても機器を駆動できるようにした。

感想・・・

試行錯誤しながらの製作であったため、家で開発しては不足部品を買いに秋葉原に走ったり秋月のネット通販を利用したり、、、 苦労の分だけ完成時の感動は大きいですな!

今後

単純に車が走るだけじゃなく、なにがしか意味のあることにこのトルク(回転力)を活かせないか、検討中。

comment

#comment_kcaptcha


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-22 (水) 23:14:00 (3220d)