この連載ではBluetooth Low Energy(ブルートゥース・ロー・エナジー)という機能を使って、「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」のラージハブと通信する方法について紹介します。この技術を応用して、パソコンからラージハブを制御してみましょう。なお、この記事ではWindows(10以上)搭載のパソコンを使用しています。
まず、Bluetoothについての大まかな紹介です。
Bluetoothというのは無線の通信規格の一つです。無線と言うと「Wi-Fi」が有名ですが、BluetoothはWi-Fiと違って、狭い範囲での通信に使われています。現在、ワイヤレスイヤホンやゲーム機のコントローラはほとんどBluetoothを採用しています。Bluetoothの最新バージョンは5.4です。 2010年ごろに、Bluetoothはバージョン4.0となり、そこで「Bluetooth Low Energy」という機能が追加されました。名前が長いので以後は「Bluetooth LE」と書くことにします。4.0より前からあった機能は「Bluetooth Classic(BR/EDR/HS)」と呼び、今でも使うことができます。
SPIKEのラージハブはBluetoothを使ってパソコンやスマートフォンと通信することができます。2022年の末にSPIKEアプリはVer.2(Legacy)→Ver.3にバージョンアップして、通信方法が「Bluetooth Classic」から「Bluetooth LE」に変更されました。これにより、Webブラウザ版のSPIKEアプリはプログラムをラージハブへ直接転送できるようになりました。それ以前はSPP(Serial Port Profile)という技術を使い、COMポートから接続していましたが、それが廃止されています。
ラージハブ~パソコン間の通信プログラムをどうやって作ったら良いのでしょうか? いきなり難問です。
そのヒントはレゴ グループの「LEGO Education SPIKE Prime protocol documentation」という公式の資料にあります。
https://github.com/LEGO/spike-prime-docs/ こちらのページを開いて、「Code」ボタンをクリックしたら、「Download zip」ボタンをクリックしましょう。
これで「spike-prime-docs-main.zip」という圧縮ファイルがダウンロードされます。
ファイルを展開したら、 「spike-prime-docs-main」フォルダを開いて、 次に「exmaples」フォルダを開きます。 その中にある「python」フォルダの中身(ファイル4つとフォルダ1つ)を使います。これがラージハブと通信するためのサンプルプログラムです。言語はPythonです。
フリーソフトのPython用の開発環境「Thonny」を起動します。「Thonny」を持っていない場合はインストールしておきましょう。 起動したら、「ツール」→「オプション」をメニュー選択して設定画面を開きます。 「インタプリタ」タブをクリックして、 「ローカルPython3」を選択して、最後にOKボタンをクリックしましょう。