Ga direct naar de hoofdinhoud

Momentopname van multitasking

Maak een coördinatensysteem aan op het VIQC Virtual Skills Field met de beginpositie van de Hero Bot als oorsprong (0,0). Ontwerp een algoritme dat de blokken [Rijden naar] en [Draai naar richting], de armmotor, de inlaatmotor en de bumperschakelaar gebruikt om de Hero Bot naar specifieke posities te sturen, zodat alle schijven uit een blauwe dispenser worden verwijderd, drie schijven worden opgepakt zo snel mogelijk naar de 4-punts doelzone worden gelanceerd!

  • Selecteer de VIQC Virtual Skills - Slapshot Playground.
  • Rijd met de Hero Bot naar de positie (60, 290), draai naar de blauwe dispenser en verwijder alle schijven eruit.
    • Gebruik de en de 'don't wait -functie van het 'spin ArmMotor -blok om de Hero Bot naar de volgende positie te laten rijden terwijl de arm wordt neergelaten nadat de dispenser is omgestoten.
  • Rijd met de Hero Bot naar de positie op (1000, 175).
  • Programmeer de Hero Bot zodat hij drie schijven oppakt en naar de 4-punts doelzone lanceert.
    • Ontwikkel een algoritme dat gebruikmaakt van de broadcastgebeurtenis (gebeurtenis om het innameproces te activeren, zodat de Hero Bot kan rijden terwijl de innamemotor draait totdat een schijf is geladen.
    • Ontwikkel een algoritme met behulp van een variabele om het gedrag van de aandrijflijn en de inlaatmotor te coördineren, zodat er geen onderlinge interferentie optreedt tussen twee schijflanceerprocessen.
    • Rijd met de Hero Bot achteruit naar de positie op (800, 300), pak een schijf op en lanceer deze naar de 4-punts doelzone.
    • Rijd met de Hero Bot achteruit naar de positie op (900, 500), pak een schijf op en lanceer deze naar de 4-punts doelzone.
    • Rijd met de Hero Bot achteruit naar de positie op (800, 575), pak een schijf op en lanceer deze naar de 4-punts doelzone.

Handige tips

  • De en de 'don't wait -functie van het 'spin ArmMotor -blok zorgen ervoor dat andere blokken blijven draaien terwijl de Arm Motor draait. Om deze functie te gebruiken, selecteer je de pijl om uit te breiden en wacht je niet.
    VEXcode Spin voor blok dat 'leest, draai ArmMotor 90 graden om en wacht niet''.
    • Overeenkomend Python-commando:

      arm_motor.spin_for(REVERSE, 90, DEGREES, wait=False)
  • Gebruik het blok broadcast uit de categorie 'Events' om het intake-proces te activeren.
    VEXcode Broadcast-blok dat 'leest, broadcast-controle'.
    • Overeenkomend Python-commando:

      check.broadcast()
  • Gebruik het blok wanneer ik ontvang uit de categorie Gebeurtenissen om de bijgevoegde reeks blokken uit te voeren wanneer het getriggerde bericht wordt ontvangen.
    VEXcode Wanneer ik een blok ontvang dat 'leest, ontvang ik controle'.
    • Overeenkomend Python-commando:

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