2018年5月18日金曜日

micro:bit BLEのテスト

micro:bitにBLEサービスを実装したので、動作テストをしてみます。
BLEのテストには、その相手が必要となります。micro:bitは、BLEペリフェラルなので、その相手は、BLEセントラルになります。初めその相手先をプログラミングによって作ろうと試しましたが、BLEツールを使えばプログラミングレスでテストが可能です。

現在、私が頻繁に利用していいるのは、スマートフォンアプリの、「nRF Connect」と「LightBlue」です。私は、iPhoneで、これらを利用していますが、2つともAndroidアプリも準備されています。2つの機能はほぼ同等ですが、用途によって使い分けて使用しています。

それでは、テストを開始します。今回は、「nRF Connect」を使います。micro:bitのプログラムは、前回のブログのコードを前提にしています。
micro:bitの電源を入れた後に、「nRF Connect」を立ち上げます。

 立ち上げると、「nRF Connect」は、周辺のBLEペリフェラルを探します。「Scan」です。プログラミンでBLEセントラルを作成する時もこの手順が必要になります。
デフォルトでは、フィルタがかかっていないので、見つかったペリフェラル全てが表示されます。沢山表示されて困る場合には、フィルタをかけて下さい。

写真の様に、「BBC micro:bit[...]」が表示されていると思います。(micro:bitの名前は、お持ちのボードで異なりますので、読み替えて下さい。)
ここに、micro:bitが表示されない場合は、プログラムが正しくありませんので、コード並びに書き込みを確認して下さい。

前回のブローグのコードでは、「最初だけ」でLEDに四角いアイコンを表示させていますので、この段階では、そのアイコンが表示されていると思います。

次に、「nRF Connect」の「CONNECT」ボタンをタップしてmicro:bitと接続します。 「Connect」もプログラミングの際に重要な手順となります。






すると、写真の様な画面に切り替わったと思います。
そして、「Connect」したので、micro:bitのアイコンは、アンテナのアイコンに変わったと思います。
「Bluetoothに接続されたとき」イベントが発生したことが確認できますね。

ここの一覧は、ペリフェラルの持っている「Service」の一覧です。これも、プログラミングの際に重要な手順です。

一覧の下2つに注目して見ましょう。
LED ServiceとTemperrature Serviceです。これは、前回のコードで、「最初だけ」に指定したサービスである事に気づかれると思います。
上の3つのサービスは?と気になるところですが、ここでは、それを放置して次に進みますが、BLEサービスを使う場合には、この3つのサービスは、必ずサービスとして提供されます。

重要なことを書き忘れました!
Serviceの名前の下にある、「UUID」もプログラミングの際に重要になります。サービスを特定するには、このUUIDを使用します。そして、このUUIDは、どのmicro:bitでも、同じサービスであれば、同一です。




 各サービスをタップすると、そのサービスが提供している機能の一覧が表示されます。「Characteristics」と呼ばれ、これもプロ部ラミングの際の重要な手順です。

左の写真は、LEDサービスのそれです。
ここでも、UUIDが使われていて、Characteristicsの特定もUUIDが使われます。

「Properties」は、このCharacteristicsの特性を表しています。ここで、使われているのは、ReadとWriteで、読めるのか、書けるのかの特性を表しています。
注意してみると分かりますが、右側のアイコン「↓」「↑」は、それぞれ「読み込み」「書き込み」の処理が出来ます。

「Value」は、その時点の値です。

機能は、名前からある程度、推測できると思います。
LED MatrixStateは、LEDをマトリックスで指定できる。
(ブロクエディタの「show leds」)
LED Textは、文字の表示。
(ブロクエディタの「文字列を表示」)
Scrolling Delayは、スクロール時間の設定?。
(ブロックエディタにあるのか不明)


それでは、LED Textを試してみましよう。
「↑」をタップして適当なキャラクターコードを入力して「SEND」をタップ。micro:bitのLEDに文字列が表示されたと思う。
(左の写真は、「abc」を表示)

この要領で、Characteristicsを試すことが出来ます。
洗練はされていませんが、BLEセントラル・アプリだと言えます。

みなさんも色々試してみて下さい。
















左の写真は、温度計サービスのCharacteristicsです。

温度計サービスのCharacteristicsには、TemperatureとTemparature Periodがあります。

「Temperature」は、温度だと予想できそうです。

ここで、新たな特性が見つかります。
それは、「Notify」です。これは、「Read」とは異なり、定期的にペリフェラルから値をプッシュしてくれます。
この機能を試しには、右の「↓↓↓」アイコンをタップすれば試すことが出来ます。

 「Temperature Period」は、温度をプッシュしてくる感覚のようです。

では、温度を定期的にプッシュしてもらいましょう。









 その方法は、簡単です。前述した通り、「↓↓↓」をタップすればプッシュが開始されます。
左の写真のアイコンが変化していることに注目して下さい。

この画面では、アイコンは変化しましたが、プッシュされたデータを確認できません。この画面を右にスワイプするとlogが表示されデータが定期的にプッシュされていることを確認できます。



















 logからはプシュされているデータだけでなく、それまでのセントラル、ペリフェラル間のやり取りを確認できます。

プログラミング無しで、ツールだけで色々な事が確認できるのは、本当に便利です。また、プログラミングする場合でも、事前にどの様な動きをしているのか事前に感じられるのは、助かります。

 これで、micro:bitのBLEテストは、ほぼ終了です。

残すは、コネクションを切るだけです。方法は、画面を戻していって初めの「Scanner」画面に戻れば切断されます。

micro:bitの表示が「□」に変わっていればOKです。












BLEツールを使えば簡単にmicro:bitのBLEのテストが出来ることを理解していただけたと思います。

次回は、もう一つのツール「LightBlue」を使いながら、もう少し深くBLEを見ていきたいと思います。

0 件のコメント:

コメントを投稿

micro:bit BLEのテスト