Přejít k hlavnímu obsahu

Snímek multitaskingu

Vytvořte souřadnicový systém na poli virtuálních dovedností VIQC s počáteční pozicí Hrdinského bota jako počátkem (0,0). Vytvořte algoritmus, který pomocí bloků [Jeďte pro] a [Otočte se do směru], motoru ramene, motoru sání a senzoru spínače nárazníku navede Hrdinského robota do specifických pozic, aby co nejrychleji odstranil všechny disky z dávkovače, sebral a odpálil tři disky do 4bodové cílové zóny!

  • Vyberte hřiště VIQC Virtual Skills - Slapshot.
  • Jeďte s Hrdinským Botem na pozici na souřadnicích (60, 290), otočte se k modrému Dávkovači a odstraňte z něj všechny disky.
    • Použijte funkci a nečekejte bloku spin ArmMotor , abyste umožnili Hrdinskému Botovi jet na další pozici a zároveň spustit Arm po sražení Dávkovače.
  • Dojeďte s Hrdinským Botem na pozici nacházející se v bodech (1000, 175).
  • Naprogramujte Hrdinského Botta tak, aby sebral a odpálil tři disky do čtyřbodové brankové zóny.
    • Vytvořte algoritmus využívající událost vysílání pro spuštění procesu sání, který umožní Hero Botu jet a zároveň otáčet sacím motorem, dokud není vložen disk.
    • Vytvořte algoritmus s využitím proměnné pro koordinaci chování hnacího ústrojí a sacího motoru, aby se zabránilo vzájemnému rušení mezi dvěma procesy spouštění disku.
    • Jeďte s Hrdinským Botem v opačném směru na pozici (800, 300), seberte disk a odpalte ho do zóny čtyřbodového cíle.
    • Jeďte s Hrdinským Botem v opačném směru na pozici (900, 500), seberte disk a odpalte ho do 4bodové brankové zóny.
    • Jeďte s Hrdinským Botem v opačném směru na pozici (800, 575), seberte disk a odpalte ho do zóny čtyřbodového cíle.

Užitečné rady

  • Funkce a „don't wait bloku spin ArmMotor způsobí, že ostatní bloky budou pokračovat v běhu, zatímco se Arm Motor otáčí. Chcete-li tuto funkci použít, vyberte šipku pro rozbalení a nečekejte.
    VEXcode Spin pro blok, který má hodnotu ', otočí ArmMotor o 90 stupňů a nečeká'a'.
    • Odpovídající příkaz Pythonu:

      arm_motor.spin_for(ZPĚT, 90, STUPŇŮ, wait=False)
  • Pro spuštění procesu příjmu použijte blok broadcast z kategorie Události.
    Blok vysílání VEXcode, který čte ', kontrola vysílání'.
    • Odpovídající příkaz Pythonu:

      check.broadcast()
  • Použijte blok when I receive z kategorie Události ke spuštění připojeného zásobníku bloků při přijetí spouštěné zprávy.
    VEXcode Když obdržím blok, který má hodnotu ', když obdržím check'.
    • Odpovídající příkaz Pythonu:

      def OnEvent_check():
      	pass
      
      check = Event()
      check(OnEvent_check)