Ligação com a competição: ponto de viragem - Python
Capacidades do Robô
O jogo Turning Point da VEX Robotics Competition 2018-2019 exigia que os jogadores alternassem as bandeiras entre outros elementos do jogo. Havia nove bandeiras no total: três bandeiras inferiores que podiam ser acionadas pelo robô e as seis bandeiras altas que só podiam ser acionadas atingindo-as com peças de jogo de bola de competição. As equipas de competição precisavam de encontrar uma forma de acertar nas bandeiras mais altas utilizando um lançador de bola. Se conseguir imaginar, programar o robô para acertar nas bandeiras usando peças do jogo da bola por medição pode nem sempre ser preciso. Se o robô fizer uma curva errada durante o período autónomo, existe a possibilidade de nenhuma das bandeiras ser atingida porque os cálculos estariam errados. Da mesma forma, para o desafio Driving Skills, pode ser difícil para as equipas alinhar manualmente o robô o suficiente para lançar a bola corretamente. Assim, as equipas qualificadas programariam o robô utilizando o Sensor de Visão para detetar bandeiras e depois alinhariam o robô adequadamente para fazer disparos precisos.
Amplie o seu aprendizado
Para expandir esta atividade, peça aos seus alunos que elaborem e esbocem um projeto que fará com que o robô se mova em direção a objetos amarelos detetados que poderiam utilizar neste jogo de competição!
Peça aos seus alunos para fazerem o seguinte:
-
Abra o projeto de modelo Clawbot (transmissão, 2 motores, sem giroscópio).
- Utilize o projeto de exemplo Detecting Objects (Vision) como referência ao programar o Vision Sensor. Utilize o projeto de exemplo Detecting Objects (Vision) como referência ao programar o Vision Sensor (Google Doc / .v5python).
-
Adicione o sensor de visão à configuração do Clawbot (transmissão, 2 motores, sem giroscópio) e, em seguida, configure o sensor de visão para detetar objetos vermelhos e azuis. Consulte o artigo Configurar o sensor de visãoe para obter mais informações.
- Programe o Clawbot para se mover em direção ao objeto detetado. O Clawbot pode até ser programado para levantar o braço como se fosse agitar uma bandeira!
- Transfira e execute o para observar se o Sensor de Visão consegue detetar objetos amarelos, como as bolas amarelas do jogo VRC Turning Point. Se o Sensor de Visão conseguir detetar objetos, o robô move-se com base nesses objetos detetados? Para obter ajuda para descarregar e executar um projeto, consulte este artigo.
- Se o tempo permitir, configure um campo de jogo semelhante ao campo Turning Point. Pratique a utilização do Sensor de Visão para permitir que o robô se mova para marcar pontos!
Veja o exemplo de solução abaixo:
# Biblioteca importa
da importação vex *
# Inicia código do projecto
check_yellow = Event()
def check_yellow_callback():
brain.screen.set_font(FontType.MONO40)
brain.screen.clear_row(3)
brain.screen . set_cursor (3, 1)
vision_5_objects = vision_5.take_snapshot (vision_5__YELLOWBOX)
if (vision_5_objects):
arm_motor.spin_for (FORWARD, 300, DEGREES)
grab_motor.spin_for (FORWARD, 100, DEGREES)
drivetrain.drive_for (FORWARD , 12, POLEGADAS)
arm_motor.spin_for(REVERSE, 300, DEGREES)
Claw_motor.spin_for(REVERSE, 100, DEGREES)
else:
brain.screen.print("No Yellow Object")
# event handlers do sistema
check_yellow (check_yellow_callback)
# pequeno atraso para garantir que os manipuladores de eventos estão prontos para serem utilizados
wait(15, MSEC)
# executa constantemente para verificar novos dados do sensor
while True:
check_blue.broadcast_and_wait( )
wait(105, MSEC)