BlueNinja – Cerevo http://wp.blueninja.cerevo.com/ja oT製品がいますぐ作れる超小型モジュール「BlueNinja」 Fri, 16 Jun 2017 09:39:59 +0000 ja hourly 1 https://wordpress.org/?v=4.7.3 BlueNinjaをBLEセントラルにする https://blueninja.cerevo.com/ja/example/05_ble_central/ Wed, 15 Jun 2016 05:48:19 +0000 https://blueninja.cerevo.com/ja/?p=269 Read More »]]> BlueNinja BSP RELEASE_160615以降で対応したTOSHIBA.TZ10XX_DFP.1.39.0では、スマートフォン等の様にBLEペリフェラルの検出と接続ができるようになりました。
HyouRowGanへ接続しMotionSensorServiceのNotificationを受信するサンプルプログラムを公開します。

ソースコード(GitHub)
ライセンスはApache License 2.0です。

サンプルプログラムの動作

サンプルプログラムは以下のように動作します。
1. LeScan(BLEデバイスの検出)を実行
2. HyouRowGanが見つかったらLeScanを停止した後、見つかったペリフェラルに接続
3. MotionSensorServiceを検索
4. Valueキャラクタリスティックを検索
5. Notificationを有効化
6. 受信したNotificationに含まれるデータをUSBシリアルへ出力
BlueNinjaCentral_20160615_140051
Notificationをサポートしているプロファイルであれば、ble_central.cで定義しているService UUID、Characteristic UUIDを変更することで対応できると思います。

制限/注意点

※サンプルプログラムですので動作保証はできません。製品等に使用する場合には、想定した仕様に合致するか事前に検証を行ってください。
※Notificationの頻度やバッテリー駆動時間等の性能の限界は調べていません。
※1パケットあたりのデータサイズはBLE規格の初期値20Byteが最大となります。
※複数台のペリフェラルへの接続は確認していません。

]]>
BlueNinjaでEddystoneビーコンをつくる https://blueninja.cerevo.com/ja/example/04_eddystone/ Mon, 18 Apr 2016 10:10:11 +0000 https://blueninja.cerevo.com/ja/?p=156 Read More »]]> BlueNinjaをGoogle Eddystoneビーコンとして動作させるサンプルです。

Eddystoneとは

Googleが公開しているBLEビーコンの規格です。
ファーマットはAppleのiBeaconのUUIDに相当するEddystone-UID、PhyscalWebの仕様にあたるEddystone-URL、機器状態の通知に仕様するEddystone-TLMがあります。

AppleのiBeaconに対して後発の規格でできることも似ていますが、仕様がオープンである点が特徴になります。

Eddystoneサンプルについて

サンプルプログラムでは、ほぼ1秒間隔でEddystone-UIDかEddystone-URL(ビルド時にマクロで選択)を送信します。
バッテリーの過放電を防ぐため電圧が下がる(2.91Vを下回る)と10秒間Eddystone-TLMで稼働時間等を通知した後、電源がOFFになります。
Eddystoneのサンプルとしてはもちろん、省電力機能のサンプルとしてもお使いいただけます。

省電力機能の使用

ビーコンはバッテリー駆動で長時間動作することが好ましいアプリケーションです。
LiPoバッテリーで長時間動作をさせるために、TZ1000BSPのTWiCの省電力管理機能を積極的に使用します。

省電力機能を使用しない場合、3[mA](=3000[µA])弱の電流が流れるところ、待機時に70[µA]前後、送信時に最大で125[µA]ほどに抑えることができました。
計算上、BlueNinja専用バッテリー(120[mAh])で一ヶ月以上動作します。

Eddystoneビーコンの受信

スマートフォンで受信

スマートフォンの場合、Eddystoneに対応したアプリを使うことで検出できます。

AndroidアプリのBeacon ScannerでEddystone-UIDを受信

AndroidアプリのBeacon ScannerでEddystone-UIDを受信

Raspberry Piで受信

Raspberry PiとUSBのBLEドングルの組み合わせで受信することができます。
Raspbian 8.0 + Bluez + node.js + nobleの組み合わせで動作するスクリプトを公開しています。
動作保証はできませんがサンプルとしてお使いいただければと思います。

Raspberry Pi B+ & BLEドングル

Raspberry Pi B+ & BLEドングル


Eddystone-UIDの受信

Eddystone-UID受信の様子

]]>
ニキシー管スマートウォッチの紹介 https://blueninja.cerevo.com/ja/example/002_nixie_watch/ Thu, 17 Mar 2016 04:00:56 +0000 https://blueninja.cerevo.com/ja/?p=158 Read More »]]> BlueNinjaの製品発表会でも注目を集めました、ニキシー管スマートウォッチを紹介します。

ニキシー管とは

ニキシー管は、主に数値を表示する表示器です。
7セグメントLEDや液晶が普及する前に使用されていました。
NixieTubeOffNixieTubeOn
真空管のような外見をしており、内部に0から9までの形をした電極があります。
そのうちの1つを点灯させることで、任意の数値を表示します。

