【電子工作】bleでリモコンを作るぞ その3
前回・・
micro:bit & BLEサンプルが動かない
はい
またしても壁が立ちはだかります
以前に、MakeCode環境でBLEサンプルと、下記アプリでBluetooth接続ができるかだけを確認したことがありました
その時は、加速度だけ取得できるようにして、
アプリ上では、micro:bitの本体を傾けることで、加速度の値が変わっていることを確認できていました
・・・が、それから暫く経ち、前回の投稿を終えてからBLE接続を再度試したところ、アプリ側ではすぐ接続が切れてしまうという状態に・・・
接続と切断の検知のブロックを使って、LEDの絵を変えるようにしていたので、micro:bitのLEDも、プログラム通りに「接続→切断」という状態を表示しています・・・
なので、プログラム側の問題は少なそうな予感です
困りましたね・・・
なんらかのヒントがあれば、調査もできるかもしれないですが、
どこにエラーが記されているのかもわからないのです・・・
お舐めになるんじゃないわよ
しかし、仕事での経験がこんな時に活きてきます
以前は動いていた
が、今回は動かない
そういう時は、とにかく何もかもリセットして、最初からやり直します
初めて動いていた時と同様な状況を再現することが大切です
ということで
前回、動作確認用のプログラムを再インストールする
アプリの方も再インストールはせずとも、残っている情報は削除する
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に値を入力することで、フォロが動いたので、この方向は大丈夫だと確認できました!!
まぁ、その分、習得内容が低いものになってしまいますが、
今はリモコンを作ることが優先なのです!
この記事が気に入ったらサポートをしてみませんか?