2022年5月26日
SPIKE 回転数制御で走行
ロボコンなどの競技ではロボットを正確な距離だけ移動させたい場合があります。その場合、モーターを動作させる秒数や回転数を指定することである程度の制御は簡単に行うことができますが、必ずしも正確とは限りません。 そこで今回はタイヤの円周の長さと回転数を用いて正確な距離を前進させるプログラムを考えていきます。
はじめに簡易的な車体を用意します。
車体に使用しているハードウェア
- SPIIKEプライム ラージハブ
- Mモーター×2(A,Bポート)
◆SPIKEアプリでプログラミングします。
◆プログラムについて
まずは回転数を使ったモーターの制御を行ってみましょう。スピードや回転数を変更してどのようにロボットが走行するか確認してみましょう。
例)
- 回転数:スピード 50、1回転
- 回転数:スピード 50、2回転
- 回転数:スピード -50、1回転
この時、モーター1回転でロボットは何cm進んだか考えてみましょう。ロボットに使用しているタイヤの直径は56mmなので、円周を求める演算「直径×円周率=円周」を行うと「直径56mm×3.14=175.84mm(約17.5cm)」となるのでタイヤ(モーター)1回転では約17.5cm進んでいるのがわかります。
◆SPIKEアプリでプログラミングします。
タイヤの円周と回転数を使って計算を行い正確な距離を前進させましたが、SPIKEにおけるプログラミングでは専用のブロックを使うことで簡単に実現することができます。
◆プログラムについて
新たに追加したブロック「モーター1回転を~~cmにする」ブロックに先程計算した円周の長さを設定します。モーター1回転の長さを設定することで次に使用しているブロックで「~~cm移動する」を利用することができ、演算をいちいち行わなくてもプログラムで実現できるようになります。
ここで重要なのはモーター1回転の距離なので、SPIKE標準のタイヤの円周は約17.5cmだということを覚えておきましょう。
この距離制御を応用したライントレースに関する記事はこちら
URL: http://www.robojoy-club.com/challenge/challenge_c21_1_01.php?loc=cc21_1_01
協力:株式会社PFU
※2022/5/9現在 最新バージョン(2.0.6)のSPIKEアプリに基づく情報です。
※これらの仕様はアプリのアップデートによって変更される場合があります。
(2022/5/9 現在)