Skip to main content
Portal do Professor

Programação de dois botões

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor - O Propósito desta Atividade

Na página anterior, o aluno estava programando o braço para girar para cima usando o botão Brain Up. Esta página se baseará no projeto anterior para também programar o braço para girar para baixo usando o botão Brain Down.

VEXcode IQ Se assim for, bloqueie da caixa de ferramentas

Esta atividade apresentará aos alunos a programação com blocos [If then else], bem como o uso de blocos de detecção e operador para que o robô verifique se os botões Brain Up ou Down estão pressionados. Se o botão Brain Up for pressionado, o braço do Clawbot se levantará. Se o botão Brain Down for pressionado, o braço do Clawbot abaixará. Isso se baseia na atividade anterior e também definirá as bases para o Desafio da Interface do Usuário na seção Repensar.

Para o Desafio de Interface do Usuário, os alunos precisarão programar seu Clawbot para levantar o braço, abaixar o braço, abrir a garra e fechá-la usando os botões no Cérebro do Robô IQ.

Para obter mais informações sobre os blocos [If then], [If then else]>, <Brain pressionado ou [Spin], visite as informações de ajuda no VEXcode IQ. Para obter mais informações sobre esta ferramenta de ajuda integrada, clique aqui.

A seguir, um resumo do que os seus alunos farão nesta atividade:

  • Use o ArmUp2 existente para construir o  projeto ArmUpDown fornecido e prever o que o projeto fará.
  • Veja um fluxograma para ajudar a explicar o fluxo dos blocos no projeto.
  • Refinar as suas explicações sobre o que o projeto ArmUpDown faz.
  • Assista ao vídeo tutorial If Then Else Blocks.
  • Edite o projeto deles usando os blocos [If then else].
  • Parar e discutir: os alunos refletirão sobre as suas previsões sobre o que o projeto fará com o Clawbot em comparação com as suas observações reais.
  • Programe a garra usando o mesmo esboço de projeto da programação do braço.
Materiais Necessários:
Quantidade Materiais necessários
1

VEX IQ Super Kit

1

VEXcode IQ

1

Caderno de Engenharia

1

Modelo de Clawbot (Drivetrain)

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor

Para sugestões sobre estratégias de ensino para esta seção, consulte a coluna Entrega do Guia Para Fazer ou Não Fazer (Google / .docx / .pdf).

O braço do Clawbot está pronto para se mover para cima e para baixo!

Esta atividade fornecerá as ferramentas para programar seu robô com comportamentos condicionais.
O bloco [If then else] é o foco principal dentro da atividade, mas outros blocos de detecção, controle e operador também são usados.

Blocos de amostra da caixa de ferramentas VEXcode IQ - Botão Brain pressionado, não operador, aguarde até que, se então, e se então mais blocos.

Você pode usar as informações de Ajuda dentro do VEXcode IQ para aprender sobre os blocos. Para obter orientação sobre como usar o recurso Ajuda, consulte o tutorial Usando a Ajuda.

Barra de ferramentas do VEXcode IQ com o ícone Tutoriais destacado em uma caixa vermelha, à direita do menu Arquivo.

Passo 1: Programação para mover o braço para baixo.

Na página anterior, você programou o braço do Clawbot para girar para cima quando o botão Brain Up foi pressionado. Mas, que tal também abaixar o braço? Vamos primeiro revisitar o projeto ArmUp2 anterior.

olá

Seria possível usar o mesmo bloco [Se então] para girar o braço para cima para também girar o braço para baixo? Vamos tentar! Crie o projeto abaixo editando o seu projeto ArmUp2 já existente.

Arme o projeto 2 com um bloco If then adicional adicionado abaixo do primeiro, dentro do loop forever. O segundo bloco If then lê Se o botão Brain Down for pressionado, gire o motor do braço para baixo, aguarde até que o botão Brain Down não seja pressionado. Em seguida, o bloco do motor do braço de parada está abaixo do Se então.

  • Salve o projeto como ArmUpDown. Se os alunos precisarem de ajuda para salvar o projeto, consulte o tutorial Naming and Saving.

    Caixa de diálogo Nome do projeto na barra de ferramentas do VEXcode IQ. A ranhura 3 é mostrada e o nome do projeto lê Arm Up Down.

  • Verifique se o nome do projeto ArmUpDown está agora na janela no centro da barra de ferramentas.
  • Preveja o que o Clawbot fará no seu caderno de engenharia. Explique os comportamentos do utilizador e do Clawbot.
  • Teste para ver se a sua previsão do que o Clawbot faz no projeto está correta.
    • Baixe o projeto para o Slot 3 no Clawbot e execute-o.
    • Para obter ajuda para baixar e executar um projeto, consulte o tutorial no VEXcode IQ que explica como baixar e executar um projeto.
      O ícone do tutorial lê Baixar e executar um projeto com um ícone de download e uma seta acima.
  • Verifique as suas explicações sobre o projeto e adicione notas para corrigi-las conforme necessário.

