[14日目] BlueNinja用 汎用即席型プログラム「HyouRowGan」


こんにちは、BlueNinjaのソフトウェアの中の人、組み込みソフトウェアエンジニアの奥原です。
なにかそれっぽいタイトルにしていますが、テレビシリーズの20話まで見て音をあげてそこから見られていないヘタレだったります…

さて、本日はBlueNinjaをすぐに動かすことができるプログラム「HyouRowGan」(兵糧丸)作りましたので紹介します。

HyouRowGanとは

BLE経由で9軸モーションセンサーの計測値取得、気圧センサーの計測値取得、GPIOの入出力、PWM出力が行える汎用のプログラムです。

HyouRowGanのソースコードとビルド済みの実行ファイルは以下のリンクで公開しています。

また、BLEの対向側のAndoroidのサンプルアプリケーションも公開しています。

ライセンスはApache License 2.0です。
ソースコードをサンプルとしても使っていただけます。

なぜ、HyouRowGanをつくったの?

BlueNinjaの開発環境の構築は手順も多く結構大変です。
サポートへのお問い合わせも「開発環境の構築に困っている」という内容がほとんどという状況でした。
また、スターターガイドで紹介しているのはLチカのプログラムのみで、Bluetooth LEやモーションセンサーを使う場合には「ミニ四駆テレメトリ」などのソースコードを参考に自力でプログラムを作成しなくてはいけません。

BlueNinjaをBlueNinjaらしく動かすためのハードルが高すぎると感じていました。
根本的な解決には時間などなど、いろいろと必要ですので、それまでにできることの一つとして「HyouRowGan」をつくりました。

HyouRowGanの機能

BLEのペリフェラルとして動作し、

  • GPIOの入力(4bit)、出力(4bit)
  • PWM出力2ch
  • 9軸モーションセンサーの計測値取得
  • 気圧センサーの計測値の取得

の機能を提供します。

ブレイクアウトボードのピン配置は以下のようになっています。

独自のGATT Profileを実装していますが仕様も公開していますので、独自にBLEセントラル側のプログラム作っていただき使用することができます。

実例

HyouRowGanとAndroidアプリを使った実例を紹介します。

GPIO

BlueNinjaのDigital InputにスイッチをDigital OutputにLEDをつないでスマートフォンアプリからコントロールします。

PWM

RCサーボのコントロール信号をPWM0とPWM1につないでスマートフォンからコントロールします。

モーションセンサー

モーションセンサーで取得したデータをスマートフォンに送りグラフを書きます。

気圧センサー

気圧センサーで取得したデータをスマートフォンに送りグラフを書きます。
BlueNinjaを高く掲げると気圧が下がる傾向が、足元まで下ろすと上がる傾向が見えます。

おわりに

現状の「何とかしたい」をちょっと何とかするためにHyouRowGanを作りました。
少しでもユーザーの皆様のお役にたてば幸いです。

近々予定しているBSPのバージョンアップでは、Bluetooth LE Centralへの対応をリリースできそうな状況です。
Centralに対応するとBlueNinja同士で通信をおこなったり、ビーコンの検出ができるようになったりと利用の幅が広がります。

ソフトウェアの力で、BlueNinjaをより魅力的な製品にできるように頑張っていきたいと思います。

投稿者プロフィール

OKUHARA
OKUHARA
組み込みソフトウェアエンジニアです。
主にBlueNinjaを担当しています。
OKUHARA
About OKUHARA 5 Articles
組み込みソフトウェアエンジニアです。 主にBlueNinjaを担当しています。