1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

toioAdvent Calendar 2024

Day 3

toio用pythonライブラリtoio.pyとtomotoioの違い

Last updated at Posted at 2024-12-02

BLEで通信してtoio core cubeを動かしたり、ボタンや傾きなどの状態を得ることができるpythonライブラリとしてSIE公式のtoio.pytomotoioがありますが、それぞれの特徴、違いについてまとめてみました。

由来

tomotio
tomotoさん作のpython3用toio core cube制御ライブラリです。
Gitリポジトリ https://github.com/tomoto/tomotoio

toio.py
SIE謹製
Gitリポジトリ https://github.com/toio/toio.py

BLEスタック

toiotomo
bluepy
RaspberryPi OSやUbuntuなどのLinuxベースのOSでBlueZが動作している環境でないと動かない。

toio.py
Bleak
Windows10/11、macOS、LinuxベースのOS(BlueZ)で動作

toio core cubeのスキャン

toiotomo
接続するtoio core cubeのBLEアドレスリストをtoio-cubes.txtに書いておく方式。つなぎたいtoio core cubeのBLEアドレスリストが必要。
スキャンのとき(./scan-cubes.shを動かすときなど) root権限(sudo)が必要
スキャンしてtoio-cubes.txtができてしまえば以降のpythonスクリプトはroot権限は不要
スキャンして割り当てられるcore cubeの順番はtoio-cubes.txtに書いてある順番

toio.py
個数指定、名前指定、BLEアドレス指定(Windows/Linuxのみ)、ペアリング済のみ(Windowsのみ)でスキャンできる。
スキャンして割り当てられるcore cubeの順番は"rssi"、"local_name"でソート可能(local_nameでスキャン対象を個別指定することもできる)
cube_list = await BLEScanner.scan_with_id( ["toio-L1L", "toio-h3e", "toio-i6k", "toio-m1T"], "local_name")

pythonスクリプトの書き方

toiotomo
(asyncioのasync awaitではない)従来型の書き方 シンプル。

toio.py
asyncioで書く必要あり javascriptやC#に慣れた方なら問題ないと思いますが。

対応システムソフトウェアバージョン

toiotomo
v02.0005 / BLE protocol v2.3.0

toio.py
v02.0006 / BLE protocol v2.4.0

比較表

tomotoio toio.py
由来 tomotoさん原作 SIE
BLEスタック bluepy Bleak
動作環境 Linux Windows/Linux/macOS
スキャンと接続 テキストファイルにBLEアドレス APIで名前/BLEアドレス指定
asyncio - asyncioで書く必要あり
対応システムソフトウェア v02.0005 v02.0006

共通の制限

複数目標位置指定での移動は目標地点2か所までしか動かない。本来、toio core cubeは29個まで指定可能ですが、OS側の制限というかBLEの標準的な実装だと一回に送れるデータ長に制限があるため、複数目標位置指定では2か所分しか有効にならないようです。Windows/Linuxどちらも同様に2か所までしか有効ではありませんでした。

あとがき

Bleakはpython-for-androidにも対応している、とのことですが、Android端末にQpython3とか入れるとtoio.pyも動いちゃったりするのだろうか...
iOSについては、toio.py自体がpythonista3で動くとのことですが未テスト

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?