1950年代から1970年代にかけて普及しましたが、扱いが容易な液晶やLEDに取って代わられ1990年代には全てのメーカで製造が終わってしまいました。
現在では僅かな在庫しか存在せず、入手が非常に難しくなっています。

ニキシー管スマートウォッチについて

ニキシー管を動作させるための昇圧回路と脈拍センサー、操作用のスイッチが実装された、約4cm四方のメイン基板にBlueNinja、LiPoバッテリーを搭載しています。
NixieSmartWatch_PCB
BlueNinjaにはスマートウォッチに必要なBluetooth LEやRTCなどの機能がありますので、最小限の回路を追加するだけで実現することができます。

BlueNinjaがニキシー管の表示制御、スマートフォンとのBLE通信、センサによる計測やユーザー操作への応答など頭脳の役割を果たしています。

スマートフォンとの連携

専用のAndroidアプリケーションによりスマートフォンとの時刻同期が可能です。
TimeSetter
将来的には、BlueNinjaの9軸モーションセンサー、気圧センサー、メイン基板の脈拍センサーから取得したデータからユーザーの動きを判定してニキシー管への表示を開始する機能やスマートフォンへの通知機能の搭載も考えています。

]]>
BlueNinjaのADCをつかってみる https://blueninja.cerevo.com/ja/example/003_adc12/ Thu, 03 Mar 2016 06:14:53 +0000 https://blueninja.cerevo.com/ja/?p=149 Read More »]]> BlueNinjaの12bitADCを使用するサンプルプログラムです。

2bitADC Ch0からCh3に入力された電圧に対応したデジタル値をブレイクアウトボードのUSBシリアルコンソールに出力します。
シリアルコンソールは9600bps、データ8bit、パリティなし、ストップビット1bitに設定されています。

配線/回路図

リファレンス電圧としてBlueNinjaから出力される3.3Vを使用し、10kΩの可変抵抗によりADCの入力電圧を変化させます。

配線図

配線図


回路図

回路図

ソースコード

ソースコードはGitHubで公開しています。
ライセンスはApache License 2.0です。
BlueNinja_ADCC12_example

]]>
BlueNinjaにアイサツしてもらう https://blueninja.cerevo.com/ja/example/002_ticker/ Thu, 03 Mar 2016 06:14:42 +0000 https://blueninja.cerevo.com/ja/?p=104 Read More »]]> スマートフォンアプリからBLEでメッセージを送信、BlueNinjaで表示するサンプルです。
BLEによるデータ受信、I2Cデバイスの使用、PWM出力の参考にしていただけると思います。
ble_ticker_hello_user-san
ソースコードはGitHubで公開しています。(Apache License 2.0に基づいてご自由にお使いいただけます)

必要なもの

BlueNinja側

サンプルを実行するためにBlueNinjaの他に以下の部品が必要です。

スマートフォン

BLEをサポートしたAndroid 4.4以降のAndroid端末にアプリのインストールが必要です。

組み立て

I2C接続LCDモジュールとアンプ基板にピンヘッダ等をハンダ付しておきます。
(I2C接続LCDモジュールはプルアップ抵抗を有効にしておきます)
配線は、以下の回路図をのとおり行ってください。
BlueNinja_ble_ticker_sch
PDF:BlueNinja_BLE_Ticker_sch

操作方法

CDP-TZ01B-B_SW

電源ON→BLEアドバタイズ

  1. SW1を長押しします
  2. BlueNinjaモジュールの赤色LEDが点滅を始めたらSW1を離します
  3. SW2を押します
  4. BlueNinjaモジュールの緑色LEDが点灯します
  5. スマートフォンアプリから接続します
  6. 接続すると緑色LEDが点滅します

スマートフォンアプリ

ss
“Hello!!”や”ByeBye!”ボタンを押すとそれぞれのボタンに対応したアイサツをLCDに表示してくれます。
また、FreeTextで指定した文字列をLCDに表示することができます。

電源OFF

  1. SW2を長押しします
  2. BlueNinjaモジュールのLEDが消灯します
]]>
BlueNinja用 即席プログラム「HyouRowGan」 https://blueninja.cerevo.com/ja/example/000_hyourowgan/ Thu, 25 Feb 2016 05:26:07 +0000 https://blueninja.cerevo.com/ja/?p=47 Read More »]]> BlueNinjaをすぐに動かすことができるプログラム「HyouRowGan」(兵糧丸)紹介します。

HyouRowGanとは

BLE経由で9軸モーションセンサーの計測値取得、気圧センサーの計測値取得、GPIOの入出力、PWM出力が行える汎用のプログラムです。
HyouRowGanと対向のAndroidのサンプルアプリを公開しています。

実行ファイルだけではなくソースコードもApache License 2.0で公開していますので、ライセンスの範囲内でご自由にカスタマイズしてご使用いただけます。

HyouRowGan (※2017/06/07更新)

Androidサンプルアプリ

※Android 4.4以降に対応、Android 5.0以降を推奨します。

なぜ、HyouRowGanをつくったの?

