mbed を使ったロボット作成 第4回

BLE(Bluetooth Low Energy)を使ったリモコンを作ってみる

 

はじめに

ロボット作成という連載で書いていますが、ロボットの頭脳となる部分をどうするかを現在悩んでいます。
今時の技術を使うならば、AIとかになるんでしょうけど、利用するにあたりネットワーク接続が前提になるので、ネットワークが使えない ロボット単体で動作するスタンドアローン状態では、自律的に動作できる方がいいのかなと思っています。
その場合、ロボット本体にそこそこのスペックが求められ、個人で開発するのは大分厳しいなぁと思っているのです。
最終形態をどうするかは先送りにして少し試してみたいことがあります。
それは、ロボットを無線でリモコン動作させるということです。
幸い、現在使用しているmbedのマイコンボードには空きポートがあるので、「ここに無線コントローラを接続すれば、なんとか通信できるはず」ということで始めてみます。
本格的は無線通信をするには、ラジコンのプロポみたいなのが必要でしょうが、
マイコンという省電力・省スペースが求められる環境で適したデバイスを調べてみると、BLE(Bluetooth Low Energy)というキーワードが引っ掛かりました。
このBLEを使いマイコンと無線通信するコントローラを作成してみようと思います。

BLEモジュールについて

BLEモジュールは数多く出ていますが、今回使用するのは、比較的制御が簡単な浅草ギ研のBLESerial3というモジュールを使用します。

製品名 BLESerial3
メーカー 浅草ギ研
型番 Bluetooth 4.0 Smart
概要 ・SSIDの切り替えが16種類ある・iPhone及びAndroidと通信可能・3.3VのUARTインターフェース
値段 4,320円

BLESerial3の通信インターフェースとなるUARTのポートをマイコンに接続し、電源を供給すれば、簡単に使用することが可能となります。

mbedとの接続は以下のとおり

BLE Serial3のTポートをマイコンのUART6のRxポートへ、RポートをUART6のTxポートへ接続します。
このように接続することで、マイコンで標準搭載さいているUARTを制御することで通信制御が可能となります。

システム構成について

システム構成の概略は以下のとおり。

操作部となるコントローラはiPhoneを使います。
iPhoneのBluetoothとマイコンのBLE Serial3をペアリングし通信可能状態にします。
BTとBLE間でデータ通信することでマイコンの制御を行います。

ソフトウェアについて

マイコン側のソフトウェアについて

UARTで受信した結果をコンソールに出力するといった単純なプログラムになっています。

iPhone側のソフトウェアについて

正直、iPhone側のアプリ開発は専門外なので、詳しい後輩に色々と聞いたところ、「JavaScriptで制御できますよ!」とアドバイスをもらい、調査したところ、Web Bluetooth APIを発見。
JavaScriptからiPhoneのBluetoothを制御できるようです。
但し、すべてのブラウザでサポートしているわけではないようで、今回は、一番動きが良いブラウザであるWebBLE(有料)を使い動かします。
以上より、簡単なコントローラを作成しました。

画像イメージ

画像イメージ

※画面のコードは簡単なHTMLなので割愛します。

 

実行結果

 

Connectボタン押下 ▲ボタン押下 マイコン側のコンソール
 no4-04  no4-05  no4-06
iPhoneのBuletoothのサービスを使ってマイコンのBLEに接続。
表示しているブラウザはWebBLEです。
ボタン押下でコマンド(0x01)を送信。送信後、アラートで送信データを表示。 マイコン側で受信したコマンド(0x01)をコンソール出力

▲ボタン押下の結果のみ表示していますが、別のボタンでもボタン毎のデータ受信ができています。
ここまで出来ていれば、コントローラとしては十分だと思います。
後は、コマンドに該当する動きを決めてやれば良いだけとなります。
どういう動きにするかは、また別の機会に考えてみたいと思います。
以上。

【前回分 参考】
mbed を使ったロボット作成 第1回
mbed を使ったロボット作成 第2回
mbed を使ったロボット作成 第3回

ホームページ http://www.ois-yokohama.co.jp

facebook   https://www.facebook.com/orientalinformationservice/