2022年5月12日

SPIKE アームユニットの制御

ここでは、アームユニットを使った制御の仕方を紹介します。ロボコンではオブジェクトを運ぶことはよくあるので、うまく動かせるようになりましょう。

はじめに使用するロボットを用意します。 画像のようなアームユニット付きのロボットを作成してください。

  • プログラム全体がシンプルになるのでプログラムが分かりやすくなる
  • 数値の調整がしやすくなる
  • 変更箇所が少なくなる

はじめに、ライントレースを行う車体を用意します。 画像のようなロボットを作成してください。

ロボット
ロボット
ロボット
ロボット

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

  • SPIKEプライム ラージハブ
  • Mモーター×2(E,Aポート)
  • Lモーター(Cポート)
  • 距離センサー(Dポート)
  • カラーセンサー(Fポート)
  • フォースセンサー(Bポート)

本記事内のプログラムの動作は以下のURLより動画で確認することができます。

https://youtu.be/IfPOmZzT_ec

また、オブジェクトは以下の画像のようなものを作成してください。

オブジェクト

◆オブジェクトをつかむ

◇プログラム1

アームユニットを用いてオブジェクトをつかんで持ち上げる動作を行います。

オブジェクトをつかんで持ち上げる動作

◇プログラム1について

このプログラムを動かすと、モーターに接続されたギアから先端にあるギアに回転が伝達して、アームがつかむ動きをします。アームが閉じ切ったところで、先端のギアが回転しなくなり、モーターに近い方のギアを軸にしてアーム全体が持ち上がる仕組みになっています。

この仕組みは使用可能なモーターの個数が少ないSPIKEプライムなどを用いたロボコンでよく使われます。 また、このプログラムのようにモーターが1回転以上しない動きの場合、ずれを防ぐために、回転量を指定するのではなく位置を指定するブロックを使いましょう。

◆オブジェクトを見つけてつかむ

◇プログラム2

SPIKEアプリでプログラミングします。

オブジェクトを見つけてつかむプログラム

◇プログラム2について

まず、移動に使うモーター、モーターの回転速度と回転数の初期化を行なっています。次に、アームユニットを開いて距離センサーがオブジェクトから5cm以内になるまで移動を行います。オブジェクトが見つかったら移動を停止してアームユニットを閉じ、オブジェクトをロボットの左側に避ける動きをします。ロボットが元の向きに戻り、アームユニットを開いてプログラムが終了します。

プログラム3

プログラム2に対してマイブロックを有効活用することで、プログラムが見やすくなります。特にロボコンなどではアームユニットを動かす回数が多いので活用してみましょう。

プログラム3

プログラム4

プログラム3に変更を加えたものです。
距離センサーがどこで反応するのか確認するために、距離センサーの値に応じてロボットから鳴る音を変更しています。このように音を鳴らしてデバッグをすることで、距離センサーの適切なしきい値を見つける際に役立ちます。

プログラム4

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

(2022/2/16 現在)