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を見ていきたいと思います。
micro:bit で遊ぼう
micro:bitで遊びましょう! ここでは、あまり書籍やWebで紹介されていないmicro:bitの使い方を紹介していきます。
2018年5月18日金曜日
2018年5月17日木曜日
micro:bitにBLEを実装する
micro:bitにBLEペリフェラルを実装するには、ブロックエディタにBLEパッケージをインストールする事とプロジェクトの設定が必要となります。
1 BLEパッケージのインストール
「高度なブロック」を表示させ、一番下の「パッケージを追加する」をクリック。
** Bluetoothモジュールをインストールすると「無線」(Radio)モジュールは、使えなくなります。
** もう一度、「無線」モジュールを使用する場合には、同様の手順で「Radio」モジュールを
** 追加します。ただし、このモジュール同士は、同時には使用できません。
2 プロジェクトの設定
メニューから「プロジェクトの設定」を選択。
これでBluetoothブロックが使えるようになり、BLEペリフェラルを実装出来ます。
それでは、micro:bitにBLEペリフェラル機能を実装してみます。
ここでは、「LEDサービス」と「温度計サービス」を使えるようにしました。
それでは、いつものようにmicro:bitにプログラムをインストールしてみてください。
これだけで、BLEペリフェラルとして機能するようになります。
これで何が出来るようになったのかと大雑把に言うと・・・
1 BLEセントラルからのコマンドでLEDに表示が出来る
2 BLEセントラルからのコマンドで温度が取り込める
もう少し細かく説明する必要はありますが、サービスの概要はつかめたと思います。
スマートフォンを使ったテストの方法まで書く予定でしたが、すみませんが今回はここまでです。
1 BLEパッケージのインストール
「高度なブロック」を表示させ、一番下の「パッケージを追加する」をクリック。
![]() |
| 「bluetooth」を選択 |
![]() |
| 「追加を選択」 |
モジュールのインストールが終了するとブロックに「Bluetooth」が追加されます。
** Bluetoothモジュールをインストールすると「無線」(Radio)モジュールは、使えなくなります。
** もう一度、「無線」モジュールを使用する場合には、同様の手順で「Radio」モジュールを
** 追加します。ただし、このモジュール同士は、同時には使用できません。
2 プロジェクトの設定
メニューから「プロジェクトの設定」を選択。
![]() |
| 一番上の「No Pairing Required:.....」をOnにして保存 |
これでBluetoothブロックが使えるようになり、BLEペリフェラルを実装出来ます。
ここでは、「LEDサービス」と「温度計サービス」を使えるようにしました。
![]() |
| たったこれだけです! |
これだけで、BLEペリフェラルとして機能するようになります。
これで何が出来るようになったのかと大雑把に言うと・・・
1 BLEセントラルからのコマンドでLEDに表示が出来る
2 BLEセントラルからのコマンドで温度が取り込める
もう少し細かく説明する必要はありますが、サービスの概要はつかめたと思います。
スマートフォンを使ったテストの方法まで書く予定でしたが、すみませんが今回はここまでです。
2018年5月16日水曜日
micro:bit BLEを調べ始める
micro:bitでは、簡単にBLEペリフェラルの機能をブロックエディタから簡単に実装できますが、この辺りのこと記事は以外に多くは無い様に感じます。その理由は、micro:bitのプログラミング、つまり、BLEペリフェラルよりもBLEセントラルのプログラミングの比重が大きいことではないかと思います。しかし、BLEを使えば簡単にラジコンの様な無線コントロールが可能!これを使わない手はないと思います。
私は、BLEの事を知らいないまま、ChromeのWeb Bluetoothを使いプログラミングを始めましたが、それは、あまり効率の良い方法ではなかったと反省しています。結果的に、簡単にBLEは、動きましたが、BLEを理解する事は出来ず、そのプログラムを理解するには、BLEツールを使う方が効率的であることを実感しました。
このブログでは、あまり情報の無いmicro:bitの事を中心に取り上げたいと思います。また、know howを通して、その背景も紹介できればと願っています。
今回は、このブログの目指している方向を書きました。次回からは、micro:bitのBLEペリフェラルをどの様すれば使えるかを暫く実験していきます。
プログラミングもしますが、出来るならプログラムを書きたくない怠け者なので、必要最低限のプログラミングで行きたいと思います。
少し次回の予告です。
1 micro:bitにBLEペリフェラルを実装する。
2 実装されたmicro:bitをスマートフォンのBLEツールを使ってテストする。
です。
それではmicro:bitを楽しみましょう!
登録:
コメント (Atom)
-
micro:bitにBLEサービスを実装したので、動作テストをしてみます。 BLEのテストには、その相手が必要となります。micro:bitは、BLEペリフェラルなので、その相手は、BLEセントラルになります。初めその相手先をプログラミングによって作ろうと試しましたが、BLEツ...
-
micro:bitにBLEペリフェラルを実装するには、ブロックエディタにBLEパッケージをインストールする事とプロジェクトの設定が必要となります。 1 BLEパッケージのインストール 「高度なブロック」を表示させ、一番下の「パッケージを追加する」をクリック。 ...
-
micro:bitでは、簡単にBLEペリフェラルの機能をブロックエディタから簡単に実装できますが、この辺りのこと記事は以外に多くは無い様に感じます。その理由は、micro:bitのプログラミング、つまり、BLEペリフェラルよりもBLEセントラルのプログラミングの比重が大きいこと...





