VEX V5 センサーのトラブルシューティング

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

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

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

問題点を特定する

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

VEX V5 センサー:

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


ハードウェアを確認してください

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

センサーの配置を確認してください

V5クローボットがフィールドを走行している様子。ロボットには光学センサーが取り付けられており、それが強調表示されて、目の前にある赤いバッキーボールを指し示している。

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

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

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

Brainの画面は「デバイス情報」メニューに表示され、Brainのすべてのスマートポートと接続されているデバイスの一覧が表示されます。デバイス情報メニュー内の光学センサーのアイコンが強調表示され、選択することで情報メニューを開くことができることを示しています。

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

デバイス画面にアクセスするには、この記事の手順に従って 。 [デバイス] 画面が開いたら、センサーが正しいポートの場所とレポート データに表示されているかどうかを確認します。ここでは、スマート ポート 11 で光学センサーが検出されています。

V5 Brainは、V5バッテリーとV5スマートモーターデバイスに接続された状態で表示されています。スマートモーターのケーブルは、ブレイン(制御装置)のスマートポートのいずれかに接続されます。V5 Brainに、3線式デバイスが3線式ポートの1つに接続されている。

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

センサーを 3 線式ポートに接続する場合、ケーブルは正しい向きで完全に挿入され、白い線が Brain スクリーンに最も近い位置にある必要があります。 

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

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


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

センサーがロボットに正しく取り付けられ、接続されていることを確認したら、次にVEXcode V5プロジェクトに進んでください。プロジェクトを反復処理すると、センサーからのデータがプロジェクト内で効果的に使用されていることを確認できます。次の戦略は、センサーのコーディングに役立ちます。

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

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

VEXcode V5にBrainが接続され、Brainのドロップダウンメニューが開いている状態。これは、Brainのファームウェアをチェックするために使用できることを示しています。 VEXosのバージョンが表示されており、「強制アップデート」ボタンのみが表示されています。

まず、V5 Brainのファームウェアが最新の状態であることを確認してください。

V5 Brain のファームウェアのアップデートの詳細については、この記事を参照してください。

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

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

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

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

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

VEXcode Blocksのサンプルプロジェクトメニューには、さまざまなカテゴリのプロジェクトが用意されており、そこから選択できます。「センシング」カテゴリが強調表示されています。

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

V5 Blocks のサンプルプロジェクトとテンプレートの詳細については、の記事を参照して 。

V5 Python サンプルプロジェクトとテンプレートの詳細については、の記事を参照して 。

V5 C++ サンプル プロジェクトとテンプレートの詳細については、の記事を参照して 。

VEXcode V5の「センシング」カテゴリから開いたサンプルプロジェクト。コードブロックのスタックとプロジェクトの説明が記載されたメモが含まれています。メモがハイライト表示されています。

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

ここで示したプロジェクト例では、バンパースイッチまたはリミットスイッチが押された状態が Brain 画面に出力されることを示しています。この場合、True は押されたことを示し、False は押されていないことを示します。 

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

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

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

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

VEXcode V5のヘルプメニューを開き、「Pressing Bumper」ブロックを選択した状態。ブロックの説明と使用方法が、使用例の画像とともに示されています。

手伝い

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

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

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

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

データの印刷

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

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

VEXcode V5 ブロック
VEXcode V5 Blocksプロジェクト。プロジェクト実行中にセンサーデータをBrainに出力するためにForeverループを使用します。プロジェクトの最初の部分は、「起動時に、Brain のフォントを Mono Extra Large に設定する」と書かれています。次に、内部に5つのブロックが入った「永遠のループ」ブロックがあります。ループ内のブロックは、Brain のすべての行をクリアし、カーソルを Brain の 1 行目 1 列目に設定し、Brain に Distance (mm): を出力します。次に、Distance19というオブジェクトまでの距離をmm単位でBrainに出力し、カーソルを次の行に移動させてから、0.5秒待ちます。
VEXcode V5 Python
# プロジェクトコードの開始

# Brain 画面での読みやすさのためにフォントサイズを大きくします
brain.screen.set_font(FontType.MONO40)

while True:
  # ループの各イテレーションで画面をクリアします
  brain.screen.clear_screen()
    
  # 画面をクリアした後、印刷カーソルを左上隅に戻します
  brain.screen.set_cursor(1, 1)
  
  # ラベルとオブジェクトからの距離の値を同じ行に印刷します
  brain.screen.print("距離 (mm): ")
  brain.screen.print(distance_19.object_distance(MM))
  brain.screen.next_row()
  wait(0.5, SECONDS)
VEXcode V5 C++
int main() {

  // Brain画面での読みやすさのためにフォントサイズを大きくする
  Brain.Screen.setFont(mono40);
  
  while (true) {
  
    // ループの各イテレーションで画面をクリアする
    Brain.Screen.clearScreen();
    
    // 画面をクリアした後、印刷カーソルを左上隅に戻す
    Brain.Screen.setCursor(1, 1);
    
    // ラベルとオブジェクトからの距離の値を同じ行に印刷する
    Brain.Screen.print("距離 (mm): %.2f", Distance19.objectDistance(mm));
    Brain.Screen.newLine();
    wait(0.5, seconds);
    
  }
  
}

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

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

VEXcode V5 ブロック
VEXcode V5 Blocksプロジェクト。プロジェクトの実行中に、Foreverループを使用してセンサーデータをコンソールに出力します。プロジェクトの最初の部分は、「開始時に、Rotation15 の位置を 0 度に設定する」と書かれています。次に、内部に3つのブロックが入った「永遠のループ」ブロックがあります。ループ内のブロックは、コンソールに「位置 (度):」と出力し、コンソールに「回転15の位置 (度)」と出力してカーソルを次の行に設定し、最後に0.5秒待機します。
VEXcode V5 Python
# プロジェクトコードの開始

# プロジェクトの開始時に回転センサーを 0 にリセットします
rotation_15.set_position(0, DEGREES)

while True:
  # ラベルとオブジェクトからの距離の値を同じ行に表示します
  print("位置 (度): ", end="")
  print(rotation_15.position(DEGREES))
  
  # 値を表示するまで待機し、ループを繰り返します
  wait(0.5, SECONDS)
VEXcode V5 C++
int main() {

  // プロジェクトの開始時に回転センサーを0にリセットします
  Rotation15.setPosition(0.0, degrees);
  
  while(true) {
  
    // ラベルとオブジェクトからの距離の値を同じ行に表示します
    printf("位置 (度): %.2f\n", Rotation15.position(degrees));
    
    // 値を表示するまで待機し、その後ループを繰り返します
    wait(0.5, seconds);
    
  }
  
}

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

これらの例は、VEXcode V5 で回転センサーからコンソールにデータを出力するプロジェクトを示しています。 

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


データの分析と適用

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

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

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

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

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

Last Updated: