LoginSignup
1
1

toio.pyをRaspberry PiやJetson XavierNXで動かしてみる

Last updated at Posted at 2023-05-12

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