2026年4月30日
024-2.SPIKE-RT入門 第4回目 「Bluetooth通信」
この記事では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」で動作する「SPIKE-RT」の使い方を紹介します。
ここではアフレルが販売している教材「レゴ エデュケーションSPIKEプライム C言語プログラミングブック」で配布しているSPIKE-RTの開発環境を使っています。同製品の紹介ページは次の通りです。
https://afrel.co.jp/product/spike/c-language/
(文/松原拓也)
◆ PybricksのWebアプリを使う
続いて、パソコン側の通信プログラムを用意します。
SPIKE-RTは通信仕様が公式のものとは異なっています。そのため、「LEGO Education SPIKE Prime protocol documentation」のサンプルプログラムを使うことができません。
SPIKE-RTは「Pybricks」という開発環境の通信仕様を採用しています。PybricksのWebサイトを開きます。
https://pybricks.com/
Webページを開いたら、「Start coding with Blocks & Python!」ボタンをクリックしてWebアプリを起動します。 ラージハブの電源を入れた状態で、Bluetoothのアイコンをクリックして少し待ちます。ダイアログに「不明なまたはサポートされていないデバイス」と表示されたら、それを選択して「ペア確定」ボタンをクリックします。これで、ラージハブとパソコンが通信できる状態になります。 ちなみに16進数のアドレスは起動するたびに変化するので、特定することには使えません。
PybricksのWebアプリを使うには、「Web Bluetooth API」に対応したWebブラウザが必要です(Google Chromeなど)。Web Bluetooth APIとは、JavaScriptでBluetoothを制御する機能のことです。iPad用のアップル純正のWebブラウザ「Safari」はWeb Bluetooth APIに対応していないため、このようなエラーが表示されてしまい、使うことができません。
Pybricks自体は有料のサービスですが、PybricksのWebアプリは無料で使うことができます。しかし、タダ乗りしているみたいで、ちょっと後ろめたいものがあります。そこで、Webアプリに頼らないで済むように、通信ソフトを自作してみたいと思います。
◆ 通信ソフトを自作する
こちらがPythonで自作したBluetoothの通信ソフト(send.py)です。 全部で50行程度ですが、2つに分けて紹介します。
まずは1/2です。 Bluetoothの制御には「Bleak」というライブラリを使います。たとえば、ThonnyというPython用の開発環境を使った場合、「パッケージ管理」というメニューを選択するだけで簡単にライブラリを追加することができます。
通信仕様はPybricksの公式の資料を参考にしました。
https://docs.pybricks.com/projects/pybricksdev/en/latest/api/ble/index.html
福野泰介さんが作った「PybricksHub.js」というライブラリも参考にさせて頂きました。プロトコルエラーの解決に役立ちました。
https://github.com/code4fukui/PybricksHub.js/
これによると、サービスUUIDが通常のものと「Nordic UART Service」用のものとがあって、2つまとめて接続する必要があるようです。
プログラムを実行中の様子
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。