ソフトウェア的にBlueNinjaをBlueNinjaらしく動かすためのハードルが高すぎると感じたため、その解決方法の一つとして「HyouRowGan」をつくりました。

BlueNinjaの開発環境の構築は手順も多く結構大変です。
実際にサポートには、お客様から「開発環境の構築に困っている」というお問い合わせが多くありました。
また、スターターガイドで紹介しているのはLED点滅のプログラムのみで、Bluetooth LEやモーションセンサーを使う場合にはTZ1001 BSPのサンプルプログラムや「ミニ四駆テレメトリ」などのソースコードを参考に自力でプログラムを作成しなくてはいけませんでした。
上記のような大変を少しでも解消し「インスタント食品のように」BlueNinjaの主な機能をすぐに使っていただきたいという思いを込めています。

HyouRowGanの機能

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

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

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

HyouRowGan_pin

HyouRowGan実行時のピン配置

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

実例

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

GPIO

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

PWM

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

モーションセンサー

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

気圧センサー

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

おわりに

「HyouRowGan」が少しでも皆様のお役にたてば幸いです。

]]> BlueNinjaを使って「ミニ四駆テレメトリーシステム(ロガー)」をつくる https://blueninja.cerevo.com/ja/example/001_telemetry/ https://blueninja.cerevo.com/ja/example/001_telemetry/#comments Fri, 04 Dec 2015 07:01:13 +0000 https://blueninja.cerevo.com/ja/?p=1 Read More »]]> CerevoのIoTモジュール「BlueNinja」はサイズが非常に小さいため、ガジェットへの組み込みも容易です。その使用例として今回はタミヤ製のミニ四駆を組み合わせた、「ミニ四駆テレメトリーシステム(ロガー)」をご紹介します。

BlueNinjaのコアとなる東芝の「TZ1001MBG」はBluetooth® Low Energyのコントローラ機能、入力データを処理するCortex-M4Fプロセッサ、およびデータを保存するフラッシュメモリを1パッケージに内蔵したSoCです。さらに本モジュールには加速度センサ、気圧センサ、リチウムイオン電池の充電・放電回路を搭載。通信部は技適を取得済みです。

ブレイクアウトボードを取り付けることで、microUSBからの5V給電、mbed互換のファイルの書き込み、最大16本のGPIOの引き出しに対応しています。

最大の特徴は本モジュール単体で11×37.5mmという超小型サイズ。

これまでのラピットプロトタイピングツールは試作向けが多く、サイズや技適などの規格取得の問題でそのまま実際の製品に組み込むことは難しく、再設計や規格取得対応などで量産には長い時間がかかりました。 しかし、BlueNinjaはそのまま量産製品に組み込めるので、量産IoT製品ををスピーディーに市場に投入可能となります。

本モジュールをミニ四駆のボディに内蔵して走らせ、以下のパラメタをBLE経由でスマートフォンにリアルタイムで表示します。

加速度3軸(x, y, z) 角速度3軸(x, y, z)
地磁気3軸(x, y, z) 気圧センサー

小型リチウムポリマー電池もはめ込むだけの簡単接続できるため、本当に貼り付けるだけの実装です。

お手元のBlueNinjaとAndroidスマートフォンで実際にお試しできるように、プログラムのソースコードを公開します。

BlueNinjaのプログラム ソースコード[GitHub]
Androidのプログラム ソースコード[GitHub]実行ファイル(apk)

※ブレイクアウトボードからのUSBバスパワーで動かす場合はブレイクアウトボードのJ1をショートする必要があります。

開発環境

  • ブレイクアウトボードにmbed相当のインターフェースを搭載
  • エクスプローラ/Finder等でbinファイルのドラッグアンドドロップでプログラム書込可能
  • 統合開発環境やGDB+OpenOCDでデバッグ可能

対応開発環境・コンパイラ

  • Gnu Tools (GCC, GDB, binutils)
  • Keil MDK-ARM(ARM Compiler)
    ※Gnu Toolsのセットアップ支援ツール、セットアップ手順はCerevoから提供の予定
  • ブレイクアウトボードにmbed相当のインターフェースを搭載
    ※mbed互換製品ではありません

Cerevo ミニ四駆テレメトリーシステムチームメンバー

  • 矢野 元章 回路・基板設計担当

    BlueNinjaの回路・基板設計を担当、製造。チップマウンタを使った動画の人。ニキシー管を使った次の実例品を作成中。

  • 奥原 史至 ソフトウェア担当

    ソフトウェアエンジニアでもBlueNinjaでハード製品が作れるか挑戦中。ミニ四駆テレメトリシステムのアプリを開発。

  • 長谷川 隆太 メカデザイン担当

    デザインエンジニアとしてBlueNinjaのロゴを制作。前職でのエンジン設計の経験を活かしてミニ四駆の組み立てを担当。

  • 押切 眞人 記事執筆担当

    回路設計者。同人誌の次はBluneNinjaの擬人化も目論む。本プロジェクトでは記事執筆を担当。

]]>
https://blueninja.cerevo.com/ja/example/001_telemetry/feed/ 1