祝toio.py公開
toio™ core cubeを制御するプログラミング環境としてはオフィシャルからはビジュアルプログラミング環境の「toioDo」およびJavaScriptライブラリ「toio.js」、そしてUnity用「toio SDK for Unity」が用意されていましたが、この度、4つめの環境としてPythonライブラリ「toio.py」が公開されました。(2023.5.8)
このライブラリはPythonライブラリtomotoioと違ってBLE通信の基盤部分にbleakを使っているため、Linux系OS以外に、Windows、Linux、MacOSでも動かすことができるようです。(tomotoioはbluepyを使っているのでLinux上でしか動かない)
https://github.com/toio/toio.py には非常に詳しいインストール手順が書いてありますので、動作確認済環境であれば問題なく動かせるとは思います。(主な動作確認環境 Windows: Windows10 (21H2)、補助的な動作確認環境 Linux: Ubuntu22.04、macOS: macOS 12(Monterey))
ここでは、オフィシャルで動作確認がされてない環境(Ubuntu20.04、RaspberryPiOS、JetPack5.1)でのインストールを試みます。
たぶんLinux系ディストリビューションでPython3.11以上が入る環境であれば同様の手順でインストール、動作させることができるかと思います。
Raspberry Pi OSやJetPackで動かしたい
オフィシャルの動作確認済環境としてUbuntu22.04がありますが、Raspberry Pi OS(2023年時点)や、Jetson用のJetPack5.1.xはそれぞれdebian bullseye、Ubuntu20.04相当で、Ubuntu22.04よりは少し世代が古めになります。このためpython3は3.8で、toio.pyの動作環境であるpython3.11ではありません。
まずpython3.11を入れる
Python Japan の Ubuntu 版 Python のインストールを参考にして Python をインストールします
$ sudo apt update
$ sudo apt install build-essential libbz2-dev libdb-dev \
libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libsqlite3-dev libssl-dev \
zlib1g-dev uuid-dev tk-dev
https://www.python.org/downloads/ からpython 3.11以降をダウンロードします
$ wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
ソースコードを展開し、ビルド、インストールします。今回、システム側デフォルトの/usr/local/bin/python3に上書きしないで、/usr/local/bin/python3.11として別にインストールします。
tar xfvz Python-3.11.3.tgz
cd Python-3.11.3
./configure
make
make altinstall
Python3.11の仮想環境を作ってそこにtoio.pyをインストール
venvを使ってPython3.11の仮想環境を作ってそこにtoio.pyをインストールします。これでシステムのデフォルトのpython3環境をを汚すことなくインストールすることができます。
$ /usr/local/bin/python3.11 -m venv py3.11env
$ source py3.11env/bin/activate
(py3.11env)$ python -V
Python 3.11
(py3.11env)$ python.exe -m pip install --upgrade pip
(py3.11env)$ python -m pip install bleak
Jupyterを使わない場合はipykernelのインストールは不要です
(py3.11env)$ python -m pip install ipykernel
(py3.11env)$ python -m pip install toio-py --upgrade
(py3.11env)$ python -c "import toio.scanner; print('ok')"
ok
これでtoio.pyのインストールは完了です
動作確認済環境
こちらの手元でtoio.pyのインストールを試してtoio™ core cubeを動かすことのできた(examplesのサンプルスクリプトが動かせたもの)環境を列挙します。
なお、どの環境でもcube.api.motor.motor_control_multiple_targets()で3つ以上のターゲット地点を指定した場合は動作しませんでした。(これはbluepyを使うtomotoioも同様の制限があります。ターゲット地点2つまでが限界)
PC (Ryzen 5 2600) + USB Btドングル
- Ubuntu 20.04LTS
- Windows 11 22H2
Raspberry Pi 4B
- Raspberry Pi OS 64bit版 (bullseye)
Jetson Xavier NX dev.kit
- JetPack 5.1.1