Skip to main content
Portal do Professor

O Controlador como Interface de Utilizador

Projeto VEXcode IQ com 3 blocos Hat. À esquerda anexada ao bloco Quando iniciado são os primeiros, blocos para definir o motor do braço e o motor da garra parando para segurar, uma velocidade do motor da garra definida para 60% e definir a velocidade do motor do braço para 30%. Em seguida, um loop Forever contém um bloco if then else. O bloco se lê Se o Controlador R Para Cima for pressionado, gire o motor da Garra para fechar. A ramificação else contém um bloco If then else que lê If Controller R Down pressed then spin claw motor open, else stop clawmotor. À direita a Quando o bloco de evento pressionado do controlador L Up tiver um motor do braço giratório para cima, aguarde até que o controlador L up seja pressionado, pare os blocos do motor conectados. Abaixo disso, um bloco de evento Quando o botão L Down do Controlador pressionado tem um motor do braço giratório para baixo, aguarde até que o controlador L Down seja pressionado, pare o motor do braço conectado.
O projeto de exemplo Controller Buttons da VEXcode IQ

Controle Remoto do Robô

Na maioria das vezes usamos controlos remotos para interagir com os nossos televisores. Pressionamos botões que fazem a televisão exibir um canal ou tela de informação/acesso que queremos. Tecnicamente, o controle remoto da sua televisão é uma interface do usuário. No entanto, é uma interface muito menos sofisticada do que a que o seu smartphone usa.

Programar o seu Controlador de QI é muito mais sofisticado. Durante as partidas controladas por pilotos de uma competição, você deseja que o seu piloto/equipe tenha o maior número possível de vantagens. Você pode programar os botões e joysticks para fazer mais de um comportamento simples, e você pode programá-los para fazer comportamentos complexos quando botões/joysticks são usados em combinação - semelhante à forma como alguns controladores de jogos funcionam. Como programador do seu Controlador, você considera quais botões usar em combinação, descobrindo como seus dedos e mãos precisariam ser colocados para alcançar todos os botões envolvidos.

A imagem acima mostra o projeto do projeto de exemplo Controller Buttons da VEXcode IQ. Você vê como o loop [Forever] tem dois [If then else] blocos aninhados dentro dele? Isso faz com que o projeto verifique se os botões R Up ou R Down estão pressionados, e o robô gira o motor de garra fechado ou aberto com base no que está sendo pressionado. Esse loop [para sempre] é muito importante. Isso faz com que o seu Controlador de QI verifique repetidamente em qual (is) botão(ões) está (ão) sendo pressionado (s) para que o robô execute o (s) comportamento(s) apropriado (s)

Considere que pode colocar dois blocos <Controller Pressed> de detecção num bloco de <and> operador. Isso faria com que o projeto verificasse se dois botões estavam sendo pressionados. Você também pode colocar um <and> bloco dentro de outro <and> bloco e ter três condições sendo verificadas antes que um comportamento seja realizado. Isso permitiria programar sequências de comportamento que podem ser iniciadas simplesmente pressionando os botões do controle.

Considere quantas combinações de condicionais mais você poderia criar com todos os botões e suas combinações no Controlador. É claro que, à medida que você programa comportamentos mais complexos no funcionamento do Controlador, o projeto se aproxima de ter o robô autônomo. Uma equipe de competição precisa descobrir quais são os melhores comportamentos a serem programados em seus Controladores como sequências complexas e quais comportamentos são melhor deixados decompostos em várias partes para que o Controlador permita que o motorista (usuário) tenha mais controle sobre a velocidade e a precisão do comportamento.

Ícone Dicas para Professores Dicas para Professores - Modelagem

Modele como combinar <and> blocos para os alunos se eles tiverem dificuldade em imaginar a combinação de <and> blocos para incluir mais de uma condição. Aqui está um exemplo:

Trecho de código mostrando blocos de operadores aninhados na condição da ramificação If. Um operador and tem um Controlador E pressionado na primeira metade e um aninhado e na segunda metade com o Controle F pressionado para cima e o Controlador F pressionado para baixo.

Este exemplo mostra apenas o primeiro bloco de comando e metade do próximo, mas pode haver uma sequência inteira de comportamentos para o robô executar quando esses três botões (E Down, F Up e F Down) forem pressionados.

Ícone Motivar Discussão Motivar a discussão

Todos os anos, o VEX desafia os seus utilizadores com um novo jogo. As equipes competem em partidas que consistem em um Período Autônomo de um minuto (60 segundos) (sem Controlador), seguido por um Período Controlado pelo Motorista de um minuto (60 segundos) (Controlador). Alguns alunos podem ter competido em competições de robótica antes, como parte de um clube ou equipe. As perguntas abaixo pedem aos alunos que compartilhem suas experiências e/ou interesses em competições.

P: Alguém aqui, ou alguém que você conhece, competiu numa competição de robótica?
R: Incentive os alunos que competiram a compartilhar suas experiências. Faça mais perguntas, como "qual robô você usou?" e/ou "qual foi a sua parte favorita da experiência?".

P: Alguém está interessado em saber mais sobre a competição/jogo VEX deste ano?
R: Quando os alunos responderem sim, você pode direcioná-los para o site do Concurso VEX e mostrar o vídeo do desafio deste ano.