Skip to main content

Controladores e Loops

Projeto de exemplo VEXcode IQ. Abaixo do bloco Quando iniciado há 4 blocos para definir a parada do motor do braço para manter, definir a parada do motor da garra para manter, definir a velocidade do motor do braço para 60% e a velocidade do motor da garra para 30%. O próximo é um bloco Forever com 4 blocos de movimento dentro. Em ordem, eles lêem set left motor velocity to Controller A position %, Set right motor velocity to Controller D position %, spin left motor forward, spin right motor forward. Projeto de exemplo
Clawbot Control da VEXcode IQ

Controladores e Loops

Nas competições, as equipas usam controladores para controlar sem fios os seus robôs. O controlador está programado para atualizar o robô com base na entrada do utilizador. Os loops são usados no projeto para que o robô verifique repetidamente as informações de entrada atualizadas. Os loops permitem que o projeto verifique rapidamente quais botões foram pressionados ou até que ponto os joysticks foram pressionados. Uma vez verificada, esta informação é rapidamente retransmitida ao robô para que ele responda rapidamente às instruções do controlador.

A imagem acima mostra o projeto de exemplo Clawbot Control da VEXcode IQ. O loop para sempre neste projeto verifica as posições dos eixos A e D para sempre, a fim de definir a velocidade dos motores.

Os loops são importantes mesmo para a programação autônoma sem um controlador. Um loop ajuda a simplificar e organizar comandos repetidos dentro de um projeto.

Ícone Motivar Discussão Motivar a discussão - Comportamentos de loop

Revise o jogo VEX IQ Competition deste ano com os alunos clicando neste link. Ou, faça a seguinte discussão com base nos jogos dos anos anteriores.

P: Quais comportamentos provavelmente serão repetidos pelo robô durante uma competição?
R: Os alunos provavelmente responderão imediatamente com movimentos, mas é menos provável que o projeto use loops para movimentos do que para verificar sensores.

P: Como você transformaria esses comportamentos repetitivos em loop?
R: Não importa o (s) comportamento(s) que esteja (m) sendo repetido (s), arrastar os blocos dentro de um loop é uma etapa necessária. Os alunos precisam estar confortáveis aninhando blocos dentro de blocos de loop.

P: Pergunte aos alunos qual bloco no VEXcode IQ poderia ajudá-los a programar seus robôs para se comportarem depois que um único botão do controlador for pressionado. Além disso, pergunte de qual grupo de blocos ele faz parte.
R: Esse bloco é chamado de bloco de botão Quando controlador e está localizado sob os blocos Eventos no VEXcode IQ.

Ícone Estenda a sua aprendizagem Estenda a sua aprendizagem - Analisar projetos de exemplo

Para expandir esta atividade, peça aos seus alunos que explorem as diferenças entre o controle arcade e o controle de tanques. Os alunos podem seguir os exemplos de projetos encontrados no VEXcode IQ. Existem quatro projetos de exemplo: Left Arcade, Right Arcade, Split Arcade e Tank Drive.

Barra de ferramentas do VEXcode IQ com o menu Arquivo aberto e Abrir exemplos selecionados com uma caixa vermelha. "Abrir exemplos" é o quarto item do menu.

Exemplo de janela de seleção de projeto com os seguintes ícones de projeto destacados com caixas vermelhas: Left Arcade, Right Arcade, Split Arcade e Tank Drive.

Discutir como funcionam os loops dentro dos programas, bem como os prós e contras de cada tipo de controle.

Para relacionar esta atividade com a matemática, use os projetos arcada esquerda/direita (um joystick) e arcada dividida/acionamento do tanque (ambos os joysticks) acima para discutir as funções dos eixos X e Y dentro do projeto. As leituras da posição do eixo X capturam os movimentos horizontais esquerdo-direito do (s) joystick(s), enquanto as leituras da posição do eixo Y capturam os movimentos verticais de cima para baixo do (s) joystick(s).