本文へ進む

Pythonの作例・専門向け

通知・スナップ・複数台を組み合わせる、非同期版の24作例です。

専門向けを使う前に

通常版は1つの操作が終わってから次へ進みます。専門向けはasync・awaitで通信を待つ間も別の処理を進め、複数台や通知を組み合わせます。通常版の読み込み先intelino.trainlibとは別に、intelino.trainlib_asyncを使います。

Pythonを初めて使う方は、7つの準備・接続の手順から進めてください。ここは、その後に並行処理を試す作例集です。

  1. 一式ZIPを「ダウンロード」へ保存し、matrain-python-asyncというフォルダーに展開します。中にrequirements.txtとexamplesが並ぶ場所を確かめます。
  2. 初心者ガイドのフォルダーを上書きせず、このフォルダーの中で別の.venvを作ります。MacはPython 3.15、Windowsは3.14という既存手順の基準を使います。
  3. 同じ.venvのPythonで必要な道具を追加し、作例を実行します。対話入力のある作例は、IDLE Shellではなくターミナル/コマンド プロンプトで使います。
Macの準備と実行

ZIPを展開したフォルダー名が違う場合は、次のパスを実際の名前へ合わせます。すでにこのフォルダーの環境を作っている場合、環境作成は繰り返しません。

Mac:専門向け作例の準備と探索
cd "$HOME/Downloads/matrain-python-async"
python3.15 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python examples/scan.py
Windowsの準備と実行

ZIPを展開したフォルダー名が違う場合は、パスを実際の名前へ合わせます。すでに作った環境は上書きしません。

Windows:専門向け作例の準備と探索
cd /d "%USERPROFILE%\Downloads\matrain-python-async"
pymanager exec -V:3.14 -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe examples\scan.py
使う道具とバージョン
同梱requirements.txt
intelino-trainlib-async==1.0.5
bleak==3.0.2
Rx==3.2.0
aioconsole==0.8.2

aioconsoleは終了のEnter入力、Rxは通知の購読・共有、bleakはBluetooth通信に使います。作例の元の開発用依存ではaioconsole==0.3.2でしたが、この掲載版では0.8.2を使います。

SDKの配布条件「Python 3.7以上」は、すべての作例・新しいPython・各OSでの動作保証ではありません。この固定版のBleakはWindows 11(22000以降)、MacはmacOS 10.15以降、LinuxはBlueZ 5.55以降が対象です。Bluetooth 4.0以上の通信環境を使います。必要なOSのBluetooth部品はpipが追加します。学校・会社の端末ではBluetoothや追加の許可も確かめます。

個別保存・本体の指定・終了方法

個別の.pyを保存するときは、作例の「保存する場所」と同じフォルダーを作り、その中へ置きます。共通のrequirements.txtなどは一式ZIPに含まれます。フォルダー間で読み込む独自の補助.pyや、別の画像・線路データは必要ありません。

通信の内部にある作例のaddress/addressesは見本です。探索の作例で表示された自分の本体の識別子へ変更します。MacはUUID、WindowsはBluetoothアドレスです。

Enterで通常終了する作例が中心です。原例には、例外やCtrl+Cでの停止をfinallyで保証しないコードもあります。切断だけを走行停止とみなさず、異常時は本体のボタンを短く押して止めます。走行を始める前にこの操作を確認し、走らせるのはレール上だけにします。

停止や復帰を例外時にも行う実装は、非同期の操作仕様と照らし合わせて、try/finallyで停止・購読解除・設定の復帰・切断を行います。掲載の原例がその処理を備えているとは限りません。

探索で本体が出ないとき

パソコンのBluetoothと本体の電源をオンにし、ほかのアプリ・スマートフォンとの接続を終えてから、examples/scan.pyを実行します。Bluetooth設定で先にペアリングする必要はありません。設定画面から接続中になっている場合は、その接続を解除します。

読み込みエラーなら、同じ.venvのPythonで道具を追加したかを確認します。Bluetoothの権限やアダプターのエラーと、本体が見つからない状態は分けて確かめます。ここでは表示する全文と揃えた同梱のscan.pyを使います。ライブラリに含まれる探索コマンドを使う場合は、Macは.venv/bin/python -m intelino.scan、Windowsは.venv\\Scripts\\python.exe -m intelino.scanです。-t 5で探索秒数を指定し、--infoを付けると接続して本体情報を読みます。

探索と基本操作

ライトと色

通知

スナップ

複数台

通信の内部

掲載版・使用条件

対象はintelino-trainlib-async 1.0.5、Bleak 3.0.2です。スキャンのRSSI取得、2本の通信例の起動方法、別の1本のTrainMsgの読み込み先を調整し、各ページへ明記しています。その他の実処理は原例を維持しています。

この24本はIntelino Public License 1.0で提供されます。通常版15本のMITとは条件が異なります。商用目的のソフトウェア提供や競合サービスの提供は許諾範囲に含まれず、対象ハードウェアとの併用条件もあります。

ライセンス全文・出典・掲載版の変更を読む

構文・SDK・通信を置き換えた検査と、実際のBluetooth接続・走行は別です。実機での動作や衝突防止を保証する資料ではありません。

ファイルのダウンロード

ダウンロードの確認

ファイル名:

この端末に保存します。閲覧中のページはそのまま残ります。