2025年8月29日
026-1.SPIKEプライム Python入門(SPIKE App3)-第3回「モーターをペアで動かす」
この記事では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」と専用アプリ(SPIKEアプリ)を使った、Pythonのプログラミング方法について紹介します。原稿執筆時点のSPIKEアプリの最新バージョンは3.5.1です。(文/松原拓也)
◆ ロボットを前進させる
モーターペアを実験するプログラムです(motorpair1.llsp3)。
モーターペアを制御するには「motor_pair」というライブラリを使います。 「move_for_degree」は指定した角度を回転させる関数です。ロボットに付いているタイヤは直径約5.6cmです。そのため、タイヤの円周は5.6×3.1415=約17.59cmとなります。ロボットを15cm移動させたい場合は、360×15÷17.59=約306.95度モーターを回します。 move_for_degree関数の引数はペアスロット、角度、ステアリング、角速度です。角速度は省略可能です。ペアスロットはモーターペアの登録先のことです。ペアスロットは全部で3つあります。ここでは1番を使います。
◆ その場旋回
◆ ロボットの向きを見える化
今回もロボットの動きを「見える化」してみましょう。 ここではラージハブに搭載されているジャイロセンサーを使って、ロボットの向きを検出して、ライトマトリクスに表示したいと思います。SPIKEアプリではジャイロセンサーと加速度センサーをまとめて「モーションセンサー」と呼んでいます。
先ほどのプログラムに向きを改造してみました(motorpair3.llsp3)。 「gyro」が新しく追加した関数です。gyro関数はmain関数と並行して非同期処理で動きます。 ラージハブの向きを検出するには「motion_sensor.tilt_angles」関数を呼び出すだけです。関数の戻り値はヨー、ロール、ピッチの3軸がありますが、ここではヨー軸だけを使います。ヨー軸は0.1度を1として扱いますので、10で割って1度単位に変換します。 ライトマトリクスに描く際に、三角関数を使って座標を計算します。三角関数で計算するには「math」ライブラリを使います。「math.cos」がコサイン関数、「math.sin」がサイン関数です。
プログラムを実行中の様子
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。