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

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

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

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

問題を特定する

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

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

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


ハードウェアを確認する

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

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

Clawbot IQ ビルドがフィールド上を走行しており、矢印は取り付けられたカラー センサーからロボットの前にある緑色のキューブを指しています。

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

ここに示されているように、カラー センサーは、検出対象のオブジェクトに対して明確な視線を持っています。

センサーの接続を確認する

デバイス情報オプションを選択すると、設定メニューにブレイン スクリーンが表示されます。デバイス情報は、システム情報の下にあるリストの 2 番目のオプションです。

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

デバイス メニューにアクセスするには、この記事の手順に従って 。

スマート モーターとバンパー スイッチに接続された (第 1 世代) ブレインの図。バンパー スイッチは矢印で示され、「センサー」というラベルが付けられています。

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

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

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

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


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

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

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

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

VEXcode IQ に Brain が接続され、Brain ドロップダウン メニューが開き、Brain のファームウェアをチェックできることがわかります。 VEXos のバージョンは 2.2.0 と表示され、右側に「強制更新」ボタンがあります。

まず、IQ Brain のファームウェアが最新であることを確認します。

VEX IQ (第 1 世代) Brain のファームウェアを更新する方法については、この記事を参照してください。

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

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

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

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

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

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

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

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

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

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

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

ここに示されているサンプル プロジェクトでは、このプロジェクトが、利用可能なすべての距離センサー コマンドをロボットで使用する方法の例を提供していることを注記しています。

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

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

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

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

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

手伝い

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

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

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

データの印刷

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

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

VEXcode IQ ブロック

プロジェクトの実行中にセンサー データをライブで印刷するために、When started ハット ブロックを使用する VEXcode IQ ブロック プロジェクト。プロジェクトには、When started ブロックとそれに続く Forever ループ内の 4 つのブロックがあります。ループ内には、まず「脳上のオブジェクトまでの距離を印刷します」というコメント ブロックがあります。次に、印刷ブロックは Brain に Distance7 の距離を mm 単位で印刷し、カーソルを次の行に設定します。次に、コメント ブロックで、値を印刷するまで待機し、ループを繰り返します。最後に、Wait ブロックは 0.1 秒待機します。

拡大するには上の画像を選択してください。

VEXcode IQ C++

int main() {
// プロジェクト コードの開始
// IQ (第 2 世代) Brain の画面に収まるようにフォント サイズを変更する
Brain.Screen.setFont(mono12);

// ループして、すべての距離感知値を画面に出力する
while (true) {
// 画面をクリアし、カーソルを画面の左上隅に設定する
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Found Object: %s", Distance.foundObject() ? "TRUE" : "FALSE");
Brain.Screen.newLine();

Brain.Screen.print("Distance - mm: %.0f", Distance.distance(mm));
Brain.Screen.newLine();

Brain.Screen.print("Distance - インチ: %.0f", Distance.distance(inches));
Brain.Screen.newLine();

// テキストが歪みやティアリングなく印刷されるよう、少し遅延させます
wait(0.2, seconds);
}
}

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

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

IQ Brain のデバイス メニューを使用すると、ロボットを手動で操作しながらセンサー値を確認する場合に便利です。 VEXcode IQ プロジェクトを実行せずにデバイス メニューにアクセスし、センサーによって検出された値を確認できます。 

デバイス情報オプションを選択すると、設定メニューにブレイン スクリーンが表示されます。デバイス情報は、システム情報の下にあるリストの 2 番目のオプションです。

X ボタンを選択して Brain 設定にアクセスし、デバイス情報まで下にスクロールし、チェックマーク ボタンを押してデバイス メニューを開きます。

デバイス メニューに Brain スクリーンが表示されます。この例では、ポート 3 カラー センサーが表示され、カラーのモードは 3、カラー値は緑、距離値は近いとなっています。下には「チェックボタンを押すとモードが変更されます」というメッセージが表示されます。画面の下部にあるアイコンは、矢印ボタンを使用してスクロールし、X ボタンを使用してデバイス メニューを終了できることを示しています。

デバイス メニュー内で、矢印ボタンを使用して、詳細情報を表示するデバイスを選択します。この画像ではカラー センサーが選択されています。(第 1 世代) Brain でのデバイス情報の表示の詳細については、この記事を参照して 。


データの分析と適用

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

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

  • プロジェクトで < より大きい、または > 未満を使用していますか? 記号は正しい方向を向いていますか? 「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: