LoginSignup
2
0

M5Stack と toio を組み合わせて使う場合のライブラリの情報を調べる

Last updated at Posted at 2024-06-08

M5Stack と toio を組み合わせて使う場合のライブラリに、どのようなものがあるかが気になり、調べてみた内容を記事にしたものです。

Web で検索してみる

まず、Web で検索してみます。

●m5stack toio ライブラリ - Google 検索
 https://www.google.com/search?q=m5stack+toio+%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA

念のため、シークレットモードで履歴などが検索結果に影響しないようにして、それで出てきた検索結果の中のトップ 3つを抜粋してみます。

●futomi/M5StackToio: This library allows your M5Stack micro-controller to control your SONY toio core. This library accesses your toio core using BLE. It will work well on M5Stack Basic Core, GREY, ATOM Matrix, and ATOM Lite. Note that SONY toio is available only in Japan for now: https://toio.io/ (Japanese).
 https://github.com/futomi/M5StackToio

●M5StackToio - Arduino Reference
 https://www.arduino.cc/reference/en/libraries/m5stacktoio/

●kenichi884/M5StackToio: This library allows your M5Stack micro…
 https://registry.platformio.org/libraries/kenichi884/M5StackToio

上記の 2つ目・3つ目は、上記の 1つ目のものをフォークしたものに対する、さらなるフォーク版という位置付けになるようです。

日本語版の GitHub のリポジトリが以下になるようですが、説明を見ると「本ライブラリはオリジナルの https://github.com/futomi/M5StackToio で、それにToio IDの読み取り機能を追加したバージョンの https://github.com/mhama/M5StackToio をベースにBLEプロトコルバージョンv2.3.0以降対応を追加したものです。」とあります。

●M5StackToio/README_jp.md at master · kenichi884/M5StackToio
 https://github.com/kenichi884/M5StackToio/blob/master/README_jp.md

image.png

kenichi884/M5StackToio の情報を見てみる

上記の「kenichi884/M5StackToio」となっているバージョンについて、もう少し情報を見てみます。

そもそも、「BLEプロトコルバージョンv2.3.0以降の内容」が何かを先に確認しておきます。

toio公式のプロトコルバージョンの情報が掲載されたページの記載によると、以下のとおりです。

image.png

v2.3.0 以降の内容というのは「v2.3.0」「v2.4.0」の内容となるようです。

同じページをさらに見ていくと、「v2.4.0」の機能アップデートなどは以下と書かれています。

image.png

そして「v2.3.0」の機能アップデートなどは以下と書かれています。

image.png

開発環境の準備

開発環境の準備について見ていきます。

以下を見ると、「Arduino IDE」「PlatformIO」で開発が行えるようです。

image.png

また、開発において複数の toio を接続する場合で、4つ以上の toio との接続を行う場合、コンフィグファイルの書きかえの対応が必要になるようです。

image.png

サンプルのソースコード

サンプルのソースコードを見てみます。

GitHub のリポジトリに掲載されている内容は、以下のとおりです。

#include <M5Unified.h>
#include <Toio.h>

// Toio オブジェクト生成
Toio toio;

void setup() {
  // M5Stack の初期化
  M5.begin();
  M5.Power.begin();
  M5.Lcd.clear();

  M5.Log.println("- toio コア キューブをスキャンします。");
  std::vector<ToioCore*> toiocore_list = toio.scan(3);
  size_t n = toiocore_list.size();
  if (n == 0) {
    M5.Log.println("- toio コア キューブが見つかりませんでした。");
    return;
  }
  M5.Log.printf("- %d 個の toio コア キューブが見つかりました。\n", n);

  M5.Log.println("- toio コア キューブに BLE 接続します。");
  ToioCore* toiocore = toiocore_list.at(0);
  bool connected = toiocore->connect();
  if (!connected) {
    M5.Log.println("- BLE 接続に失敗しました。");
    return;
  }
  M5.Log.println("- BLE 接続に成功しました。");
  M5.Log.println("- 3 秒後に切断します。");
  delay(3000);
  toiocore->disconnect();
  M5.Log.println("- BLE コネクションを切断しました。");
}

void loop() {

}

上記を動かした時に、期待される動作(ログ出力)は以下となるようです。

image.png

それと「M5StackToio/examples」に、さらにサンプルがあるようですが、それらの動作確認端末について以下の記載がありました。
 
image.png

いろいろできることがありそうなので、実際に試していければと思います。

2
0
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
2
0