背景
Googleの個人開発者アカウントに活動が無ければ2024年6月末で閉鎖するという通知を受けたので、以前取り組んでいたBLEコントローラーアプリを更新して公開しました。何とか更新できたものの作成当時のことを記事にまとめておらず必要なプログラムが辿れず再現に時間がかかったので、遊び方紹介を兼ねて記事に情報を残します。
使ったもの
- Androidアプリ BLE Car Controller
作ったアプリです。
BLE通信をするラジコンのリモコンになります。
プログラムはgithubで公開しています。
asukiaaa/clj-rn-shadow-ble-car-controller - Android端末
アプリを入れます。
Android10のrakuten handとAndroid14のzenfone9で動作確認しました。 - M5StackBasic
ESP32を搭載したプログラム書き込み対象です。
CoreS3SEなど電池が付いていないM5Stackを利用する場合は、中間や底の電池をご用意ください。 - I2cMotorsForM5Stack台車仕様
車輪2つで移動するM5Stack向けの台車です。 - Arduino環境を設定したPC
ArduinoIDEかPlatformIOを利用してM5Stackにプログラムを書き込みます。
PCのAndroid環境にライブラリを設定
Arduino IDEの場合
Arduino IDEで初めてプログラムを書き込む場合は、ESP32環境を構築してください。Installing - Arduino ESP32
ライブラリマネージャから下記2種類のライブラリをインストールしてください。
I2cMotors_asukiaaa
NimBLE-Arduino
PlatformIOの場合
platformio.iniを下記のライブラリを利用するESP32向けに設定してください。I2cMotors_asukiaaa
NimBLE-Arduino
platformio.ini
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps =
NimBle-Arduino
I2cMotors_asukiaaa
M5Stackにプログラムを書き込み
Arduino IDEの場合
下記のスケッチ例をESP32向けにビルドしてM5Stackに書き込みます。ファイル -> スケッチ例 -> I2cMotors -> BlePeripheralCar
PlatformIOの場合
下記のコードをmain.cppにしてM5Stackに書き込みます。https://github.com/asukiaaa/I2cMotors_asukiaaa/blob/master/examples/BlePeripheralCar/BlePeripheralCar.ino
充電
台車に繋げる電池の残量が少ないと動作停止しやすくなるので、電池を繋いだ状態でUSB給電で充電します。スマホから操作
プログラムを書き込んで電池を充電した台車のそばでスマホを操作して、「scan」を押したら一覧に出てくるはずの「M5StackCar」を押して台車とBLE接続します。繋がったら、ジョイスティック、スライドボタン、ボタンなどで操作可能です。
動作の様子はこちらの動画で公開しています。
おわり
BLEで接続して台車を操作するAndroidアプリを作って公開できました。良かったら遊んでみてください。
参考
Androidアプリ BLE Car Controllerasukiaaa/clj-rn-shadow-ble-car-controller
M5StackBasic
I2cMotorsForM5Stack台車仕様
https://github.com/asukiaaa/I2cMotors_asukiaaa/blob/master/examples/BlePeripheralCar/BlePeripheralCar.ino
0 件のコメント :
コメントを投稿