2025年1月28日
023-1.SPIKEプライム Bluetooth入門-第5回「センサーの読み取り&モーターを動かす」
この連載ではBluetooth Low Energy(ブルートゥース・ロー・エナジー。以下、Bluetooth LE)という機能を使って、「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」のラージハブと通信する方法について紹介します。この技術を応用すると、パソコンからラージハブにプログラムを送ったり、パソコンでセンサーの測定値を受け取ったり、いろいろなことができるようになります。なお、この記事ではWindows10以上のパソコンを推奨しています。(文/松原拓也)
◆ 用意するもの
公式資料の「SPIKE Prime protocol」を確認します。
https://lego.github.io/spike-prime-docs/#
資料によると、「DeviceNotificationRequest」の2番目の引数(通知の周期)を0にすると、DeviceNotificationを無効にできると書かれています。この機能を使って、キー入力時にはセンサー情報を読み取らないことにします。これで技術的な問題は解決できます。
◆ プログラムを作成する
公式資料「LEGO Education SPIKE Prime protocol documentation」に付いてくるサンプルプログラム(examples/python/~)を改造します。
https://github.com/LEGO/spike-prime-docs/tree/main/examples/python
上記のWebページからソースファイル「app.py」「cobs.py」「crc.py」「messages.py」を入手します。そして、「app.py」と「messages.py」を修正します。
2025年1月現在では、まだカラーセンサーが正しく読み取れないバグが残っています。バグの修正方法については、この連載の第2回目の記事で紹介しています。
センサー情報を1回だけ読み取るには図のようにプログラムを作成します。 DeviceNotificationRequestの周期を1秒に設定してから、sleep関数を使って1秒待ちます。その後、DeviceNotificationRequestの周期を0秒に設定して、センサー情報の読み取りを停止させます。
◆ 動作の確認
これでBluetooth LEを使ったラージハブとの通信方法についての連載を終ります。今回はPythonを使って通信をしましたが、JavaScriptでも通信することが可能です。パソコンやタブレットやスマートフォンを使って通信できるというメリットを活かして、面白い使い道を見つけてみましょう。
今回作成したプログラム
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。