Programação de dois botões
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.
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.
Quantidade | Materiais necessários |
---|---|
1 |
VEX IQ Super Kit |
1 |
VEXcode IQ |
1 |
Caderno de Engenharia |
1 |
Modelo de Clawbot (Drivetrain) |
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.
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.
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.
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.
-
Salve o projeto como ArmUpDown. Se os alunos precisarem de ajuda para salvar o projeto, consulte o tutorial Naming and Saving.
- 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.
- Verifique as suas explicações sobre o projeto e adicione notas para corrigi-las conforme necessário.
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.
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.
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.
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.
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.
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).
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:
-
Salve o projeto como ArmUpDown2. Se os alunos precisarem de ajuda para salvar o projeto, consulte o tutorial Naming and Saving.
- 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.
- 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.
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.
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. -
Salve o projeto como ClawUpDown. Se os alunos precisarem de ajuda para salvar o projeto, consulte o tutorial Naming and Saving.
- 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.
- 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.
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.
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.
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.