Vai al contenuto principale

Panoramica del multitasking

Crea un sistema di coordinate sul campo di abilità virtuale VIQC con la posizione iniziale dell'Hero Bot come origine (0,0). Crea un algoritmo per utilizzare i blocchi [Guida per] e [Gira verso la direzione], il motore del braccio, il motore di aspirazione e il sensore dell'interruttore del paraurti per guidare l'Hero Bot in posizioni specifiche per rimuovere tutti i dischi da un distributore blu, raccogliere e lanciare tre dischi nella zona obiettivo a 4 punti il ​​più velocemente possibile!

  • Seleziona VIQC Virtual Skills - Slapshot Playground.
  • Guida l'Hero Bot nella posizione situata alle coordinate (60, 290), girati verso il distributore blu e rimuovi tutti i dischi da esso.
    • Utilizza la funzione e non aspettare del blocco spin ArmMotor per consentire all'Hero Bot di guidare verso la posizione successiva abbassando il braccio dopo aver colpito il Dispenser.
  • Guida l'Hero Bot nella posizione situata alle coordinate (1000, 175).
  • Programma il robot eroe in modo che raccolga e lanci tre dischi nella zona di tiro da 4 punti.
    • Crea un algoritmo che utilizzi l'evento broadcast per attivare il processo di aspirazione e consentire all'Hero Bot di guidare mentre il motore di aspirazione gira fino a quando non viene caricato un disco.
    • Creare un algoritmo che utilizzi una variabile per coordinare il comportamento della trasmissione e del motore di aspirazione al fine di evitare interferenze reciproche tra i due processi di lancio del disco.
    • Guida l'Hero Bot in retromarcia fino alla posizione (800, 300), raccogli un disco e lancialo nella zona obiettivo a 4 punti.
    • Guida l'Hero Bot in retromarcia fino alla posizione (900, 500), raccogli un disco e lancialo nella zona obiettivo a 4 punti.
    • Guida l'Hero Bot in retromarcia fino alla posizione (800, 575), raccogli un disco e lancialo nella zona obiettivo a 4 punti.

Suggerimenti utili

  • La funzione e non aspettare del blocco spin ArmMotor farà sì che gli altri blocchi continuino a funzionare mentre il motore del braccio gira. Per utilizzare questa funzione, seleziona la freccia per espandere e non attendere.
    VEXcode Spin per il blocco che legge 'spin ArmMotor inverso di 90 gradi e non't attendi'.
    • Comando Python corrispondente:

      arm_motor.spin_for(REVERSE, 90, DEGREES, wait=False)
  • Utilizzare il blocco broadcast dalla categoria Eventi per avviare il processo di acquisizione.
    Blocco broadcast VEXcode che legge 'broadcast check'.
    • Comando Python corrispondente:

      verifica trasmissione()
  • Utilizzare il blocco quando ricevo dalla categoria Eventi per eseguire la pila di blocchi allegata quando viene ricevuto il messaggio attivato.
    VEXcode Quando ricevo un blocco che legge 'quando ricevo il controllo'.
    • Comando Python corrispondente:

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