コントローラーのボタンを使用して空気圧を制御する

V5 コントローラで空気​​圧を制御するには、カスタマイズされたプロジェクトが必要です。この記事では、VEXcode V5 プロジェクトの作成方法について説明します。


プロジェクトの構成

VEXcode V5ツールバーで、コードビューアとモニターコンソールアイコンの間にデバイスアイコンがハイライト表示されています。

[デバイス] ボタンを選択して、[デバイス] ウィンドウを開きます。

VEXcode V5のデバイスメニューに「デバイスを追加」ボタンが表示されています。

「デバイスを追加」を選択します。

「デバイスを追加」ボタンを選択した後のVEXcode V5デバイスメニュー。「コントローラー」オプションがハイライト表示されています。

VEXcode V5 プロジェクトを開始して空気圧を制御するには、2 つのデバイスを構成する必要があります。

コントローラーデバイスを追加する必要があります。

コントローラー デバイスの構成の詳細については、VEX ライブラリの「 VEXcode V5 での V5 コントローラーの構成 の記事を参照してください。

VEXcode V5の3線式オプションは、「デバイスの追加」メニューに表示されます。VEXcode V5のデジタル出力オプションは、「デバイスの追加」メニューに表示される3線式デバイスから選択できます。

 

3 線式デバイスのデジタル出力も追加する必要があります。

デジタル出力デバイスの設定に関する詳細については、VEXライブラリの「 VEXcode V5での3線式デジタル入力およびデジタル出力デバイスの設定 の記事を参照してください。


2 つのコントローラー ボタンで空気圧シリンダーを制御

ドライバーがロボットの空気圧を制御するために使用する一般的に好まれる方法が 2 つあります。 

1 つの方法は、コントローラーの 2 つの異なるボタンを使用することです。1 つのボタンは空気圧シリンダーを伸ばすためのボタン、もう 1 つのボタンは空気圧シリンダーを縮めるためのボタンです。以下を VEXcode V5 プロジェクトに追加して、コントローラーの 2 つのボタンを使用して空気圧シリンダーを制御できます。

VEXcode V5 ブロック プロジェクトで、開始時に DigitalOutA をローに設定するという記述があります。

センシングツールボックスから、設定されたデジタル出力ブロックを[開始時]ブロックに追加します。

[デジタル出力設定] ブロックは「低」に設定する必要があります。これにより、空気圧シリンダーが完全に収縮した状態でプロジェクトを開始できるようになります。

VEXcode V5 ブロックプロジェクトで、コントローラー1のボタンL1が押されたときに読み上げます。ボタンのドロップダウンメニューが強調表示されているのは、より多くのオプションを選択するために選択できることを示すためです。

イベントツールボックスから[コントローラーボタンが押されたとき]ブロックを追加します。

空気圧シリンダーを延長するために使用するコントローラー ボタンを選択します。

この例ではボタン L1 が使用されています。

VEXcode V5 ブロックプロジェクトで、Controller1 ボタン L1 が押されたときに DigitalOutA をハイに設定するという内容です。デジタル出力のドロップダウンメニューが強調表示され、選択および変更可能であることを示しています。

[set DigitalOut] ブロックを追加します。

デジタル出力設定には「高」を選択します。

これにより、コントローラーのボタン L1 が押されたときに空気圧シリンダーが伸長します。

VEXcode V5 ブロックプロジェクトで、コントローラー1のボタンL2が押されたときに読み上げます。ボタンのドロップダウンメニューが強調表示されているのは、より多くのオプションを選択するために選択できることを示すためです。

イベント ツール ボックスから、別の [コントローラー ボタンが押されたとき] ブロックを追加します。

空気圧シリンダーを格納するために使用するコントローラーのボタンを選択します。

この例ではボタン L2 が使用されています。

VEXcode V5 ブロックプロジェクトで、Controller1 ボタン L2 が押されたときに DigitalOutA をローに設定するという内容です。

[set DigitalOut] ブロックを追加します。

デジタル出力設定は「低」のままにしておきます。

これにより、コントローラーのボタン L2 が押されたときに空気圧シリンダーが収縮します。

プロジェクトを保存し、V5 Robot Brain にダウンロードし、プロジェクトを実行して、コントローラーを使用して空気圧シリンダーの制御をテストします。

VEXcode V5 プロジェクトの保存、ダウンロード、実行の詳細については、VEX ライブラリの「 ブロック プロジェクトを開いて保存する セクションを参照してください。


単一のコントローラボタンで空気圧シリンダを制御

ドライバーがロボットの空気圧を制御するために使用するもう 1 つの好ましい方法は、単一のボタンを使用することです。ボタンを押すと空気圧シリンダーが伸び、もう一度押すと空気圧シリンダーが収縮します。以下を VEXcode V5 プロジェクトに追加して、コントローラーの 1 つのボタンを使用して空気圧シリンダーを制御できます。

VEXcode V5 ブロック プロジェクトで、開始時に DigitalOutA をローに設定するという記述があります。

センシングツールボックスから、設定されたデジタル出力ブロックを[開始時]ブロックに追加します。

[デジタル出力設定] ブロックは「低」に設定する必要があります。これにより、空気圧シリンダーが完全に収縮した状態でプロジェクトを開始できるようになります。