Ícone Dicas para Professores Dicas para Professores

Se esta é a primeira vez que o aluno usa o VEXcode IQ, ele também pode ver os Tutoriais na barra de ferramentas para aprender outras habilidades básicas.

Barra de ferramentas do VEXcode IQ com o ícone Tutoriais destacado em uma caixa vermelha, à direita do menu Arquivo.

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor

O projeto que os alunos constroem acima funcionará. Quando o botão Brain Up é pressionado, o braço gira para cima e quando o botão Brain Down é pressionado, o braço gira para baixo. Mesmo que o projeto funcione como está, ele não está escrito de forma ideal. Pode haver um caso em que ambas as condições possam ser verdadeiras ao mesmo tempo. Além disso, observe que, como a condição do botão Brain Up (Cérebro para Cima) é pressionada primeiro, se o botão Brain Up (Cérebro para Cima) for pressionado e, em seguida, o Brain Down (Cérebro para Baixo) também for pressionado, o braço continuará girando Essa ação não vai parar até que o botão Brain Up seja solto. Assim, o projeto será reescrito na próxima etapa para incluir um bloco [If then else] para evitar esses possíveis problemas.

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas para Professores - Pare e Discuta

Agora que os alunos testaram o projeto, pergunte-lhes como suas previsões se comparam às suas observações. Facilite a discussão fazendo as seguintes perguntas:

  • A sua previsão foi a mesma que a sua observação?

  • O que parece ser feliz no projeto?

  • As condições dos botões Para cima e Para baixo estão sendo pressionadas apenas uma vez?

  • Você acha que o projeto poderia ser reorganizado para funcionar de forma mais eficiente?

Passo 2: Compreender o fluxo do projeto.

Na etapa anterior, o projeto levantou e abaixou o braço. No entanto, uma vez que a condição do botão Brain Up (Cérebro para Cima) começar pressionado é primeiro, se o botão Brain Up (Cérebro para Cima) for pressionado e, em seguida, o Brain Down (Cérebro para Baixo) também for pressionado, o braço continuará a girar para cima, uma vez que essa ação não irá parar até que o botão Brain Veja o fluxograma a seguir que explica o fluxo do projeto.

Imagem do fluxo do projeto que mostra como o projeto é executado para tomar uma decisão. Se o botão Brain up pressionado for rotulado como a condição, se for pressionado/True, os blocos abaixo serão executados em ordem até a próxima condição. Se não for pressionado/false, uma linha vermelha indica que os blocos foram ignorados e o projeto se move para verificar a segunda condição. A mesma ramificação ocorre para a segunda condição - se o botão Brain Down for pressionado.

Assim, o projeto pode substituir os blocos [If then] por blocos [If then else ] para que apenas uma instância possa ser verdadeira a qualquer momento.

Assista ao seguinte vídeo tutorial nos blocos [If then else]:

Comece assistindo ao vídeo  Tutorial If-Then-Else no VEXcode IQ.

O ícone do tutorial lê If then else blocks na parte inferior e mostra o contorno dos blocos na parte superior.

Usar blocos [If then else] também eliminará a necessidade dos blocos [Wait until] porque o braço continuará girando até que o botão Brain Up seja liberado. Isso ocorre porque a parte "else" do [If then else] nunca é alcançada até que a condição do botão Brain Up seja falsa (liberada).

O bloco [Forever] permite que a primeira condição seja verificada continuamente.

VEXcode IQ project with a forever loop attached to the When started block. Dentro do loop Forever há um bloco if then else. A ramificação If lê Se o botão Brain Up for pressionado, gire o motor do braço para cima. A ramificação else contém outro bloco if then else, lendo se o botão Brain Down pressionado, em seguida, gire o motor do braço para baixo, senão, pare o motor do braço.

Vamos explorar a alteração do projeto adicionando blocos [If then else]. O Motor de Braço continuará a girar até que o botão Brain Up não seja mais pressionado (liberado). Devido ao bloco [Forever], esta condição continuará a ser verificada até que seja falsa.

Uma vez que a condição do botão Brain Up é falsa, o projeto continuará para o próximo bloco, que é verificar a condição se o botão Brain Down é pressionado. Se a condição do botão Brain Down sendo pressionado for verdadeira, o braço girará para cima. Novamente, devido ao bloco [Forever], essa condição continuará a ser verificada até que seja falsa.

Assim que a condição do botão Brain Up for falsa, o projeto continuará para o próximo bloco, que é o bloco [Stop motor]. Assim, o Motor do Braço só irá parar quando ambas as condições forem falsas (nenhum botão é pressionado).

Imagem do fluxo do projeto que mostra como o projeto é executado para tomar uma decisão. Primeiro, a condição do botão Se Cérebro para cima pressionado é verificada, se for verdade, o projeto se move para girar o motor do braço para cima e volta ao início. Se a condição for falsa, a segunda condição do botão Brain down pressionado é verificada. Se o botão Brain Down for pressionado/true, o motor do braço giratório para baixo é executado e, em seguida, volta ao início. Se não for pressionado falso, o bloco do motor do braço de parada é executado.

Ícone Motivar Discussão Motivar a discussão

P: Qual é a progressão do fluxo do projeto se a condição do botão Brain Up sendo pressionado for FALSA (liberado)?
R: Se a condição for falsa, o fluxo de projeto continuará a verificar a condição do botão Brain Down sendo pressionado.

P: Qual é o objetivo dos blocos [If then else] no projeto acima?
R: Usar os blocos [If then else] permite que apenas uma instância seja verdadeira por vez. Assim, o botão Brain Up e os botões Brain Down não podem ser verdadeiros ao mesmo tempo usando os blocos [If then else], uma vez que a segunda condição do botão Brain Down sendo pressionado nem mesmo seria uma opção, a menos que a primeira condição do botão Brain Up sendo pressionado fosse falsa. O outro objetivo é melhorar a eficiência da programação.

P: Qual é a progressão do fluxo do projeto se ambas as condições dos botões para cima e para baixo que estão sendo pressionados forem falsas?
R: Se ambas as condições forem falsas, o fluxo de projeto continuará para o bloco [Parar motor] antes de retornar ao topo da pilha, repetindo-se para sempre.

Etapa 3: Programação com blocos [If then else].

Vamos usar os blocos [If then else]:

  • Adicione os blocos [If then else] ao seu projeto ArmUpDown para que o seu projeto tenha a seguinte aparência:

    Projeto VEXcode IQ com um bloco Forever anexado ao bloco When started. Dentro do bloco forever está um bloco If then else. O ramo if lê se o botão brain up foi pressionado, gire o motor do braço para cima. A ramificação else contém outro bloco if then else que lê se o botão brain down foi pressionado, em seguida, gire o motor do braço para baixo, caso contrário, pare o motor do braço.

  • Salve o projeto como ArmUpDown2. Se os alunos precisarem de ajuda para salvar o projeto, consulte o tutorial Naming and Saving.

    Caixa de diálogo Nome do projeto na barra de ferramentas do VEXcode IQ. A ranhura 4 está selecionada e o nome do projeto lê Arm Up Down 2.

  • Baixe o projeto para o Slot 4 no Clawbot e execute-o.
  • Para obter ajuda para baixar e executar um projeto, consulte o tutorial no VEXcode IQ que explica como baixar e executar um projeto.
    O ícone do tutorial lê Baixe e execute um projeto na parte inferior com um ícone de download e uma seta acima.
  • Teste para ver se o braço agora vai girar para cima quando o botão Brain Up for pressionado e girar para baixo quando o botão Brain Down for pressionado.
  • Verifique se, quando os botões Cérebro para Cima e Cérebro para Baixo não são pressionados (liberados), o Motor do Braço para.
  • Escreva suas observações de como o Clawbot se comportou antes e depois de adicionar os blocos if then else ao seu projeto no seu caderno de engenharia.

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas para Professores - Pare e Discuta

Depois que os alunos testarem o projeto antes e depois de adicionar o bloco [If then else], discuta com os alunos como isso permite que o braço continue girando até que o botão Brain Up seja liberado. Peça aos alunos que partilhem as suas observações dos seus cadernos de engenharia. Facilite uma discussão fazendo as seguintes perguntas:

  • Você vê o Clawbot se comportando de maneira diferente entre usar os blocos [If then else] em comparação com apenas os blocos [If then]?

  • Por que você acha que a eficiência do programa é importante?

  • A condição do botão Brain Up é verificada apenas uma vez no projeto?

Os cadernos de engenharia dos alunos podem ser mantidos e pontuados individualmente (Google / .docx / .pdf) ou em equipe (Google / .docx / .pdf). Os links anteriores fornecem uma rubrica diferente para cada abordagem. Sempre que uma rubrica for incluída no planejamento educacional, é uma boa prática explicar a rubrica ou pelo menos dar cópias aos alunos antes do início da atividade.

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor

Os alunos podem não ver muita diferença em como seu Clawbot se comporta entre usar os blocos [If then else] em comparação com os blocos [If then]. Se os alunos não conseguirem ver fisicamente muita diferença, facilite uma discussão sobre a eficiência da programação e como simplificar um projeto pode levar ao uso de menos blocos. Usar menos blocos em um projeto pode reduzir a quantidade de erros potenciais.

Passo 4: Programar a garra.

Na etapa anterior, o projeto foi otimizado para ser executado com mais eficiência usando blocos [If then else]. No exemplo anterior, o braço foi manipulado usando os botões Brain Up e Down.

Usando exatamente o mesmo esboço do projeto, a Garra também pode ser manipulada.

  • Revise o projeto ArmUpDown2 e altere os blocos [Spin] para ClawMotor em vez de ArmMotor usando o menu suspenso.

    Certifique-se de que o botão Brain Up gira a Garra "aberta" e que o botão Brain Down gira a Garra "fechada" usando os menus suspensos.

    Arme o projeto Up Down 2 com os blocos do motor de rotação ajustados para o motor de garra. O bloco do motor de paragem tem a seleção de parâmetros aberta com o motor do braço selecionado.

  • Salve o projeto como ClawUpDown. Se os alunos precisarem de ajuda para salvar o projeto, consulte o tutorial Naming and Saving.

    Caixa de diálogo Nome do projeto na barra de ferramentas do VEXcode IQ. A ranhura 1 é selecionada e o nome do projeto lê Garra para Cima para Baixo.

  • Baixe o projeto para o Espaço 1 no Clawbot e execute-o.
  • Para obter ajuda para baixar e executar um projeto, consulte o tutorial no VEXcode IQ que explica como baixar e executar um projeto.
    O ícone do tutorial lê Baixar e executar um projeto na parte inferior.
  • Teste para ver se a Garra agora girará aberta quando o botão Brain Up for pressionado e girará fechada quando o botão Brain Down for pressionado.
  • Verifique se, quando os botões Cérebro para cima e Cérebro para baixo não são pressionados (liberados), o motor da garra para.
  • Escreva suas observações de como o Clawbot se comportou antes e depois de adicionar os blocos if then else ao seu projeto no seu caderno de engenharia.

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor

Agora que os alunos têm as habilidades para manipular o braço e a garra usando botões, peça aos alunos que façam um brainstorm de como eles podem realizar todas as quatro ações no mesmo projeto (braço para cima, braço para baixo, garra aberta e garra fechada).
Os alunos utilizarão outro bloco [if then else] na seção repensar para permitir que o robô execute todas as quatro ações.

Ícone Estenda a sua aprendizagem Estenda Sua Aprendizagem - Defina o Bloco de Parada Motora

Se os alunos programarem seu robô para levantar e abaixar o braço, o peso da garra pode fazer com que o braço desça.
Neste caso, o bloco [Definir parada do motor] pode ser usado para que o braço não caia devido à gravidade e ao peso da garra. Este bloco pode ser usado no início do projeto e será aplicado a todos os blocos motores futuros para o resto do projeto.

Início das informações de Ajuda para o bloco de parada do motor definido. O bloco é mostrado com os parâmetros definidos como Motor de garra e a parada definida como freio. O texto lê Define o comportamento do Motor Inteligente VEX IQ quando ele para de se mover.

O bloco de parada do motor definido tem três configurações:

  • O freio faz com que o motor pare imediatamente.
  • Coast permite que o Motor gire gradualmente até parar.
  • A retenção faz com que o Motor pare imediatamente e o retorne à sua posição parada se movido.