見出し画像

【電子工作】bleでリモコンを作るぞ その3

前回・・

micro:bit & BLEサンプルが動かない

はい
またしても壁が立ちはだかります

以前に、MakeCode環境でBLEサンプルと、下記アプリでBluetooth接続ができるかだけを確認したことがありました
その時は、加速度だけ取得できるようにして、
アプリ上では、micro:bitの本体を傾けることで、加速度の値が変わっていることを確認できていました

・・・が、それから暫く経ち、前回の投稿を終えてからBLE接続を再度試したところ、アプリ側ではすぐ接続が切れてしまうという状態に・・・

接続と切断の検知のブロックを使って、LEDの絵を変えるようにしていたので、micro:bitのLEDも、プログラム通りに「接続→切断」という状態を表示しています・・・
なので、プログラム側の問題は少なそうな予感です

困りましたね・・・
なんらかのヒントがあれば、調査もできるかもしれないですが、
どこにエラーが記されているのかもわからないのです・・・

お舐めになるんじゃないわよ

しかし、仕事での経験がこんな時に活きてきます

  • 以前は動いていた

  • が、今回は動かない

そういう時は、とにかく何もかもリセットして、最初からやり直します
初めて動いていた時と同様な状況を再現することが大切です

ということで

  1. 前回、動作確認用のプログラムを再インストールする

  2. アプリの方も再インストールはせずとも、残っている情報は削除する

  3. iPhoneのBluetooth接続の情報も削除して再接続する

を行いました

結果、1、2だけでは解決しませんでしたが、3をすることで、無事に接続ができました
原因がわからないところですが、ひとまず接続成功です

バグと戦ってきた経験は無駄ではなかったですね

BLEとサービス

BLE開発するにあたって、各機能(加速度、コンパス、ボタンなど)は、サービスと呼ぶようです
また、使いたい「サービス」は、プログラム側で、前もって「このサービスを使うよ」と宣言する必要があるようです
MakeCode側でもBluetooth拡張機能を使って、明示的にブロックを挿入します 

アップロード

ArduinoIDEだとボードマネージャでv2用を選択する必要があったのですが、
MakeCodeだとmicro:bit v1/v2 を意識しなくてもインストールできるのですね

MakeCodeでもSoftDevice というものが必要なんだと思っていましたが、いまいちわからないですね・・・
調べれば調べるほど、あれやこれやと知っておく必要があることが増えてきます・・・

メモだけ残しておこう
https://github.com/lancaster-university/microbit-v2-samples
BLE開発にあたっては、このリポジトリで開発されている?
yatto?
DAL・CODAL?

アプリ

micro:bitとBL接続する下記の3つほど使ってみてみました
日本語対応もあって、公式?micro:bit教育組織のアプリが一番わかりやすいですね

公式?のアプリでBluetoothで接続できたのであれば、
アプリ内から、MakeCodeを起動して、プログラムを転送することも可能でした
これは便利ですね!!
フォロの本体に差し込んでいる状態で、iPhoneからブロックを修正して転送ができそうです

サンプルをいじってみましたけど、参考になりそうなものばかりです

ボタン入力のサービスですが、サービス開始のブロックを挿れなくても、
ボタンの反応が取れているような気がします
ボタン入力のサービスはデフォルトで有効なのですかね?
しかも、A/Bボタンの入力をiPhoneから通知できるのですね

また、GAMEPADのサンプルを見てみましたが、これは便利ですね!!

自分の気持ちでは、
・micro:bit リモコン
・micro:bit フォロ制御
の組み合わせで、MakeCode+BLE通信するつもりだったのですが、
MakeCodeでは、壁が大きすぎて、ちょっと無謀な気がしてきました

UARTっていう通信で、できたりしないのだろうか・・・?
そもそもペリフェラルになるmicro:bit同士を接続なんてできるんだろうか・・・?
今後は、UARTの可能性を信じて、少し調査しようと思います

もしダメなら、このGAMEPADのサンプルをリモコンの土台にしようとおもいます
ひとまず、iPhoneから適当なボタン入力で、PINに値を入力することで、フォロが動いたので、この方向は大丈夫だと確認できました!!

まぁ、その分、習得内容が低いものになってしまいますが、
今はリモコンを作ることが優先なのです!


この記事が気に入ったらサポートをしてみませんか?