VEXcode V5で「新規変数」メニューを開き、新しいブール変数を作成します。

[変数] ツールボックスから [ブール値の作成] を選択します。

この例では、ブール値をdigitaloutONと呼びます。

VEXcode V5 ブロック プロジェクトでは、開始時に DigitalOutA を low に設定し、次に digitaloutON を true に設定します。

[setdigitaloutON]ブロックを追加します。

ブール値を <true>に設定したままにします。

VEXcode V5 ブロックプロジェクトで、コントローラー1のボタンL1が押されたときに読み上げます。ボタンのドロップダウンメニューが強調表示されているのは、より多くのオプションを選択するために選択できることを示すためです。

イベント ツールボックスから {when Controller button pressed} ブロックを追加します。

空気圧シリンダーを延長するために使用するコントローラー ボタンを選択します。

この例ではボタン L1 が使用されています。

VEXcode V5 ブロック プロジェクトで、コントローラー 1 ボタン L1 が押されたときに、空白の場合は、そうでない場合は、と読みます。

コントロール ツールボックスから [if then else] ブロックを追加します

VEXcode V5 ブロック プロジェクトで、コントローラー 1 ボタン L1 が押されたときに、デジタル出力が ON の場合、そうでない場合は、と読みます。

if に <digitaloutON> ブール値を追加します。

VEXcode V5 ブロック プロジェクトは、コントローラー 1 ボタン L1 が押されたときに、digitaloutON の場合は DigitalOutA をハイに設定し、そうでない場合は、と読みます。

[set DigitalOut] ブロックを C ブロックの「then」部分に追加します。

[set DigitalOut] ブロックを「高」に変更します。

VEXcode V5 ブロックプロジェクトは、コントローラー1のボタンL1が押されたときに、digitaloutONの場合はDigitalOutAをhighに設定し、そうでない場合はDigitalOutAをlowに設定します。

[set DigitalOut] ブロックを C ブロックの「else」部分に追加します。

[set DigitalOut] ブロックは「low」のままにしておきます。

VEXcode V5 ブロックプロジェクトは、コントローラー1のボタンL1が押されたときに、digitaloutONの場合はDigitalOutAをハイに設定し、digitaloutONをfalseに設定し、そうでない場合はDigitalOutAをローに設定します。

[setdigitaloutON]ブロックを追加します。

ブール値を <false>に変更します。

これによりブール値が変更され、次回 L1 ボタンが押されたときに条件がコントロール C ブロックの「else」に移行します。

VEXcode V5 ブロックプロジェクトは、コントローラー1のボタンL1が押されたときに、digitaloutONの場合はDigitalOutAをハイに設定し、digitaloutONをfalseに設定し、そうでない場合はDigitalOutAをローに設定し、digitaloutONをtrueに設定します。

別の [setdigitaloutON] ブロックを追加します。

ブール値は <true>のままにします。

これによりブール値が変更され、次に L1 ボタンが押されたときに条件がコントロール C ブロックの「then」に移行します。

VEXcode V5 ブロック プロジェクトに、コントローラー 1 ボタン L1 が押されたときに、digitaloutON の場合は DigitalOutA を high に設定し、digitaloutON を false に設定し、0.1 秒待機する待機ブロックを追加しました。それ以外の場合は、DigitalOutAをlowに設定し、digitaloutONをtrueに設定してから、0.1秒待ちます。

コントロール ツールボックスから、[if then else] C ブロックの両方のセクションに [wait] ブロックを追加します。

各 [wait] ブロックの値を (0.1) 秒に変更します。

これにより、条件がボタンが押されたことを検出するまでの短い時間が可能になります。

ボタンを押すと空気圧シリンダーが伸び、もう一度押すと空気圧シリンダーが縮みます。

プロジェクトを保存し、V5 Robot Brain にダウンロードし、プロジェクトを実行して、コントローラーを使用して空気圧シリンダーの制御をテストします。

VEXcode V5 プロジェクトの保存、ダウンロード、実行の詳細については、VEX ライブラリの「 ブロック プロジェクトを開いて保存する セクションを参照してください。

VEXcode V5競技用テンプレートのサンプルプロジェクトのサムネイル。

フィールド制御システムを利用した競技会でロボットを使用できるようにするには、空圧シリンダーを制御するブロックを競技会テンプレートのサンプル プロジェクトで再作成する必要があります。

競争テンプレートの詳細については、VEX ライブラリの「 VEXcode V5 でのブロック競争テンプレートの使用 の記事を参照してください。

これらのプロジェクトは、単動空気圧シリンダと複動空気圧シリンダの両方を制御するために使用できます。 2 つの空気圧シリンダが「T」フィッティングを使用してソレノイド バルブに取り付けられている場合、両方のシリンダは同じブロックのセットによって制御されます。

注: V5 Robot Brain の 3 線式ポートは、プロジェクトが停止されるとデジタル入力ポートに戻ります。残留空気圧が十分にある場合、空気圧シリンダが伸びる可能性があります。これを回避するには、プロジェクトを停止する前に、フィンガー バルブをオフの位置に切り替えるか、シュレーダー タイヤ バルブのコアを押し下げて空気圧を解放します。

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: