Caixa de ferramentas do professor - O objetivo desta atividade
Na página anterior, o aluno estava programando o braço para girar usando o botão Brain Up. Esta página se baseará no projeto anterior para programar também o braço para girar para baixo usando o botão Brain Down.
Esta atividade apresentará aos alunos a programação com [If then else] blocos, bem como o uso de blocos de detecção e de 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 irá abaixar. Isto se baseia na atividade anterior e também estabelecerá 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 fechar a garra, tudo usando botões no IQ Robot Brain.
Para obter mais informações sobre o botão [If then], [If then else], <Brain pressionado>, ou os blocos [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 está um esboço do que 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.
-
Refine suas explicações sobre o que o projeto ArmUpDown faz.
-
Assista ao vídeo tutorial If Then Else Blocks .
-
Edite seu projeto usando [If then else] blocos.
-
Pare e discuta: Os alunos refletirão sobre suas previsões sobre o que o projeto fará com que o Clawbot faça em comparação com suas observações reais.
-
Programe a garra usando o mesmo esquema de projeto da programação do braço.
Quantidade | Materiais necessários |
---|---|
1 |
Super Kit VEX IQ |
1 |
VEXcódigo IQ |
1 |
Caderno de Engenharia |
1 |
Modelo Clawbot (transmissão) |
Caixa de ferramentas do professor
Para sugestões sobre estratégias de ensino para esta seção, revise a coluna Entrega do Guia de ritmo de tarefas ou não ações (Google ).
O braço do Clawbot está pronto para subir e descer!
Esta atividade lhe dará as ferramentas para programar seu robô com comportamentos condicionais.
O bloco [If then else] é o foco principal 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.
Dicas para professores
Se esta for a primeira vez que o aluno usa o VEXcode IQ, ele também poderá ver os Tutoriais na barra de ferramentas para aprender outras habilidades básicas.
Passo 1: Programação para mover o braço para baixo.
Na página anterior, você programou o braço do Clawbot para girar quando o botão Brain Up foi pressionado. Mas, que tal abaixar também o braço? Vamos primeiro revisitar o projeto ArmUp2 anterior.
Seria possível usar o mesmo bloco [If then] para girar o braço para cima e também para baixo? Vamos tentar! Construa o projeto abaixo editando seu projeto ArmUp2 já existente.
-
Salve o projeto como ArmUpDown. Se os alunos precisarem de ajuda para salvar o projeto, consulte o tutorial Nomeando e Salvando.
-
Verifique se o nome do projeto ArmUpDown está agora na janela no centro da barra de ferramentas.
-
Preveja o que o projeto fará com que o Clawbot faça em seu caderno de engenharia. Explique os comportamentos do usuário e do Clawbot.
-
Teste para ver se sua previsão sobre o que o Clawbot faz no projeto está correta.
-
Baixe o projeto para 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 suas explicações do projeto e adicione notas para corrigi-las conforme necessário.
Caixa de ferramentas do professor
O projeto que os alunos construíram 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. Embora o projeto funcione como está, ele não foi escrito de maneira 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 começar a ser pressionado é primeiro, se o botão Brain Up for pressionado e depois o Brain Down também for pressionado, o braço continuará a girar para cima. Essa ação não irá parar até que o botão Brain Up seja liberado. Assim, o projeto será reescrito na próxima etapa para incluir um bloco [If then else] para evitar esses problemas potenciais.
Caixa de ferramentas do professor - Pare e discuta
Agora que os alunos testaram o projeto, pergunte-lhes como as suas previsões se comparam às suas observações. Facilite a discussão fazendo as seguintes perguntas:
-
Sua previsão foi igual à sua observação?
-
O que parece estar acontecendo no projeto?
-
As condições dos botões Para cima e Para baixo sendo pressionados são verificadas apenas uma vez?
-
Você acha que o projeto poderia ser reorganizado para funcionar com mais eficiência?
Etapa 2: Compreender o fluxo do projeto.
Na etapa anterior, o projeto levantou e abaixou o braço. No entanto, como a condição do botão Brain Up começar a ser pressionado é a primeira, se o botão Brain Up for pressionado e depois o Brain Down também for pressionado, o braço continuará a girar para cima, pois essa ação não irá parar até que o botão Brain Up seja pressionado. é libertado. Visualize 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.
Veja o seguinte vídeo tutorial sobre [If then else] blocos:
Comece assistindo ao vídeo do tutorial If-Then-Else no VEXcode IQ.
Usar os blocos [If then else] também eliminará a necessidade dos blocos [Wait Until], porque o braço continuará a girar 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 [If then else] blocos. O motor do braço continuará a girar até que o botão Brain Up não seja mais pressionado (solto). 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 for falsa, o projeto continuará para o próximo bloco, que é verificar a condição se o botão Brain Down for pressionado. Se a condição do botão Brain Down pressionado for verdadeira, o braço girará para cima. Novamente, devido ao bloco [Forever] , esta 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 for pressionado).
Motivar a discussão
P: Qual é a progressão do fluxo do projeto se a condição do botão Brain Up pressionado for FALSE (liberado)?
A: Se a condição for falsa, o fluxo do projeto continuará verificando a condição do botão Brain Down pressionado.
P: Qual é o propósito dos blocos [If then else] no projeto acima?
A: Usar os blocos [If then else] permite que apenas uma instância seja verdadeira por vez. Assim, os botões Brain Up e Brain Down não podem ser verdadeiros ao mesmo tempo usando os blocos [If then else] , pois a segunda condição do botão Brain Down sendo pressionado não seria sequer uma opção a menos que a primeira condição do botão Brain Down fosse pressionada. O botão Brain Up pressionado era falso. 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 pressionados são falsas?
A: Se ambas as condições forem falsas, o fluxo do projeto continuará até o bloco [Stop motor] antes de retornar ao topo da pilha, repetindo-se indefinidamente.
Passo 3: Programação com [If then else] blocos.
Vamos usar os blocos [If then else] :
-
Adicione os blocos [If then else] ao seu projeto ArmUpDown para que 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 Nomeando e Salvando.
-
Baixe o projeto para 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 download e executar um projeto.
-
Teste para ver se o braço irá 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 Brain Up e Down não são pressionados (liberados) o motor do braço para.
-
Escreva suas observações sobre como o Clawbot se comportou antes e depois de adicionar os blocos if then else ao seu projeto em seu caderno de engenharia.
Caixa de ferramentas do professor - 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 compartilhem suas observações de 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 ) ou em equipe (Google ). 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 entregar cópias aos alunos antes do início da atividade.
Caixa de ferramentas do professor
Os alunos podem não ver muita diferença no comportamento do Clawbot entre o uso dos 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 a simplificação de um projeto pode levar ao uso de menos blocos. Usar menos blocos em um projeto pode reduzir a quantidade de erros potenciais.
Etapa 4: Programando a Garra.
Na etapa anterior, o projeto foi otimizado para funcionar 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 gire a Garra para “abrir” e que o botão Brain Down gire a Garra para “fechar” usando os menus suspensos.
-
Salve o projeto como ClawUpDown. Se os alunos precisarem de ajuda para salvar o projeto, consulte o tutorial Nomeando e Salvando.
-
Baixe o projeto para Slot 1 no Clawbot e execute-o.
-
Para obter ajuda para baixar e executar um projeto, consulte o tutorial no VEXcode IQ que explica como download 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 Brain Up e Down não são pressionados (liberados) o motor da garra para.
-
Escreva suas observações sobre como o Clawbot se comportou antes e depois de adicionar os blocos if then else ao seu projeto em 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 pensem em como 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 de repensar para permitir que seu robô execute todas as quatro ações.
Amplie seu aprendizado - conjunto de bloco de parada do motor
Se os alunos programarem seu robô para levantar e abaixar o braço, o peso da Garra poderá fazer com que o braço desça.
Neste caso, o bloco [Definir parada do motor] pode ser utilizado para que o braço não caia devido à gravidade e ao peso da garra. Este bloco pode ser utilizado no início do projeto e será aplicado a todos os futuros blocos de motor durante o restante do projeto.
O bloco de parada do motor configurado possui três configurações:
-
O freio faz com que o motor pare imediatamente.
-
Parada por inércia permite que o motor gire gradualmente até parar.
-
Hold faz com que o motor pare imediatamente e o retorne à sua posição parada se for movido.