2022年1月20日

SPIKE 変数を用いたラインの検知

競技シーンなどでSPIKE プライムを使用する際に、コース内の決められた数のラインを検知する必要があります。ここでは変数を使って検知しているラインの本数を記録する方法や指定の数のラインを検知した際のモーターの制御方法を記載しています。

はじめに簡易的な車体を用意します。(ここではSPIKE プライム ラージハブを地面と水平になるように組み立ててください。)

車体に使用しているハードウェア

  • SPIKE プライム ラージハブ
  • Mモーター×2(A,Eポート)
  • カラーセンサー(Fポート)
SPIKE車体

本記事のプログラムの動作はこちらの動画で確認できます。 (https://youtu.be/Pg8oP3Oehoo)

◆まずは簡易なプログラムをSPIKEアプリでプログラミングします。

簡易なプログラム

黒線の上を通過すると変数の値としてカウントするプログラムです。
SPIKEアプリの画面右に変数で格納されている値を確認できます。 (プログラムを実行する際にラージハブをPCとUSB接続もしくは、Bluetooth接続している必要があります。) 黒線の上を通過すると変数の値としてカウントするプログラム

変数にカウントする「変数を1ずつ変える」ブロックが機能することで変数の値を更新させていますが、その下に「0.5秒待つ」ブロックを繋げています。こうすることで誤って同じ黒線を複数回検知することを回避しています。
黒線の太さや車体の動く速さに応じて「0.5秒待つ」の秒数を調整する必要がある場合があります。
このプログラムではモーターを制御していないので、車体を手持ちで動かし黒線を通過させて変数にカウントされることを確認してみます。

◆黒線を通過すると変数でカウントできることを確認できたら、モーターの制御と合わせてプログラミングしてみます。
モーターの制御と合わせてプログラミング

プログラムを実行すると前進します。前進している途中で黒線を2本通過し、3本目を検知すると停止します。
「変数=3まで繰り返す」のループを抜けると停止するようになっています。

◆さらにプログラムを改良します。黒線以外の線も検知できるようにプログラムを変更しています。
ここでは黒線に加え赤線もカウントに含めるようにしています。コースに黄色線もあり、黄色線はカウントしないようにしています。 プログラムを改良

動画では黒→黄→黒→赤と通過していますが、黄色をカウントせず3カウント目の赤線で停止しています。

◆以下は同じ動作をするプログラムですが、このように別の方法で作ることもできます。 別の方法

※2022/1/17現在 最新バージョン(2.0.4)のSPIKEアプリに基づく情報です。
※これらの仕様はアプリのアップデートによって変更される場合があります。

(2022/1/17 現在)