Ir para o conteúdo principal

Instantâneo multitarefa

Crie um sistema de coordenadas no campo de habilidades virtuais VIQC com a posição inicial do Hero Bot como origem (0,0). Crie um algoritmo que utilize os blocos [Dirigir para] e [Virar para a direção], o Motor do Braço, o Motor de Admissão e o Sensor do Interruptor do Para-choque para conduzir o Robô Herói a posições específicas, remover todos os Discos de um Dispensador azul, pegar e lançar três Discos para a Zona de Gol de 4 Pontos o mais rápido possível

  • Selecione VIQC Virtual Skills - Slapshot Playground.
  • Leva o Hero Bot para a posição localizada em (60, 290), vira-te para o Dispensador azul e retira todos os Discos do mesmo.
    • Utilize o recurso e não espere do bloco spin ArmMotor para permitir que o Hero Bot conduza para a próxima posição enquanto baixa o braço após derrubar o Dispensador.
  • Leva o Hero Bot para a posição localizada em (1000, 175).
  • Programa o Robot Herói para apanhar e lançar três Discos na Zona de Golo de 4 Pontos.
    • Crie um algoritmo que utilize o evento de transmissão para acionar o processo de entrada permitindo que o Robô Herói se movimente enquanto roda o Motor de Entrada até que um Disco seja carregado.
    • Crie um algoritmo que utilize uma variável para coordenar os comportamentos do sistema de transmissão e do motor de admissão, evitando interferências mútuas entre os processos de lançamento de dois discos.
    • Conduz o Hero Bot de marcha-atrás até à posição localizada em (800, 300), apanha um Disco e lança-o para a Zona de Golo de 4 Pontos.
    • Conduz o Hero Bot de marcha-atrás até à posição localizada em (900, 500), apanha um Disco e lança-o para a Zona de Golo de 4 Pontos.
    • Conduz o Hero Bot de marcha-atrás até à posição localizada em (800, 575), apanha um Disco e lança-o para a Zona de Golo de 4 Pontos.

Dicas úteis

  • O recurso e não espere do bloco spin ArmMotor fará com que outros blocos continuem a funcionar enquanto o Arm Motor gira. Para utilizar esta funcionalidade, selecione a seta para expandir e não esperar.
    VEXcode Spin para bloco que lê 'spin ArmMotor inverte 90 graus e não espera''.
    • Comando Python correspondente:

      arm_motor.spin_for(REVERSE, 90, DEGREES, wait=False)
  • Utilize o bloco broadcast da categoria Eventos para desencadear o processo de entrada.
    Bloco de transmissão VEXcode que lê 'verificação de transmissão'.
    • Comando Python correspondente:

      verificar.transmitir()
  • Utilize o bloco quando receber da categoria Eventos para executar a pilha de blocos anexada quando a mensagem disparada for recebida.
    VEXcode Quando recebo um bloco que lê 'quando recebo a verificação'.
    • Comando Python correspondente:

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