<概要>
■Bluetooth Low Enargy (Bluetooth4.0 Smart)
スマートフォンなどに搭載されているBluetooth Low Energy(Bluetooth4.0、以下BLE)の無線モジュール。汎用の入出力端子をBLEを通して操作できます。デジタル出力8本、デジタル入力5本、アナログ電圧入力6本、PWM出力3本、LCD表示8文字x2行を無線でコントロール。
■ID切り替え16種類
本装置は基板上のジャンパ設定でSSIDを物理的に16種類に変更することができ、狭い範囲で複数の測定を行うことができます。BLEの個別識別はたとえばMACアドレス(BLE装置は個別に6バイトの値が割り振られている)で判断するなどもありますが、たとえばiOSの場合はMACアドレスをアプリに渡さないなどありますので、SSIDでの個体識別が確実な方法となります。
■プレッドボードにさせるピン配列
各端子は2.54mmピッチで配置されており、ヘッダピンをハンダ付けすることによりそのままブレッドボードにさすことができます。
■iPhoneとの通信
従来は、Bluetooth2.xや3.x、有線通信で外部機器とiPhoneをつなぐ場合は、Apple社とMFi契約を結ぶ必要がありましたが、BLEからはこの契約は不要になりました。iPhoneでBLEに対応しているのはiPhone4S以上になります。よって、このモジュールはiPhone4S以上のiPhone端末であれば、自由に外部機器を作ることが可能となります。
■Androidとの通信
2013年8月からAndroidOSでもBLEの正式サポートが決まり、BLEを使える端末が出てきました。AndroidOSでも今後BLEが普及すると思われます。
■日本国内の電波法に準拠
無線装置を使用する場合はその国の法律に基づいて使う必要があり、日本国内の場合は技術基準適合証明及び認証を受けていない無線機を使うことはできません。本モジュールは日本国内の技術基準適合証明及び認証(通称TELEC)を受けており、安心して使うことができます。
■カスタム対応
数量がまとまれば、カスタム対応も可能です。センサーの交換、パワー設定、送信周期変更、基板形状変更、その他情報の追加などが可能です。メールにてお問い合わせ下さい。
※ご注意
BLEはよく「ボタン電池で一年間駆動」などのうたい文句がありますが、それは無線以外のすべての電子部品も低消費電力に設計した場合です。本製品は”汎用”入出力の為、低消費電力設計にはなっておりません。(そのかわり、使い方が比較的簡単になっています。)
<仕様>
電源電圧
|
+3.3VDC (最大定格2.7〜3.6VDC)
|
消費電流
|
使用する状況に依存 (無線部のみは 待機時100uA、送信時10mA)
|
BT仕様
|
Ver4.0 Single
Mode (Bluetooth SMART) |
無線周波数
|
2.402-2.480 GHz |
GAPロール
|
ペリフェラル |
GATTロール
|
サーバ |
適合
|
TELEC, FCC,
CE, |
寸法/重量
|
寸法32x84x9(H)mm 重量:約10g |
<価格>
価格 6,480円 (本体価格6,000円)
<寸法図>
※本装置は電波で通信するモジュールですので、アルミケースなどの電波を遮断するものに入れての使用はできません。ケースに入れる場合は、ケースの素材を電波を通すもの(プラスチック、木など)にしてください。
<端子の説明>
※BLEセントラル:本装置に無線でConnectする装置。Android端末やiPoneなど。
■3V:電源の+を接続してください。電源は最大定格で1.8V〜3.6Vですが、本装置は2.7〜3.3Vで動作するように最適化しております。それぞれの3V端子は基板内部で接続されています。(1つの端子に接続するだけでかまいません)
■GND:電源のGNDを接続してください。それぞれのGND端子は基板内部で接続されています。(1つの端子に接続するだけでかまいません)
■DO1〜DO8:Digital Out(デジタル出力)端子で8本あります。BLEセントラルから操作することにより各端子をHi又はLowにすることができます。
■DI1〜DI5:Digital Input(デジタル入力)端子で5本あります。各端子の状態が変化(HiからLow又は、LowからHi)した時に、BLEセントラルに通知が送られます。
■AD1〜AD6:Analog Input(アナログ入力)端子で6本あります。BLEセントラルから各値を読み取ったり、定期的にBLEセントラルに値を送ったりすることができます。
■PWM1〜PWM3:PWM出力端子です。BLEセントラルから操作することにより各端子から、PWM出力信号を出すことができます。(ラジコンPWMとは異なりますので注意してください。)
■Jumper:IDを16種類に切り替えます。IDを切り替えるとSSID(BLEセントラルから見える名前)を16種類に変えることができます。出荷時はID=0で、SSIDは「BLEIo_0」になります。
<IDの変更>
本装置はSSID(BLEセントラルから見た場合の名前)が16種類に変えられます。基本は「BLEIo_n」のように表示されます。nは1〜Fまでの16進値になります。ID変更は基板上のジャンパJ1〜J4の設定で行います。
出荷時は、すべてのジャンパにジャンパピンがさしてあります。さしている状態を「ON」、抜いている状態を「OFF」とします。下の図のように左右をジャンパピンでつなぐとONになります。
SSIDとON/OFFの関係は次のようになります。
J1 |
J2 |
J3 |
J4 |
SSID |
ON |
ON |
ON |
ON |
BLEIo_0 |
OFF |
ON |
ON |
ON |
BLEIo_1 |
ON |
OFF |
ON |
ON |
BLEIo_2 |
OFF |
OFF |
ON |
ON |
BLEIo_3 |
ON |
ON |
OFF |
ON |
BLEIo_4 |
OFF |
ON |
OFF |
ON |
BLEIo_5 |
ON |
OFF |
OFF |
ON |
BLEIo_6 |
OFF |
OFF |
OFF |
ON |
BLEIo_7 |
ON |
ON |
ON |
OFF |
BLEIo_8 |
OFF |
ON |
ON |
OFF |
BLEIo_9 |
ON |
OFF |
ON |
OFF |
BLEIo_A |
OFF |
OFF |
ON |
OFF |
BLEIo_B |
ON |
ON |
OFF |
OFF |
BLEIo_C |
OFF |
ON |
OFF |
OFF |
BLEIo_D |
ON |
OFF |
OFF |
OFF |
BLEIo_E |
OFF |
OFF |
OFF |
OFF |
BLEIo_F |
<電源の投入>
3V端子に電源+を、GND端子に電源GNDをつないでください。電源は乾電池3本又は2.7〜3.3Vの安定化電源をつないでください。3Vのボタン電池でも本装置だけは動作しますが、本装置以外の電子部品をつなぐ場合は電流不足が考えられますのであまりおすすめできません。
電源を投入すると、Jumperピンで設定されたSSIDが、LCDに表示されます。
<動作確認について>
本装置は、BLE自作装置を開発する方向けとなっており、基本的にはBLEセントラル側でプログラムを組んで接続してください。とはいえ、購入時の確認及び、自作装置のデバック時に、本装置が動いているかどうか確認できると便利です。スマートフォンアプリで無料のBLE確認アプリがありますのでそのようなものをあらかじめダウンロードしておくことをお勧めします。以降はフリーのBLE確認アプリ「LightBlue」を使った画面をご紹介します。尚、これは動作を保証するものではなくあくまでもデバック表示例となります。お手持ちのスマートフォンでLightBlueが上手く動かない(OSアップデートなどで起きる場合もある)場合は、数種類のBLE確認アプリをインストールして試してください。アプリによっては操作方法や動作が異なる場合があります。たとえばキャラクタリスティックの名前が出ない(ある操作をすると出るなど)、値が更新されない(ある操作をすると更新する)などがあります。最終的にはBLEの規格に沿って、ご自分でアプリを作り、確認してください。
<アドバタイズ>
電源を入れるとアドバタイズが始まり、BLEセントラル側から存在が見えるようになります。アドバタイズ中は基板上のLEDが3秒に一度点滅します。
下はLightBlueで周囲のBLEを検索したところです。アドバタイズ中はこのようにSSIDと電波強度が送信されています。尚、本装置はペアリングしないようになっております。ペアリングは行わないでください。(BLEはベーシックBluetoothとは異なり、ペアリングしないでも接続通信ができます。)
<接続>
Connectすると接続され、キャラクタリスティックなどの情報が送信され、各機能が使えるようになります。接続後はアドバタイズが止まり、他のBLEセントラルからは見えなくなります。Connectしている最中はLEDが点灯します。Connectを解除するとLEDが点滅にかわりアドバタイズが再開されます。(Connectの仕方は各BLEセントラルに依存)
1つのサービスの下に、6個のキャラクタリスティックがあります。サービスUUIDは次になります。
□サービス:BLEIo UUID:FEED0001-5942-46D5-ADE5-81C064D03A03
BLEIoのキャラクタリスティックは次のような構成になっています。
■INTERVAL (Read/Write) UUID:FEEDAA02-5942-46D5-ADE5-81C064D03A03
■DOUT (Read/Write) UUID:FEEDAA03-5942-46D5-ADE5-81C064D03A03
■DIN (Read/Notify) UUID:FEEDAA04-5942-46D5-ADE5-81C064D03A03
■AIN (Read/Notify) UUID:FEEDAA05-5942-46D5-ADE5-81C064D03A03
■LCD (Write) UUID:FEEDAA06-5942-46D5-ADE5-81C064D03A03
■PWM (Read/Write) UUID:FEEDAA07-5942-46D5-ADE5-81C064D03A03
<Property>
BLEにはいろいろなプロパティがありますが、本装置では次の3種類のプロパティを使っています。
■Write Without Response
BLEセントラルから値を送信するプロパティです。送信後はとくに本装置の方からなにも値を返しません。BLEではこの他に単なるWriteがあり、セントラルから値を送るとペリフェラル(今回の場合は本装置)から応答を返すというものもありますが、本装置の場合は応答は返しません。尚、以降はWriteと書いてもWrite Without Responseのことをさします。
■Read
BLEセントラルからReadをすると、本装置から値を返します。たとえばデジタル入力の状態や、アナログ入力の値を読み取る場合にReadします。
■Notify
BLEセントラル側でNotifyを許可すると、BLEセントラルからとくにReadをしなくても、本装置から値が送信されます。DIN(デジタル入力)の場合は各端子の状態が変わった時、アナログ入力の場合はINTERVALで設定した時間周期、で送られます。
以下、各キャラクタリスティックについて説明します。
<INTERVAL>
Read/Write
UUID:FEEDAA02-5942-46D5-ADE5-81C064D03A03
データサイズ:2バイト
起動時、INTERVALは500に設定されています。値はmS単位で、アナログ入力のデータをNotifyする周期を設定します。データはMSBファースト(上位バイトを先に送る)で設定します。Writeすると値を変えます。Readすると現在の設定値がとれます。
<DOUT>
Read/Write
UUID:FEEDAA03-5942-46D5-ADE5-81C064D03A03
データサイズ:1バイト
起動時、DOUTは0x00に設定されています。ビット0がDOUT1、ビット1がDOUT2、、、ビット7がDOUT8になり、”1”でHigh、”0”でLowになります。Writeすると値を変えます。Readすると現在の設定値がとれます。
<DIN>
Read/Notify
UUID:FEEDAA04-5942-46D5-ADE5-81C064D03A03
データサイズ:1バイト
Readすると各DIN1〜DIN5の端子の状態が読めます。ビット0がDIN1、ビット1がDIN2、、、ビット4がDIN5になり、”1”でHigh、”0”でLowになります。BLEセントラル側でDINのNotifyを許可すると、どこかのDIN端子の状態が変わった瞬間に、全端子の状態が送られます。
<AIN>
Read/Notify
UUID:FEEDAA05-5942-46D5-ADE5-81C064D03A03
データサイズ:12バイト
Readすると各AIN1〜AIN6に入力されている電圧値を測定し、全端子の値を返します。データは10ビットになり、各端子の値は2バイト(MSBファースト)で表されます。データサイズは6端子×2バイト=12バイトになります。フォーマットは次の通り。
[AIN1(MSB)] [AIN1(LSB)] [AIN2(MSB)] [AIN2(LSB)] ... [AIN6(MSB)] [AIN6(LSB)]
セントラル側でAINのNotifyを許可すると、INTERVALで設定した周期で値が送られます。読み取り電圧と値は次の式となります。
電圧 = 3.6V/1024 × 値
※周期ですが、BLEは低消費電力無線の為、リアルタイムに接続するような無線構成にはなっておりません。また通信速度もそんなに早くはありません。さらにBLEセントラル側のOSによって早い周期での通信ができないものもあります。1秒間隔以上ぐらいなら問題はありませんが、数十mSぐらいの周期にしてもその周期では送られてこない(または受け取ってない)場合が多いです。
※端子はショートしないように注意してください。たとえば、単純にボリュームをつないだだけ、などですとボリューム抵抗を0にしたときに大きな電流が流れ、本装置がリセットもしくは破損する可能性があります。
<LCD>
Write
UUID:FEEDAA06-5942-46D5-ADE5-81C064D03A03
データサイズ:16バイト
LCDは8列x2行の16個の表示領域があり、16バイトのデータを送ると表示されます。データはASCIIコードに似た体形になっています。1ページ分が16バイトになりますが、それよりも少ない数値を送ってもかまいません。先にセットした値が画面左上になります。9データ目は画面二行目の左になります。
次の表は表示される文字コードを表します。表欄の上が上位4ビット、欄左が下位4ビットを表します。たとえば”a”は0b0110(16進数で6)、0b0001(16進数で1)なので、0x61を送ると”a”が表示されます。
<PWM>
Read/Write
UUID:FEEDAA07-5942-46D5-ADE5-81C064D03A03
データサイズ:3バイト
Writeすると対応する端子からPWM波形が出力されます。端子は3つあり、先に送った1バイトがPWM1、次がPWM2、最後がPWM3に設定されます。値は0〜100の値で送ります。0の時は出力がLowになりっぱなし、100の時はHighになりっぱなしになります。
※PWMはDCモータ制御用信号を想定していますが、本モジュールでは大きな電流をドライブできないので、入力がハイインピーダンスのモータドライバICなどと接続してください。自作トランジスタHブリッジ回路などでは駆動できない可能性があります。
<取扱について>
弊社で販売している過去のBLEモジュールでも、使用時に破損するケースを多く見受けました。本装置を使ってなんらかの装置を作っている途中で基板に触ったり、ショートさせたり、間違った配線をするなどしないように注意してください。また、本装置は基板がむき出しですので基板の端子や電極に素手で触ると静電破壊がおきます。静電対策をした環境で作業してください。 ご自分の装置が完成した後は、プラスチック製のケースに入れるなど、基板を露出させつづけないようにしてください。
<電源と電池寿命について>
本装置は乾電池2本で動作します。乾電池はできるだけアルカリ乾電池を使用してください。乾電池の場合、自己放電がありますので、使わなくても段々と残量が減ることから、一年を超えるような長期の使用は難しく、長期間使用するような場合はACアダプタなど、外部電源で動作させてください。
電源電圧が3V付近なので、3Vのボタン電池でも動作させることはできますが、容量が小さいので電池寿命は乾電池よりも短くなります。(容量についてはそれぞれの電池について調べてください。一般的には50〜200mAh程度です。
<携帯端末のBLE搭載状況>
iPhoneの場合
iPhoneとつなぐ場合、4S以上(現在4S、5、5C、5S)であればBLEが内臓されているので接続可能です。
Androidの場合
Androidの場合、BLEが使えるかどうかはスマートフォンメーカーの実装に依存します。GoogleではAndroid4.3以降はBLEに対応していることになっていますが、Android4.3でもBLEをサポートしていない機種も若干ありますのでご注意願います。
<BLE対応しているかの確認方法(Android端末の場合)>
ADB接続時にコンソールから adb shell pm list
features を実行してください。
featureの中に、android.hardware.bluetooth_le
があれば動作します。最後に「_le]が付いたbluetoothが無いと動きません。
<サンプルプログラム>
※BLEIo専用のサンプルアプリは用意してございません。下記は他のBLECASTシリーズのサンプルプログラムですが、こちらとほぼ同じ方法で通信できますのでこちらを参照願います。
iPhone
■ArduinoとiPhoneをBLEでつないでみる
Android
■ArduinoとAndroidをBLEでつないでみる
<運用上の注意>
1)本製品は日本国内の電波法規定による技術適合を受けております。アンテナをつけるなどの改造は絶対に行わないで下さい。
2)基板上にはアンテナが付いております。基板周囲に無線に影響を与える金属などを配置すると無線性能が低下します。アルミなどの無線を遮断するケースに入れると無線が使えなくなります。
3)電池を逆に挿入すると破損します。方向に気を付けてください。
<使用上の注意>
・バッテリ使用時には電源ラインをショートさせると、バッテリが破裂・発火する可能性があります。作業中にはショートさせないよう十分注意して下さい。また、取り付け後も、あいている電源ラインに導電物質が触らないように注意して下さい。
|