スイッチ ブロック

スイッチ ブロックは、プログラミング ブロックの 2 つ以上のシーケンスを含むことができる容器です。各シーケンスは、条件と呼ばれます。スイッチの開始時点のテストで、条件を実行するかどうか判断します。スイッチが実行される度に条件を一つだけ実行します。
ここに示されるスイッチのテストは、センサー データ値やデータ ワイヤーの値に基づいてどの条件を実行するか判断することができます。一つの条件が選択され実行された後、プログラムはスイッチの後に続くブロックを継続してゆきます。

以下のプログラムは、ロボットに「Touch」と言わせて、タッチ センサーが押されたかどうか確認するテストを実施します。押された場合には、真(最上部)の条件が実行され、ロボットは「Thumbs up」を表示し、「Yes」としゃべります。タッチ センサーが押されていない場合、偽(最下部)の条件が実行され、ロボットは「Thumbs down」を表示し、「No」としゃべります。スイッチの後、ロボットは「Thank you」としゃべります。
真の条件
偽の条件

タッチ センサーは、ロボットが「Touch」と言い終えるとすぐにテストされます。その瞬間にセンサーが押されている場合、、スイッチは真の条件を実行し、そうでない場合は偽の条件を実行します。
ヒントと豆知識
スイッチはセンサー データ値やデータ ワイヤーが一定の値に達するまで待機しません。スイッチ ブロックが開始するとすぐにテストが実行され、条件の一つが選択され、テスト後に直ちに実行されます。
上記のプログラムで、テスト前に(またはプログラム開始前でも)タッチ センサーを押したままにして、スイッチが必ず真の条件を実行するようにすることができます。センサーを押すために必要な時間を確認して、その時間内にセンサーを押すことにより、ロボットに「Yes」と言わせることができます。
その状況でロボットに何もさせたくない場合、スイッチの条件を空白のままにしておくことができます。上記のプログラムの偽の条件から 2 個のブロックを削除し、何が起こるか確認してみてください。
タブ付きビュー
スイッチは、上記の例に示されているような平面ビューや以下に示されているようなタブ付きビューを表示することができます。平面ビューでは、条件のすべてが異なる行に表示されます。タブ付きビューでは、条件のうち一つだけが一度に表示されます。

タブ付きビューを使って、プログラムが画面上で占める空間を小さくすることができます。ビューはスイッチの実行の仕方に影響を与えません。



平面/タブ セレクター
真の条件
偽の条件

スイッチを平面ビューとタブ付きビューで切り替えるには、平面/タブ セレクターをクリックします。

タブ付きビューのスイッチの異なる条件を表示するには、スイッチの境界の最上部にある異なるタブをクリックします。
ヒントと豆知識
タブ付きスイッチの条件のすべてのブロックは、一度にその一部しか確認することができなくてもプログラムの一部となっています。
スイッチのテストの選択


モード セレクター
ポート セレクター
入力

モード セレクターを使って、スイッチが実行する条件を選択するために使うテストのタイプを選択します。センサー値やデータ ワイヤー値をテストすることができます。

ポートが使用するモードを選択する場合、ポート セレクターを使って、ポートがセンサーやモーターが接続されている EV3 ブロックのポートと一致することを確認します。

利用できる入力内容はモードごとに異なります。一定のモードでは、センサー値をしきい値と比較することができ、その他のモードでは特定のセンサー値をテストすることができます。モードについては以下に記載しています。
センサーのしきい値をテストする
スイッチ ブロックには、数値センサー データ値を読み取り、これをしきい値と比較して真または偽の結果を取得するいくつかのモードが含まれています。例えば、「カラー センサー - 比較 - 反射光の強さ」モードで、カラー センサーの反射光の強さが 50 未満であるかどうかテストすることができます。

これらのモードでは、スイッチ ブロックには 2 つの条件が含まれています。テストの結果が真である場合に真の条件が実行され、そうでない場合には偽の条件が実行されます。
ヒントと豆知識
真の条件は、チェックマークで記されている平面ビューの最上部の条件です。偽の条件は、「X」でマークされている最下部の条件です。
センサー しきい値のモードを使用するには、比較タイプ(例えば、「~未満」)を選択し、しきい値を入力して(例えば、50)センサー データと比較します。スイッチ ブロックは、一つのセンサー値を読み取り、これをしきい値と比較して真または偽の結果を取得します。
このプログラムでは、スイッチ ブロックは「カラー センサー - 比較 - 反射光の強さ」モードを使って、反射光の強さが 50未満であるかどうかをテストします。50 未満である場合に「Low」を表示し、そうでない場合には「High」を表示します。スイッチは、ディスプレイが新規のセンサーのテストに応じて継続的に更新されるよう、ループ内で繰り返されます。
ヒントと豆知識
センサーのテストは極めて迅速に実施されます。上記の例のループがなくても、プログラムはセンサーを一度だけはテストし、気づかないだけ迅速にテストを終了します。
特定のセンサー値をテストする
以下のモードにより、スイッチは特定のセンサー値をテストすることができます。スイッチにおいて、テストしたい異なる値に対応する2つ以上の条件を作成することができ、スイッチは適合する条件を選択します。
モード使用例参照
インテリジェント ブロック ボタン - 測定 押されたインテリジェント ブロック ボタンに応じて 2 つ以上の条件を選択します。インテリジェント ブロック ボタンを使用する
インテリジェント ブロック ボタン - 比較 選択したインテリジェント ブロック ボタンの一つが押されたか、離れたか、あるいはバンプしたかどうかに応じて 2 つ以上の条件を選択します。インテリジェント ブロック ボタンを使用する
カラー センサー - 測定 - 色 検知された色に応じて 2 つ以上の条件を選択します。カラー センサーを使用する
カラー センサー - 比較 - 色 選択した色の一つが検知されたかどうかによって 2 つ以上の条件を選択します。カラー センサーを使用する
赤外線センサー-測定-遠隔 赤外線ビーコンで押されたボタンに応じて 2 つ以上の条件を選択します。赤外線センサー 遠隔モードを使用する
赤外線センサー-比較-遠隔 赤外線ビーコンの特定のボタンが押された(または特定のボタンのセットが押されたかどうか)かどうかにより、2つ以上の条件を選択します。赤外線センサー 遠隔モードを使用する
タッチセンサー タッチ センサーが押されたかどうか、離れたかどうか、またはバンプしたかどうかによって、2 つ以上の条件を選択します。タッチ センサーを使用する
超音波センサー - 比較 - 存在 超音波シグナルが「探査専用」モードで検知されたかどうかにより 2 つの条件を選択します。超音波センサーを使用する
メッセージング メッセージ値に基づいて 2 つの条件を選択します。メッセージング
複数の値をテストする
スイッチ ブロックのセンサー測定モードにより、テスト対象とするいくつかの(2 つ以上)異なるセンサー値を指定することができます。各値にスイッチの異なる条件を設定することができます。例えば、「カラー センサー - 測定 - 色」モードで、黒色、白色および赤色をテストし、それぞれの色ごとの条件を作成することができます。




条件の追加
条件値
初期条件
条件の削除

センサー測定モードで複数の条件を使用するには、[条件の追加]ボタンをクリックして必要な数の条件を作成します。各条件について、[条件値]をクリックして、リストからセンサーの値を選択します。[条件の削除]ボタンをクリックして、条件を削除することができます。

[初期条件]ボタンをクリックして、一つの条件を「初期条件」としてマークします。「初期条件」は、センサーがスイッチのいずれの条件にも一致しない値を検知した時点で実行されます。

プログラムの例をご確認ください:例えば、カラー センサーを使用するで検知された時点での「赤」「緑」および「青」。

プログラムの例をご確認ください:インテリジェント ブロック ボタンを使用するのインテリジェント ボタン コントロール パネル。
データ ワイヤーの値をテストする
ロジック モード、テキスト モードおよび数値モードで、スイッチはデータ ワイヤーの入力値に基づいて実行する条件を選択することができます。
モード
ロジック モード
ロジック モードでは、スイッチはロジックの入力の値に基づいて真の条件か偽の条件を選択します。プログラミング ブロックから、データ ワイヤーを用いてロジック出力をロジック入力に接続することができます。

プログラムの例:比較ブロックをご確認ください。
テキスト モード
テキスト モードで、スイッチは各値の条件により、テキストの入力の値を指定する 2 つ以上のテキスト値と比較します。テキスト入力と一致する値を持つ条件が実行されます。一致する値がない場合、初期条件が実行されます。

複数の条件の作成に関する情報については、上記の複数の値をテストするをご確認ください。テキスト モードの各条件には、条件値に直接入力できるテキスト値が備わっています。
例えば、テキスト モードのスイッチはメッセージング ブロックの出力を用いて、メッセージに応じて 3 つの異なる条件から選択します。
数値モード
数値モードで、スイッチは、各値の条件により、数値入力の値を指定する 2 つ以上の数値と比較します。数値入力と一致する値を持つ条件が実行されます。一致する値がない場合、初期条件が実行されます。

複数の条件の作成に関する情報については、上記の複数の値をテストするをご確認ください。数値モードの各条件には、条件値に直接入力できる数値が備わっています。
この例では、数値モードのスイッチは変数ブロックの出力を用いて 3 つの異なる条件から選択します。スイッチの初期条件は空白で「動作」変数の値が 1、2、あるいは 3 以外のものである場合には、スイッチは何もしません。
スイッチのサイズ調整を行う
スイッチ ブロックは、通常は内部の条件にドラッグした新規プログラミング ブロックのスペースを確保するために自動的に展開されます。必要であれば、条件を手動でサイズ調整することもできます。平面ビューのスイッチ内の条件のサイズ調整を行うには、サイズ調整したい条件のそばのスイッチの左側か右側の境界をクリックし、外側に表示されるサイズ調整ハンドルをドラッグします。

ヒントと豆知識
タブ付きビューでは、すべての条件は同一サイズで表示されます。一つの条件を大きくするサイズ調整を行うと、すべての条件が同一の大きなサイズで表示されます。
入力
スイッチ ブロックで利用できる入力内容は、選択したモードに応じたものになります。ブロックに値を直接入力することができます。あるいは、データ ワイヤーを使って他のプログラミング ブロックの出力から入力値を得ることができます。
入力タイプ備考
ロジック ロジックロジック モードで条件を選択するのに使用されます
数値 数値数値モードで条件を選択するのに使用されます。
テキスト テキストテキスト モードで条件を選択するのに使用されます。
比較タイプ 数値しきい値の入力があるモードの比較タイプです。
0:= (~と等しい)
1:≠ (~と等しくありません)
2:> (~超過)
3:≥ (~以上)
4:< (~未満)
5:≤ (~以下)
しきい値 数値数値センサー値に基づいて真の条件か偽の条件を選択する、センサー データを比較する値です。
(個々のセンサー タイプの入力値)センサー データに関する詳細については、個々のセンサー タイプに関するヘルプをご確認ください。
スイッチ
クイックリンク