教師用ツールボックス - このアクティビティの目的
前のページでは、学生は Brain Up ボタンを使用してアームを回転させるようにプログラムしていました。 このページは、前のプロジェクトに基づいて構築され、Brain Down ボタンを使用してアームがスピンダウンするようにプログラムします。
このアクティビティでは、[If then else] ブロックを使用したプログラミングと、センシング ブロックとオペレーター ブロックを使用してロボットに Brain Up または Down ボタンが押されたかどうかを確認させるプログラミングを紹介します。 Brain Up ボタンを押すと、クローボットの腕が上がります。 Brain Down ボタンを押すと、クローボットの腕が下がります。 これは前のアクティビティを基礎としており、「再考」セクションのユーザー インターフェイス チャレンジの基礎も設定します。
ユーザー インターフェイス チャレンジでは、学生は、IQ Robot Brain のボタンを使用して、アームの上げ下げ、爪の開き、爪の閉じを行うように Clawbot をプログラムする必要があります。
[If then], [If then else], <Brain ボタンが押された>, または [Spin] ブロックの詳細については、VEXcode IQ 内のヘルプ情報を参照してください。 この組み込みヘルプ ツールの詳細については、 ここをクリックしてください。
以下は、生徒がこのアクティビティで行うことの概要です。
-
既存の ArmUp2 を使用して、提供されている ArmUpDown プロジェクトをビルドし、プロジェクトが何を行うかを予測します。
-
プロジェクト内のブロックの流れを説明するフローチャートを表示します。
-
ArmUpDown プロジェクトが何を行うかについての説明を洗練させます。
-
If then Else Blocks のチュートリアル ビデオをご覧ください。
-
[If then else] ブロックを使用してプロジェクトを編集します。
-
立ち止まって話し合う: 生徒は、プロジェクトで Clawbot に何をさせるかについて、実際の観察と比較して予測を振り返ります。
-
アームのプログラミングと同じプロジェクト アウトラインを使用して、爪をプログラムします。
量 | 必要な材料 |
---|---|
1 |
VEX IQ スーパーキット |
1 |
VEXコードIQ |
1 |
エンジニアリングノート |
1 |
クローボット (ドライブトレイン) テンプレート |
Clawbot アームは上下に動く準備ができています。
このアクティビティでは、ロボットに条件付きの動作をプログラムするためのツールが提供されます。
[If then else] ブロックがアクティビティ内の主な焦点ですが、他の Sensing、Control、および Operator ブロックも使用されます。
VEXcode IQ 内のヘルプ情報を使用して、ブロックについて学ぶことができます。 ヘルプ 機能の使用方法については、「ヘルプの使用」チュートリアルを参照してください。
教師へのヒント
学生が VEXcode IQ を初めて使用する場合は、ツールバーのチュートリアルを参照して、他の基本的なスキルを学ぶこともできます。
ステップ 1: アームを下に動かすようにプログラミングします。
前のページでは、Brain Up ボタンが押されたときに Clawbot のアームが回転するようにプログラムしました。 しかし、腕も下げるのはどうでしょうか? まず、以前の ArmUp2 プロジェクトを振り返ってみましょう。
同じ [If then] ブロックを使用して、腕を上に回転させたり、腕を下に回転させたりすることは可能でしょうか? 試してみよう! 既存の ArmUp2 プロジェクトを編集して、以下のプロジェクトをビルドします。
-
プロジェクトを ArmUpDown として保存します。 学生がプロジェクトの保存についてサポートが必要な場合は、「名前付けと保存」チュートリアルを参照してください。
-
プロジェクト名 ArmUpDown がツールバーの中央のウィンドウに表示されていることを確認します。
-
エンジニアリング ノートでプロジェクトの Clawbot に何をさせるかを予測します。 ユーザーと Clawbot の両方の動作を説明します。
-
プロジェクトが Clawbot に何をさせるかについての予測が正しいかどうかをテストして確認します。
-
プロジェクトを Clawbot の スロット 3 にダウンロードし、実行します。
-
プロジェクトのダウンロードと実行のヘルプについては、プロジェクトのダウンロードと実行方法を説明する VEXcode IQ のチュートリアルを参照してください。
-
-
プロジェクトの説明を確認し、必要に応じてメモを追加して修正します。
教師用ツールボックス
学生が上記で構築したプロジェクトは機能します。 Brain Up ボタンを押すとアームが上向きに回転し、Brain Down ボタンを押すとアームが下向きに回転します。 プロジェクトは現状のままで動作しますが、最適に記述されているわけではありません。 両方の条件が同時に真になる場合もあります。 また、ブレインアップボタンを押し始める条件が最初であるため、ブレインアップボタンを押したままブレインダウンボタンも押すと、アームは回転し続けることに注意してください。 そのアクションは、Brain Up ボタンを放すまで停止しません。 したがって、これらの潜在的な問題を回避するために、次のステップでプロジェクトが書き直されて [If then else] ブロックが含まれます。
教師用ツールボックス - 立ち止まって話し合う
生徒たちはプロジェクトをテストしたので、自分たちの予測と観察を比較してどうだったかを尋ねます。 次の質問をすることで、ディスカッションを促進します。
-
あなたの予測は観察と同じでしたか?
-
プロジェクトでは何が起こっているようですか?
-
上ボタン、下ボタンの押下状態は1回のみ確認されていますか?
-
プロジェクトを再編成して、より効率的に実行できると思いますか?
ステップ 2: プロジェクトの流れを理解する。
前のステップで、プロジェクトは腕を上げたり下げたりしました。 ただし、ブレインアップボタンを押し始める条件が先なので、ブレインアップボタンを押したままブレインダウンも押した場合、ブレインアップボタンを押すまで動作が止まらないため、アームは回転し続けます。解放されます。 プロジェクトの流れを説明する次のフローチャートをご覧ください。
したがって、プロジェクトは [If then] ブロックを [If then else] ブロックに置き換えて、常に 1 つのインスタンスのみが true になるようにすることができます。
[If then else] ブロックに関する次のチュートリアル ビデオをご覧ください。
まず、VEXcode IQ の If-Then-Else チュートリアル ビデオをご覧ください。
[If then else] ブロックを使用すると、[Brain Up] ボタンが放されるまでアームが回転し続けるため、[Wait until] ブロックも不要になります。 これは、Brain Up ボタンの条件が false (解放される) まで、[If then else] の「else」部分が に到達しないために発生します。
[Forever] ブロックを使用すると、最初の条件を継続的にチェックできます。
[If then else] ブロックを追加して、プロジェクトの変更を検討してみましょう。 アームモーターは、Brain Up ボタンが押されなくなる (放される) まで回転し続けます。 [Forever] ブロックにより、この条件は false になるまでチェックされ続けます。
Brain Up ボタンの条件が false になると、プロジェクトは次のブロックに進み、Brain Down ボタンが押されたかどうかを確認します。 Brain Down ボタンが押された条件が真の場合、アームが回転します。 繰り返しますが、[Forever] ブロックにより、この条件は false になるまでチェックされ続けます。
Brain Up ボタンの条件が false になると、プロジェクトは次のブロックである [Stop Motor] ブロックに進みます。 したがって、アーム モーターは両方の条件が偽の場合 (どちらのボタンも押されていない場合) にのみ停止します。
ディスカッションの動機付け
Q: ブレインアップボタンの押下条件がFALSE(解除)の場合、プロジェクトの流れはどうなりますか?
A: 条件が false の場合、プロジェクト フローは Brain Down ボタンが押された状態のチェックを続けます。
Q: 上記のプロジェクトの [If then else] ブロックの目的は何ですか?
A: [If then else] ブロックを使用すると、一度に 1 つのインスタンスのみが true になります。 したがって、[If then else] ブロックを使用して Brain Up ボタンと Brain Down ボタンを同時に true にすることはできません。これは、Brain Down ボタンが押されたときの 2 番目の条件は、最初の条件が満たされない限りオプションにさえならないためです。 Brain Up ボタンが押されたのは false でした。 もう 1 つの目的は、プログラミングの効率を向上させることです。
Q: 上ボタンと下ボタンが両方とも押された条件が false の場合、プロジェクト フローはどのように進行しますか?
A: 両方の条件が false の場合、プロジェクト フローは [モーターの停止] ブロックに進み、その後スタックの先頭に戻り、永遠に繰り返します。
ステップ 3: [If then else] ブロックによる プログラミング。
[If then else] ブロックを使用してみましょう。
-
[If then else] ブロックを ArmUpDown プロジェクトに追加して、プロジェクトが次のようになります。
-
プロジェクトを ArmUpDown2 として保存します。 学生がプロジェクトの保存についてサポートが必要な場合は、「名前付けと保存」チュートリアルを参照してください。
-
プロジェクトを Clawbot の スロット 4 にダウンロードし、実行します。
-
プロジェクトのダウンロードと実行のヘルプについては、プロジェクトを して実行する方法を説明する VEXcode IQ のチュートリアルを参照してください。
-
Brain Up ボタンを押すとアームがスピンアップし、Brain Down ボタンを押すとアームがスピンダウンするかどうかをテストします。
-
Brain Up および Down ボタンを押していない (放している) とアーム モーターが停止することを確認します。
-
if then else ブロックをプロジェクトに追加する前後で Clawbot がどのように動作したかを観察し、エンジニアリング ノートに書き留めます。
教師用ツールボックス - 立ち止まって話し合う
生徒が [If then else] ブロックを追加する前と追加した後でプロジェクトをテストした後、これにより Brain Up ボタンが放されるまでアームが回転し続ける仕組みについて生徒と話し合います。 生徒に、工学ノートから観察したことを共有してもらいます。 次の質問をしてディスカッションを促進します。
-
[If then else] ブロックを使用した場合と、[If then] ブロックのみを使用した場合とで Clawbot の動作が異なることがわかりますか?
-
プログラムの効率が重要なのはなぜだと思いますか?
-
Brain Up ボタンの状態はプロジェクト内で 1 回だけチェックされますか?
学生のエンジニアリング ノートは、個人 (Google / .docx / .pdf) またはチーム (Google / .docx / .pdf) として管理および採点できます。 前のリンクでは、アプローチごとに異なるルーブリックが提供されています。 教育計画にルーブリックが含まれる場合は、活動を開始する前にルーブリックについて説明するか、少なくともコピーを生徒に渡すことをお勧めします。
教師用ツールボックス
生徒は、[If then else] ブロックを使用した場合と [If then] ブロックを使用した場合とで、Clawbot の動作に大きな違いが見られない可能性があります。 生徒が物理的に大きな違いを認識できない場合は、プログラミングの効率性と、プロジェクトを簡素化することで使用するブロックがどのように削減されるかについて話し合います。 プロジェクト内で使用するブロックの数を減らすと、潜在的なエラーの量を減らすことができます。
ステップ 4: 爪をプログラムする。
前のステップでは、[If then else] ブロックを使用して、プロジェクトがより効率的に実行されるように最適化されました。 前の例では、腕は Brain Up および Down ボタンを使用して操作されました。
全く同じプロジェクト概要を使用して、Claw も操作できます。
-
ArmUpDown2 プロジェクトを確認し、ドロップダウン メニューを使用して [Spin] ブロックを ArmMotor ではなく ClawMotor に変更します。
ドロップダウン メニューを使用して、Brain Up ボタンで爪が「開く」ように回転し、Brain Down ボタンで爪が「閉じる」ように回転することを確認します。
-
プロジェクトを ClawUpDown として保存します。 学生がプロジェクトの保存についてサポートが必要な場合は、「名前付けと保存」チュートリアルを参照してください。
-
プロジェクトを Clawbot の スロット 1 にダウンロードし、実行します。
-
プロジェクトのダウンロードと実行のヘルプについては、プロジェクトを して実行する方法を説明する VEXcode IQ のチュートリアルを参照してください。
-
Brain Up ボタンを押すとクローが回転して開き、Brain Down ボタンを押すと回転して閉じるかどうかをテストします。
-
Brain Up および Down ボタンを押していない (放している) とクロー モーターが停止することを確認します。
-
if then else ブロックをプロジェクトに追加する前後で Clawbot がどのように動作したかを観察し、エンジニアリング ノートに書き留めます。
教師用ツールボックス
ボタンを使用して腕と爪を操作するスキルを生徒が習得したので、同じプロジェクトで 4 つの動作すべて (腕を上げる、腕を下げる、爪を開ける、爪を閉じる) をどのように実行できるかを生徒にブレインストーミングしてもらいます。
生徒は、再考セクションの別の [if then else] ブロックを利用して、ロボットが 4 つのアクションすべてを実行できるようにします。
学習を延長 - セット モーター停止ブロック
学生がアームを上げ下げするようにロボットをプログラムすると、Claw の重量によりアームが垂れ下がってしまう可能性があります。
この場合、重力や爪の重みでアームが落下しないように、[モーター停止設定] ブロックを使用することができます。 このブロックはプロジェクトの開始時に使用でき、プロジェクトの残りの将来のすべてのモーター ブロックに適用されます。
設定されたモーター停止ブロックには 3 つの設定があります。
-
ブレーキ により、モーターが即時に停止します。
-
Coast では、モーターが徐々に回転して停止します。
-
ホールド を選択すると、モーターが即時に停止し、移動すると停止位置に戻ります。