LoginSignup
8
9

More than 3 years have passed since last update.

M5StackでBLEセントラルを作成する

Last updated at Posted at 2021-02-23

M5StackBleCentral

日本語

NimBLEライブラリを使って、CSCペリフェラル(ケイデンスセンサー等)とHIDペリフェラル(リモートシャッター等)を同時に接続できるBLEセントラルデバイスをM5Stackで動作させるものです。

BLEdevices.jpg

M5connect.jpg

Source code

Requirement

動作には以下のライブラリが必要です。

  • M5Stack (version=0.3.1 author=M5Stack)
  • FunctionFsm (version=1.0.0 author=JRVeale)
  • M5Stack_OnScreenKeyboard (version=0.3.4 author=lovyan03)
  • M5Stack_TreeView (version=0.2.14 author=lovyan03)
  • NimBLE-Arduino (version=1.2.0 author=h2zero)

ボードマネージャ
追加のボードマネージャのURLに、M5Stack用URLを指定し、ボードはM5Stack-Core-ESP32を使います
URL = https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
m5_boardmgr.png

Design

複雑な動作状態を管理するため、ステートマシンを使用しています。

M5StackBleCentral_STM.png

Usage

起動するとAdvertiseしているペリフェラルをscanしてユーザに選択してもらうためのデバイス一覧画面を表示します。

M5scanCSC.jpg M5scanHID.jpg

CSCデバイスとHIDデバイスについて順に選択します。

選択完了したらデバイスが内部に登録され、次回起動からは自動的にペリフェラルに接続します。

M5connect.jpg

再度ペリフェラルを選択したいときには、起動時にボタンを押しておくと内部の登録を初期化します。

Implementation

現在のソースコードは、ペリフェラルからのNotifyを受信した時、画面のインジケーターを更新しているだけです。
この場所(keepconnect状態中のupdateIndicator()処理辺り)に、GPIOへの出力等必要な機能を追加すると良いです。

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9