top of page

SP-103

SPIKE Prime

Image-empty-state.png

60-90 min

Item 1

Intermediário

Movimentos Infinitos

Observe que esta lição é baseada no código Python usado no aplicativo LEGO ® Education SPIKE ™ Legacy.
Criar um programa com loops infinitos

Aula criada por:

LEGO® Education

Suporte ao Professor

Objetivos da Aula

Os alunos irão:
• Programar loops infinitos.
• Crie um modelo que inclua um sensor de força que fornecerá uma condição para o robô se mover.

Preparar

• Certifique-se de que os hubs SPIKE Prime estejam carregados, especialmente se estiverem conectados por Bluetooth.
• Certifique-se de que os alunos construíram o modelo Coach, que foi usado na aula Dance Loop com Coach.

Material do Aluno

---------------

Image-empty-state.png

Envolver

( Discussão em grupo, 10 minutos )

Envolva os alunos em uma conversa sobre como definir as condições.

Peça aos alunos que pensem em exemplos de quando eles precisam atender a certas condições. Exemplos fáceis podem incluir decidir comer apenas quando estiver com fome ou limpar o quarto apenas quando alguém mandar. Peça aos alunos que citem as condições em cada caso.

Em seguida, desafie os alunos a encontrar um exemplo de um momento em que uma condição é sempre verdadeira. Os alunos devem debater ideias de uma condição que poderia ser definida e que não deixaria de ser verdadeira (nenhuma falsa para a condição). Um exemplo pode incluir o nascer do sol todos os dias. Peça aos alunos que escrevam uma declaração que define o nascer do sol como uma condição. Exemplo: Se o sol nascer, verei a luz lá fora. Isso é verdade todos os dias porque o sol nasce todos os dias.

Explique aos alunos que um loop com uma condição sempre verdadeira é um loop infinito. Loops infinitos são loops while que nunca podem se tornar falsos.

 

Perguntas para investigar

• Como você pode criar loops onde as condições sempre são verdadeiras?

--

Image-empty-state.png

Explorar

( Pequenos Grupos, 45 minutos )

Os alunos explorarão a programação do modelo Coach para se mover usando um loop infinito.

Oriente os alunos a abrir um novo projeto na tela de programação Python. Peça aos alunos para apagar qualquer código que já esteja na área de programação. Os alunos devem conectar seu hub.

Explique aos alunos que o treinador quer nos levar em uma longa caminhada agora que estamos todos aquecidos. Discuta com os alunos como podemos incluir um loop para mover o modelo Coach usando um loop while que define uma condição para o movimento, mas a condição é criada de forma que seja sempre verdadeira (não pode ser falsa).

Peça aos alunos que revisem seu programa da lição Setting Condition for Yoga. Peça aos alunos que pensem em maneiras de definir as condições para que o loop while seja sempre verdadeiro e, portanto, não termine.

Exemplo de programa de Setting Condition for Yoga:

 

from spike import Motor
\# initialize motors and sensor. Set variable names
motor_b=Motor('B')
motor_f=Motor('F')
count = 2

\# run motors when count less than 5 
while count < 5:
    motor_f.run_for_seconds(0.3, 40)
    motor_b.run_for_seconds(0.3, 40)
    motor_f.run_for_seconds(0.3, -40)
    motor_b.run_for_seconds(0.3, -40)
    count=count+1

 

Dê tempo aos alunos para tentar várias ideias diferentes para garantir que a condição seja sempre verdadeira. As soluções de amostra incluem definir a contagem como 1 e a contagem while como maior que 0. Este programa continuará a ser executado continuamente porque a condição continuará sendo verdadeira.
Lembre os alunos de observar o console em busca de erros durante a investigação.

Enquanto verdadeiro
Apresente uma nova linha de código aos alunos que lhes permitirá atingir o objetivo de criar uma condição para o loop que seja sempre verdadeira (não pode se tornar falsa).

Compartilhe esta linha de código com os alunos e pergunte a que lugar eles acham que ela pertence no programa que acabaram de criar (o que ela deve substituir).

Peça aos alunos que alterem seu programa para incluir a linha de código while True, que permitirá que o programa execute um loop infinito.

Exemplo de programa:

 

from spike import Motor
\# initialize motors and sensor. Set variable names
motor_b=Motor('B')
motor_f=Motor('F')

\# run motors when count less than 5
while True:
motor_f.run_for_seconds(0.3, 40)
motor_b.run_for_seconds(0.3, 40)
motor_f.run_for_seconds(0.3, -40)
motor_b.run_for_seconds(0.3, -40)

--

Image-empty-state.png

Explicar

( Grupo inteiro, 10 minutos )

Discuta com os alunos como o programa funcionou.
Faça perguntas aos alunos como:
• O que foi difícil neste desafio?
• Como esse loop é diferente de um loop while?
• Quando você pode querer usar um loop infinito?

--

Image-empty-state.png

Elaborar

( Pequenos Grupos, 15 minutos )

Desafie os alunos a adicionar um sensor de força ao modelo Coach.
Peça aos alunos para adicionar um sensor de força ao modelo, conectando o sensor na porta D. Os alunos não precisam conectar o sensor de força ao modelo.

Com o sensor conectado, peça aos alunos que atualizem seus programas para incluir o uso de um sensor no loop. O loop deve continuar sendo sempre verdadeiro, mas também incluir o uso de um sensor de força.

Exemplo de programa:

 

from spike import Motor, ForceSensor
from spike.control import wait_for_seconds

# initialize motors and sensor. Set variable names
motor_b=Motor('B')
motor_f=Motor('F')
force_sensor=ForceSensor('D')
# run motors when count less than 5
While True:
force_sensor.wait_until_pressed()
motor_f.run_for_seconds(0.5, 40)
wait_for_seconds(1)
motor_f.run_for_seconds(0.5, -40)

 

Dê tempo aos alunos para testar e modificar seu programa. Lembre os alunos de observar o console em busca de mensagens de erro.

Permite que os alunos compartilhem seus programas. Discuta as diferentes abordagens em grupo.

--

Avaliar

( Exercício em grupo, 10 minutos )

Observação do Professor:
Discuta o programa com os alunos.
Faça perguntas aos alunos como:
• O que transforma um loop while em um loop infinito?
• Qual é a coisa mais importante a ser lembrada ao criar um loop infinito?
• Como os sensores podem ser incluídos no uso de loops?

Autoavaliação:
Peça aos alunos que respondam o seguinte em seus diários:
• O que você aprendeu hoje sobre o uso de loops infinitos?
• Que características de um bom companheiro de equipe eu demonstrei hoje?
• Peça aos alunos para avaliarem a si mesmos em uma escala de 1 a 3, em sua gestão de tempo hoje.
• Peça ao aluno para avaliar a si mesmo em uma escala de 1 a 3, em seu gerenciamento de materiais (peças) hoje.

--

Dicas para o professor

Diferenciar

bottom of page