V5 コントローラで空気圧を制御するには、カスタマイズされたプロジェクトが必要です。 この記事では、VEXcode V5 プロジェクトの作成方法について説明します。
プロジェクトの構成
[デバイス] ボタンを選択して、[デバイス] ウィンドウを開きます。
「デバイスを追加」を選択します。
VEXcode V5 プロジェクトを開始して空気圧を制御するには、2 つのデバイスを構成する必要があります。
コントローラーデバイスを追加する必要があります。
コントローラー デバイスの構成の詳細については、VEX ライブラリの「 VEXcode V5 での V5 コントローラーの構成 の記事を参照してください。
3 線式デバイスのデジタル出力も追加する必要があります。
デジタル出力デバイスの構成の詳細については、VEX ライブラリの「 VEXcode V5 での 3 線式デジタル入力およびデジタル出力デバイスの構成」の記事を参照してください。
2 つのコントローラー ボタンで空気圧シリンダーを制御
ドライバーがロボットの空気圧を制御するために使用する一般的に好まれる方法が 2 つあります。
1 つの方法は、コントローラーの 2 つの異なるボタンを使用することです。1 つのボタンは空気圧シリンダーを伸ばすためのボタン、もう 1 つのボタンは空気圧シリンダーを縮めるためのボタンです。 以下を VEXcode V5 プロジェクトに追加して、コントローラーの 2 つのボタンを使用して空気圧シリンダーを制御できます。
センシングツールボックスから、設定されたデジタル出力ブロックを[開始時]ブロックに追加します。
[デジタル出力設定] ブロックは「低」に設定する必要があります。 これにより、空気圧シリンダーが完全に収縮した状態でプロジェクトを開始できるようになります。
イベントツールボックスから[コントローラーボタンが押されたとき]ブロックを追加します。
空気圧シリンダーを延長するために使用するコントローラー ボタンを選択します。
この例ではボタン L1 が使用されています。
[set DigitalOut] ブロックを追加します。
デジタル出力設定には「高」を選択します。
これにより、コントローラーのボタン L1 が押されたときに空気圧シリンダーが伸長します。
イベント ツール ボックスから、別の [コントローラー ボタンが押されたとき] ブロックを追加します。
空気圧シリンダーを格納するために使用するコントローラーのボタンを選択します。
この例ではボタン L2 が使用されています。
[set DigitalOut] ブロックを追加します。
デジタル出力設定は「低」のままにしておきます。
これにより、コントローラーのボタン L2 が押されたときに空気圧シリンダーが収縮します。
プロジェクトを保存し、V5 Robot Brain にダウンロードし、プロジェクトを実行して、コントローラーを使用して空気圧シリンダーの制御をテストします。
VEXcode V5 プロジェクトの保存、ダウンロード、実行の詳細については、VEX ライブラリの「 ブロック プロジェクトを開いて保存する セクションを参照してください。
単一のコントローラボタンで空気圧シリンダを制御
ドライバーがロボットの空気圧を制御するために使用するもう 1 つの好ましい方法は、単一のボタンを使用することです。ボタンを押すと空気圧シリンダーが伸び、もう一度押すと空気圧シリンダーが収縮します。 以下を VEXcode V5 プロジェクトに追加して、コントローラーの 1 つのボタンを使用して空気圧シリンダーを制御できます。
センシングツールボックスから、設定されたデジタル出力ブロックを[開始時]ブロックに追加します。
[デジタル出力設定] ブロックは「低」に設定する必要があります。 これにより、空気圧シリンダーが完全に収縮した状態でプロジェクトを開始できるようになります。
[変数] ツールボックスから [ブール値の作成] を選択します。
この例では、ブール値をdigitaloutONと呼びます。
[setdigitaloutON]ブロックを追加します。
ブール値を <true>に設定したままにします。
イベント ツールボックスから {when Controller button pressed} ブロックを追加します。
空気圧シリンダーを延長するために使用するコントローラー ボタンを選択します。
この例ではボタン L1 が使用されています。
コントロール ツールボックスから [if then else] ブロックを追加します
if に <digitaloutON> ブール値を追加します。
[set DigitalOut] ブロックを C ブロックの「then」部分に追加します。
[set DigitalOut] ブロックを「高」に変更します。
[set DigitalOut] ブロックを C ブロックの「else」部分に追加します。
[set DigitalOut] ブロックは「low」のままにしておきます。
[setdigitaloutON]ブロックを追加します。
ブール値を <false>に変更します。
これによりブール値が変更され、次回 L1 ボタンが押されたときに条件がコントロール C ブロックの「else」に移行します。
別の [setdigitaloutON] ブロックを追加します。
ブール値は <true>のままにします。
これによりブール値が変更され、次に L1 ボタンが押されたときに条件がコントロール C ブロックの「then」に移行します。
コントロール ツールボックスから、[if then else] C ブロックの両方のセクションに [wait] ブロックを追加します。
各 [wait] ブロックの値を (0.1) 秒に変更します。
これにより、条件がボタンが押されたことを検出するまでの短い時間が可能になります。
ボタンを押すと空気圧シリンダーが伸び、もう一度押すと空気圧シリンダーが縮みます。
プロジェクトを保存し、V5 Robot Brain にダウンロードし、プロジェクトを実行して、コントローラーを使用して空気圧シリンダーの制御をテストします。
VEXcode V5 プロジェクトの保存、ダウンロード、実行の詳細については、VEX ライブラリの「 ブロック プロジェクトを開いて保存する セクションを参照してください。
フィールド制御システムを利用した競技会でロボットを使用できるようにするには、空圧シリンダーを制御するブロックを競技会テンプレートのサンプル プロジェクトで再作成する必要があります。
競争テンプレートの詳細については、VEX ライブラリの「 VEXcode V5 でのブロック競争テンプレートの使用 の記事を参照してください。
これらのプロジェクトは、単動空気圧シリンダと複動空気圧シリンダの両方を制御するために使用できます。 2 つの空気圧シリンダが「T」フィッティングを使用してソレノイド バルブに取り付けられている場合、両方のシリンダは同じブロックのセットによって制御されます。
注: V5 Robot Brain の 3 線式ポートは、プロジェクトが停止されるとデジタル入力ポートに戻ります。 残留空気圧が十分にある場合、空気圧シリンダが伸びる可能性があります。 これを回避するには、プロジェクトを停止する前に、フィンガー バルブをオフの位置に切り替えるか、シュレーダー タイヤ バルブのコアを押し下げて空気圧を解放します。