VEXcode V5でPython競技テンプレートを使用する

コンペティションテンプレートは、競技中にフィールドコントロールシステムと通信するためのコマンドが既に含まれているサンプルプロジェクトであり、コマンドがフィールド規則に準拠していることを保証し、複雑な問題や失格を回避するためにプロジェクトの設定を支援します(「競技」とは、公式フィールドコントロールハードウェアを使用するVEX V5ロボティクス競技イベントを指します)。  


サンプルページからコンテストテンプレートを開く

VEXcode V5ツールバーで、ファイルメニューが開いており、「サンプルを開く」オプションがハイライト表示されています。メニューの「サンプルを開く」は、「新しいブロックプロジェクト」、「新しいテキストプロジェクト」、「開く」、「最近開いたものを開く」の下にある5番目のオプションです。


テンプレートカテゴリの「サンプルプロジェクト」メニューで、「コンペティションテンプレート」のサンプルプロジェクトがハイライト表示されています。


テンプレートは、事前自律走行、自律走行モード、ドライバー制御の3つのセクションから構成されています。

# プロジェクトコードの開始

def pre_autonomous():
  # プログラム開始時に実行するアクション
  brain.screen.clear_screen()
  brain.screen.print("pre auton code")
  wait(1, SECONDS)
  
def autonomous():
  brain.screen.clear_screen()
  brain.screen.print("autonomous code")
  # ここに自律コードを配置
  
def user_control():
  brain.screen.clear_screen()
  # この while ループにドライバ制御を配置
  while True:
    wait(20, MSEC)
    
# 競合インスタンスを作成
comp = Competition(user_control, autonomous)
pre_autonomous()

注: コンテストでプロジェクトが機能するためには、 これらの関数をプロジェクトに残しておく必要があります。各セクションのコメントで示されている箇所にコマンドを追加してください。


セットアップには、 pre_autonomous 関数を使用してください。

def pre_autonomous():
  # プログラム開始時に実行するアクション
  brain.screen.clear_screen()
  brain.screen.print("pre auton code")
  wait(1, SECONDS)

pre_autonomous 関数は、ジャイロのキャリブレーション、変数の設定、その他のデバイス設定など、ロボットが必要とするあらゆるセットアップに使用されます。これらのコマンドは、プロジェクトが開始されるとすぐに、試合の自律的な部分が始まる前に実行されます。

pre_autonomous() 関数を示した VEXcode V5 Python 競技用テンプレートプロジェクト。関数宣言の後のインデントされた行が強調表示されているのは、関数内のすべての行をインデントする必要があることを示すためです。

すべてのコマンドが適切にインデントされていることを確認し、pre_autonomous とautonomous 関数の間にガイドラインが表示されるようにしてください。

注: 設定が不要な場合は、この関数は空のままで構いません。


自律型

def autonomous():
  brain.screen.clear_screen()
  brain.screen.print("autonomous code")
  # ここにautonomous code を記述します

自律 機能は、VRC マッチの自律走行パート中にロボットを制御するために使用されます。この関数内のコマンドは、試合が自律期間に入ったときに実行されます。

autonomous() 関数を示した VEXcode V5 Python 競技用テンプレートプロジェクト。関数宣言の後のインデントされた行が強調表示されているのは、関数内のすべての行をインデントする必要があることを示すためです。

すべてのコマンドが適切にインデントされていることを確認し、pre_autonomous とautonomous 関数の間にガイドラインが表示されるようにしてください。

注: 設定が不要な場合は、この関数は空のままで構いません。


ユーザーコントロール

def user_control():
  brain.screen.clear_screen()
  # この while ループ内にドライバ制御を配置
  while True:
    wait(20, MSEC)

user_control 関数は、VRC マッチのドライバー制御部分でロボットを制御するために使用されます。  この関数内のコマンドは、試合がドライバーコントロール期間を開始したときに実行されます。

注: while True ループは、ロボットが試合全体を通して V5 コントローラーからの入力に応答するように上記のように示されています。

user_control()関数を示したVEXcode V5 Python競技用テンプレートプロジェクト。 while Trueループ内の、二重インデントされた空白行がいくつか強調表示されていますが、これはこのループ内のすべての行を二重インデントする必要があることを示しています。

ユーザーコントロール部分をコーディングする際は、while True ループ内のすべてのコマンドが適切にインデントされていることを確認してください。図に示すように、2本のガイドラインが見えるはずです。 1つ目は、while True 内にあるためです。もう1つは、コマンドがwhile True ループ内にあることを確認するためです。

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

Last Updated: