IQ (第 2 世代) センサーのトラブルシューティング

センサー フィードバックの使用中にロボットが意図したとおりに動作しない場合は、段階的なトラブルシューティング手順に従って問題を見つけて修正できます。 この記事では、トラブルシューティング プロセスの手順を説明し、これらの手順の使用方法に関するヒントを提供します。 

このプロセスの手順は次のとおりです。

  1. 問題を特定する
  2. ハードウェアをチェックする
  3. ソフトウェアをチェックする
  4. データの分析と適用

問題を特定する

センサーのトラブルシューティングの最初のステップは、問題の原因となっているセンサーを特定することです。 観察されたロボットの動作と意図されたロボットの動作を比較します。 問題のある動作はセンサーによって引き起こされていますか? もしそうなら、どのセンサーですか? どのセンサーに問題があるかを判断するための詳細情報が必要な場合は、ロボットのセンサーに関連する以下の記事をお読みください。

VEX IQ (第 2 世代) センサー:

どのセンサーが意図しない動作を引き起こしているかを特定したら、プロセスを進めることができます。


ハードウェアを確認する

2 番目のステップは、ロボットのハードウェアをチェックして、センサーが意図したとおりに機能することを確認することです。 次のハードウェアに関する考慮事項はそれぞれ、センサーの機能に影響を与えている可能性があります。

センサーの配置を確認する

フィールド上を走行するシンプルなクローボットビルド。 ロボットには光センサーが取り付けられており、ハイライト表示されて、ロボットの前の赤い立方体を指しています。

まず、ロボットのどこにセンサーが配置されているかを確認します。 センサーはロボットの別の部分など、何かによってブロックされていますか? センサーが意図したとおりに動作するために必要なスペースがあることを確認してください。

ここに示されているように、光学センサーは、検出する対象物に対して明確な視線を持っています。

センサーの接続を確認してください

タッチ LED デバイスが選択された状態で、デバイス メニューに Brain スクリーンが表示されます。

VEX IQ (第 2 世代) Brain のデバイス画面にレポートされるデータを確認して、センサーの機能をテストします。 これは、センサーが接続されていて動作していることを検証するのに役立ちます。

デバイス画面にアクセスするには、この記事の手順に従って

(第 2 世代) 距離センサーに接続された (第 2 世代) ブレインを示す図。

[デバイス] 画面が開いたら、センサーがデータを報告しているかどうかを確認します。

そうでない場合は、センサーが正しく接続されていることを確認してください。 センサーを接続するとき、センサーのロック タブがポートに完全にはめ込まれると、「カチッ」という音が聞こえます。

使用しているセンサーを別のセンサーと交換して、問題が解決するかどうかを確認することもできます。

センサーの配置またはセンサーの接続で何かを変更した場合は、プロジェクトを再度テストして、問題が解決したかどうかを確認してください。 センサーの配置と接続が変更されない場合は、次のステップに進んでトラブルシューティング プロセスを続けてください。


ソフトウェアをチェックする

センサーがロボット上に配置され、正常に接続されていることを確認したら、次に VEXcode IQ プロジェクトに注目します。 プロジェクトを反復処理すると、センサーからのデータがプロジェクト内で効果的に使用されていることを確認できます。 次の戦略は、センサーのコーディングに役立ちます。

これらの戦略のいずれかを VEXcode IQ プロジェクトに適用する場合は、プロジェクトを再度テストして、問題が解決したかどうかを確認してください。

ファームウェアと構成を確認する

接続されているデバイスの長いリストが表示される VEXcode IQ デバイス メニュー。 このメニューを使用すると、各センサーが正しく接続されていることを確認したり、Brain 上の特定のポートをチェックしたりできます。

すべてのデバイスが Brain に正しく接続されていることを確認したので、VEXcode IQ でデバイス構成を確認します。

すべてのセンサーが構成に存在することを確認してください。 次に、それぞれが正しいポートに接続されていることを確認します。

間違ったデバイス構成を変更します。

サンプルプロジェクトを実行する

さまざまなカテゴリにわたるさまざまなプロジェクトから選択できる VEXcode Blocks のサンプル プロジェクト メニュー。 センシング カテゴリが強調表示されます。

トラブルシューティングしているセンサーを使用するサンプル プロジェクトを開きます。 「センシング」カテゴリを選択して、サンプル プロジェクトをフィルタリングできます。

IQ ブロックのサンプル プロジェクトとテンプレートの詳細について

IQ Python のサンプル プロジェクトとテンプレートの詳細について

IQ C++ サンプル プロジェクトとテンプレートの詳細について

センシング カテゴリからサンプル プロジェクトを開いた VEXcode IQ。コード ブロックのスタックとプロジェクトの説明を含むメモが含まれています。 メモが強調表示されます。

開いたら、メモを読んで、サンプル プロジェクトの機能がセンサーで実行しようとしている内容と一致しているかどうかを判断してください。

ここに示すプロジェクト例では、距離センサーを使用して物体を検出し、物体に到達するとロボットが運転を停止できるようにするための注記が示されています。

サンプル プロジェクトを実行し、ロボットの動作を観察します。 次に、プロジェクトを調べて、観察された動作を引き起こすためにセンサー データがどのように使用されているかを確認します。 これを解決するには、サンプル プロジェクトを複数回実行するとよいでしょう。

サンプル プロジェクトから学んだことを自分のタスクに適用するために、独自の単純化されたプロジェクトを作成してみることもできます。

他の VEXcode IQ ツールを使用する

VEXcode IQ でのセンサーのコーディングについて詳しく学ぶ際に役立つツールや戦略もあります。 ヘルプを使用すると、ツールボックス内のブロックまたはコマンドについて個別に学習できます。 プロジェクトの実行中にセンサー データを表示して、センサーが報告している内容について詳しく知ることもできます。

VEXcode IQ のヘルプ メニューが開かれ、ドライブ見出しブロックが選択された状態。 ブロックの説明と使用方法が、使用例の画像とともに表示されます。

手伝い

サンプル プロジェクトまたはプロジェクト内のブロックまたはコマンドのヘルプを読んで、使用されるデータ、コマンドが報告する値、およびプロジェクトでのコマンドの使用方法の例について学習してください。

VEXcode IQ ブロックのヘルプへのアクセスの詳細については、この記事を参照してください。

VEXcode IQ Python でのヘルプへのアクセスの詳細については、この記事を参照してください。

VEXcode IQ C++ でのヘルプへのアクセスの詳細については、この記事を参照してください。

データの印刷

サンプル プロジェクトまたはプロジェクトの実行中にセンサーからのデータを印刷して、センサーがリアルタイムで報告している内容をより深く理解することもできます。 これは、プロジェクトでパラメーターとして使用するセンサーからの報告値を決定するのに役立ちます。 

Blocks プロジェクトでは、個別の {When started} ハット ブロックを使用して、すべての印刷コマンドを独自のスタック内に整理しておくことができることに注意してください。

VEXcode IQ ブロック
プロジェクトの実行中にセンサー データをライブで印刷するために、When started ハット ブロックを使用する VEXcode IQ ブロック プロジェクト。 プロジェクトには、When started ブロックとそれに続く Forever ループ内の 4 つのブロックがあります。 ループ内には、最初に「慣性センサーのロール値を脳に印刷」というコメント ブロックがあり、次に次の行に進みます。 次に、Print ブロックは、Brain 上のロールの BrainInertial 方向を印刷し、カーソルを次の行に設定します。 次に、コメント ブロックに「Wait to print the value, then repeat the loop」と記述します。 最後に、Wait ブロックは 0.1 秒待機します。
VEXcode IQ Python
while (True):
Brain.screen.set_font(FontType.MONO40)
Brain.screen.print(brain_inertial.orientation(ROLL, DEGREES))
Brain.screen.next_row()
wait(0.1, SECONDS)
VEXcode IQ C++
int main() 
{
while(true)
{
Brain.Screen.setFont(mono40);
Brain.Screen.print(BrainInertial.orientation(roll,度));
Brain.Screen.newLine();
wait(0.1, 秒);
} }

IQ Brain への出力は、VEXcode IQ プロジェクトの実行中に変化する値を確認したい場合に役立ちます。 これは、プロジェクトでパラメーターとして使用するセンサーからの報告値を決定するのに役立ちます。 これらの印刷コマンドは、すでに作成した VEXcode IQ プロジェクトに組み込むことができるため、ロボットの移動中の特定の時間にセンサー値が変化するのを確認できます。 

上記のサンプル プロジェクトは、慣性センサーから IQ Brain に値を出力する方法を示しています。 各プロジェクトのコメントでは、プロジェクトの流れや各コマンドの使用方法が説明されています。

VEXcode IQ ブロック VEXcode IQ Python

プロジェクトの実行中にセンサー データをライブで印刷するために、When started ハット ブロックを使用する VEXcode IQ ブロック プロジェクト。 プロジェクトには、When started ブロックとそれに続く Forever ループ内の 4 つのブロックがあります。 ループ内には、まず距離センサーの値をコンソールに印刷し、次の行に進むというコメント ブロックがあります。 次に、印刷ブロックはコンソールにオブジェクトの距離 (mm 単位) を読み取り、カーソルを次の行に設定します。 次に、コメント ブロックに「Wait to print the value, then repeat the loop」と記述します。 最後に、Wait ブロックは 0.1 秒待機します。

while (True):
print( distance_7.object_ distance(MM))
wait(0.1, SECONDS)
VEXcode IQ C++
int main() 
{
while (true)
{
printf(Distance7.objectDistance(mm));
printf("\n");
wait(0.1, 秒);
} }

VEXcode IQ のプリント コンソール への印刷は、ロボットが動かない VEXcode IQ プロジェクトを実行している場合に推奨されます。 Print Console に印刷するには、プロジェクトの実行中、IQ Brain を接続したままにしておく必要があります。 Brain 画面からデータを読み取ろうとするのではなく、VEXcode IQ ウィンドウから値を読み取ることができるため、これは有益です。

これらの例は、距離センサー (第 2 世代) から VEXcode IQ のコンソールにデータを印刷するプロジェクトを示しています。 

VEXcode IQ ブロックでの Print Console の使用の詳細については、この記事を参照してください。

VEXcode IQ Python での Print Console の使用の詳細については、この記事を参照してください。


データの分析と適用

次に、前の手順で学んだことを使用して、元のプロジェクトを調整します。 ヘルプやデータの印刷などのツールを引き続き使用して、センサーを効果的に使用して目的を達成できます。

プロジェクトを進めるために、プロジェクトについて質問することもできます。 次のようなことを考えてください。

  • プロジェクトで < より大きい、または > 未満を使用していますか? 記号は正しい方向を向いていますか? 「equal to =」を使用している場合は、値の範囲を使用するために、「より大きい」または「より小さい」に置き換えてみてください。
  • パラメータは正しいですか? センサーからのデータを使用してパラメータを設定していますか? 必要なドロップダウン オプションを選択しましたか?
  • 条件を複数回確認していませんか? プロジェクトの実行時に条件が繰り返しチェックされるように、プロジェクトに Forever ループを追加してみます。
  • プロジェクトが行き詰まっていませんか? 条件は正しく設定されていますか? ネストされたループを使用している場合は、プロジェクトを単純化して個々の動作を分離してみてください。
  • 環境条件がセンサーに影響を与えていますか? 明るすぎませんか、暗すぎませんか? 邪魔な物や人はいませんか? 別の場所でプロジェクトを実行して、問題が解決するかどうかを確認してください。
  • プロジェクトの最新バージョンを実行していますか? 更新されたプロジェクトを Brain にダウンロードしましたか? 変更を加えるたびに、必ずプロジェクトを再ダウンロードしてください。
  • 正しい色を検出していますか? センサーはプロジェクト内の色とは異なる色を報告していますか? カラーパラメータを変更するか、色相値の範囲を使用して、それが役立つかどうかを確認してください。
  • センサーの視野内に物体を検出していますか? ロボットの動きに連動して視野も移動することに注意してください。
  • 状態確認時に待機ブロックを使用していませんか? 条件をチェックするときは、プロジェクト内の非待機ブロックを必ず使用してください。 VEXcode IQ の待機ブロックと非待機ブロックの詳細については、この記事を参照してください。
  • ブロック単位でコーディングしている場合、スタック全体が {When started} ハット ブロックに接続されていますか? ブロックは接続されている場合にのみ実行されます。 ブロックをドラッグして接続すると、クリック音が聞こえます。

これらの質問に答えるときは、必ずプロジェクト内の項目を一度に 1 つずつ変更し、テストして、その変更が効果的かどうかを評価してください。 プロジェクトを頻繁にテストすると、コードがロボットの動作にどのように関連しているかをより簡単に確認できるようになります。  問題を解決するには、トラブルシューティング プロセスの手順を複数回繰り返す必要がある場合がありますが、それでも問題ありません。 各反復は、使用しているセンサーと、それを VEXcode IQ でコーディングする方法について詳しく学ぶのに役立ちます。

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

Last Updated: