Skip to main content

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor - Esboço da Atividade

  • Esta exploração apresentará aos alunos a programação de comportamentos repetitivos usando loops de repetição ou para sempre.

  • Aprender a programar usando loops de repetição e para sempre permite que os alunos economizem tempo ao construir um projeto que usa as mesmas ações repetidas. Para obter mais informações sobre as instruções usadas em um projeto de texto, visite as informações de ajuda.

Ícone Dicas para Professores Dicas para Professores - Usando o Preenchimento Automático

O preenchimento automático é um recurso do VEXcode V5 que prevê o restante do comando que você está digitando. Como os alunos estão trabalhando no VEXcode V5, incentive-os a usar o recurso de preenchimento automático para ajudar com a sintaxe do Python. Você pode notar uma função de preenchimento automático ao começar a digitar a instrução. Use as teclas "Para cima" e "Para baixo" para selecionar o nome desejado e, em seguida, pressione "Tab" ou (Enter/Return) no teclado para fazer a seleção. Para obter mais informações sobre como usar o preenchimento automático, confira o artigo do Python.

Imagem da funcionalidade de preenchimento automático num projeto Python

Certifique-se de ter o hardware necessário, seu notebook de engenharia e o VEXcode V5 baixados e prontos.

Materiais Necessários:
Quantidade Materiais necessários
1

VEX V5 Classroom Starter Kit (com firmware atualizado)

1

VEXcode V5 (versão mais recente, Windows, macOS)

1

Caderno de Engenharia

1

Projeto de exemplo de modelo Clawbot (Drivetrain 2-motor, sem giroscópio)

Etapa 1:  Vamos começar a programar com loops

  • Antes de iniciar o seu projeto, selecione o modelo de projeto correto. O projeto de exemplo Clawbot Template (Drivetrain 2-motor, No Gyro) contém a configuração do motor do Clawbot. Se o modelo não for usado, o seu robô não executará o projeto corretamente.
  • Seleccione Ficheiro e Abra Exemplos.

    Imagem que mostra o menu Arquivo aberto no VEXcode V5 mostrando a opção Abrir Exemplos

     

  • Percorra os diferentes projetos de exemplo. Estes projetos demonstram uma variedade de ações que o seu Clawbot pode realizar. Selecione e abra o projeto de exemplo Clawbot Template (Drivetrain 2-motor, No Gyro).

    Imagem que mostra os projetos de exemplo com uma caixa vermelha ao redor do projeto modelo Speedbot (sistema de transmissão 2 motores, sem giroscópio)

     

  • Nomeie o projeto RepeatingActions.

    Imagem que mostra o nome do projeto de ações repetidas no VEXcode V5

  • Digite o seguinte código:

    # Importações
    de biblioteca da importação Vex *
    
    # Iniciar código do projeto
    # Avança 300mm gira 90 graus para 4 iterações
    
    para repeat_count no intervalo(4):
        drivetrain.drive_for (PARA FRENTE, 300, MM
        ) drivetrain.turn_for (DIREITA, 90, GRAUS)
        aguarde(5, SEGUNDOS)

Examine o projeto e, em seguida, faça o seguinte no seu caderno de engenharia.

  1. Preveja o que o Clawbot fará no projeto. Explique mais do que o facto de o projeto se repetir.

    O que ele está repetindo? O que o Clawbot está fazendo?

  2. Escreva a sua previsão, mas não divida o projeto curto em mais de duas partes.

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

  1. Este projeto terá o robô: avançar 300 milímetros , virar à direita 90 graus e esperar 5 segundos 4 vezes para completar um quadrado. Em vez de usar as mesmas 3 instruções 4 vezes, a instrução de repetição reduz a quantidade para apenas 1 vez. A instrução de repetição repete as ações de avançar e depois virar.

  2. A previsão pode ser simplesmente "O Clawbot se move num quadrado". Esta seria uma maneira sucinta de capturar os movimentos repetidos do Clawbot sem qualquer contexto.

Os cadernos de engenharia dos alunos podem ser mantidos e pontuados individualmente ou em equipe. 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.

  • Salve, baixe e execute o projeto Repeating Actions.

    Captura de ecrã que mostra o título do projeto Repeating Actions no VEXcode V5

  • Verifique as suas explicações do projeto no seu caderno de engenharia e adicione notas para corrigi-las conforme necessário.

Passo 2: Executar o projeto e observar o robô

Uma comparação de dois trechos de código Python para robôs VEX. O snippet superior usa a entrada do sensor para determinar quando girar, com um loop while verificando se o interruptor do para-choque está pressionado; se pressionado, o robô gira para a direita 90 graus, caso contrário, ele avança. O snippet inferior usa uma distância fixa para determinar quando girar, com um loop for que impulsiona o robô para frente 300 mm, vira à direita 90 graus e aguarda 5 segundos, repetindo esta sequência quatro vezes

Veja novamente o projeto Repeating Actions (o segundo projeto). Este projeto repetirá o comportamento para a frente e, em seguida, girará quatro vezes. Uma estrutura de loop "repeat" (usando um loop for) é usada quando você deseja usar um conjunto de comportamentos um determinado número de vezes.

Se a estrutura de repetição for substituída por uma estrutura de
loop while, o robô repetirá os comportamentos forward e, em seguida, girará "enquanto" a condição for verdadeira. Você também pode definir a condição como "true" para que o loop while continue para sempre.

No primeiro projeto, a entrada de um sensor é usada para determinar quando começar a girar. O projeto à direita usa uma distância de transmissão fixa para determinar quando começar a girar.

Para verificar continuamente a entrada de um sensor, uma
instrução if else é usada em conjunto com um loop while. No projeto à esquerda, o robô girará para a direita quando o sensor "bumper_b" for pressionado, caso contrário, o robô avançará para sempre se o sensor "bumper_b" não for pressionado. Para verificar continuamente o valor do sensor bumper_b, a instrução if está dentro de um loop while.

O primeiro projeto é um caso de uso prático de uma estrutura que se repete para sempre – usando
 loops while e  if juntos. Imagine uma vassoura autónoma que continua a avançar até colidir com uma parede ou objeto e, em seguida, vira antes de continuar a conduzir.

Ícone Estenda a sua aprendizagem Estenda a sua aprendizagem

Para explorar ainda mais como você pode usar loops com condicionais, peça aos alunos que construam um projeto de Varredor de Piso no VEXcode V5.

  • Comece fazendo com que os alunos montem e liguem os interruptores do para-choque.
  • Peça aos alunos que abram o projeto de exemplo Clawbot Template (Drivetrain 2-motor, No Gyro).

     

  • Peça aos alunos que configurem o Interruptor do Pára-choques de 3 fios noVEXcode V5 , selecionem o Dispositivo de 3 fios que está a usarpara o PÁRA-CHOQUES e selecionem a porta para B.Imagem da configuração do dispositivo no VEXcode V5 com a opção Bumper destacadaImagem da configuração do dispositivo para o interruptor do para-choques com a porta B destacada
     
  • Peça aos alunos que nomeiem o projeto como Varredor de Piso.

  • Peça aos alunos que construam o seguinte projeto.

    # Importações
    de biblioteca de importação Vex *
    
    importação aleatória
    
    # Começar código do projeto
    enquanto True:
        while (not bumper_b.pressing ()
            ): drivetrain.drive (FORWARD)
            wait(5,
        
        MSEC) drivetrain.stop ()
    
        #O método random.randomint () retorna um número inteiro aleatório entre o intervalo especificado
        #Passe os valores min e max do intervalo para os parâmetros
        drivetrain.turn_for (RIGHT, (90+random.randint (0, 90)),DEGREES)
        wait(5, MSEC)

Se os alunos precisarem de ajuda com alguma das instruções, encaminhe-os para as informações de Ajuda.

Peça aos alunos que 
baixem e executem o projeto para observar como o robô se move. Em seguida, inicie uma discussão em sala de aula e peça aos alunos que expliquem por que a estrutura para sempre foi usada em vez de uma estrutura de repetição.

Os alunos devem observar que uma estrutura para sempre é usada porque este projeto verifica continuamente se o interruptor do para-choque está sendo pressionado.

Passo 3: O Desafio dos Loops Quadrados!

Um diagrama que mostra um caminho quadrado verde com setas indicando a direção do movimento em torno do quadrado. Setas laranja adicionais fora do ponto quadrado em diferentes direções, correspondendo às voltas e movimentos necessários para seguir o caminho

  • Peça ao seu Clawbot para conduzir num quadrado.
  • Antes de cada turno, a garra deve ser aberta e fechada, e o braço deve ser levantado e abaixado.
  • O Clawbot não pode dirigir ao longo de um lado da praça mais de uma vez.
  • Você pode usar o projeto RepeatingActions de cima como ponto de partida, mas salvá-lo como SquaredLoops  antes de fazer qualquer alteração.

Imagem que mostra o nome do projeto Squared Loops na barra de ferramentas no VEXcode V5

No seu caderno de engenharia, planeie o seguinte:

  • Planeie a sua solução e preveja o que cada instrução no seu projeto fará com o Clawbot.
  • Baixe e execute o seu projeto para testá-lo antes de enviá-lo.
  • Faça alterações no projeto conforme necessário e anote o que foi alterado durante o teste.

Ícone da Caixa de Ferramentas do Professor Caixa de Ferramentas do Professor - Solução

A seguir, uma possível solução para o Desafio dos Ciclos Quadrados:

# Importações
de biblioteca da importação Vex *

# Início do código do projeto
para repeat_count no intervalo(4
    ): drivetrain.drive_for (FORWARD, 300,
    MM) claw_motor.spin_for (REVERSE, 70,
    DEGREES) arm_motor.spin_for (FORWARD, 360, DEGREES
    ) claw_motor.spin_for (FORWARD, 70, DEGREES
    ) arm_motor.spin_for (REVERSE, 360, DEGREES
    ) drivetrain.turn_for (RIGHT, 90, DEGREES)
    aguarde(5, MSEC)

Pode fornecer aos alunos uma rubrica de programação para pontuar os seus projetos. Os cadernos de engenharia dos
alunos podem ser mantidos e pontuados individualmente ou em equipe.