BLOCO LOOP
O bloco loop (loop block), que pertence a uma categoria de blocos de programação
chamados blocos de fluxo (flow blocks), repete uma série de blocos até uma condição
especificada ser satisfeita, como por exemplo, um sensor ser activado.
Este é um dos blocos que permite alterar o fluxo de controlo mudando a ordem de
execução dos blocos num feixe de sequência. Posicione os blocos que pretende que sejam
repetidos no feixe de sequência dentro do bloco loop. Na figura 1 o bloco loop está com a sua
configuração por defeito na qual ele repete os blocos para sempre e na figura 2 está
configurado para repetir até um sensor ser activado. Neste caso, o símbolo do sensor
aparecerá do lado direito do bloco loop, “colado” a ele.
Figura 1 – Bloco loop
(repetir para sempre)
Figura 2 – Bloco loop (repetir até o
sensor de toque ser activado)
O bloco loop pode ser configurado para 5 formas de controlar o limite da repetição:
para sempre, até um sensor ser activado, durante um certo tempo, durante um número
específico de vezes ou até receber um determinado valor lógico (através de um data wire).
PARÂMETROS DO BLOCO LOOP
REPETIR PARA SEMPRE
Figura 3 – Painel de parâmetros do bloco loop (repetir para sempre)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
REPETIR ATÉ UM SENSOR (SENSOR DE TOQUE)
No caso dos blocos loop que repetem até uma condição de um sensor ser satisfeita, a
feedback box (lado inferior esquerdo) ajuda a testar as condições que se aguarda. Por
exemplo, no sensor de toque, quando o butão é premido o número na caixa fica a 1. Quando
este não é premido, o número fica a zero, como se verifica na Figura 4.
Figura 4 - Painel de parâmetros do bloco loop (sensor de toque)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Sensor (Sensor):
Neste parâmetro é escolhido o sensor a utilizar que neste caso é o sensor de toque
(touch sensor).
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
Porta (Port):
Especifique qual é a porta de entrada (input port) que o sensor de toque está a usar no
NXT.
Acção (Action):
Especifique qual é a condição a testar: se o sensor de toque é premido (pressed), solto
(released) ou se é “tocado” (bumped).
REPETIR ATÉ UM SENSOR (SENSOR DE LUZ)
Figura 5 – Painel de parâmetros para o bloco loop (sensor de luz)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Sensor (Sensor):
Neste parâmetro é escolhido o sensor a utilizar que neste caso é o sensor de luz (light
sensor).
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
Porta (Port):
Especifique qual é a porta de entrada (input port) que o sensor de luz está a usar no
NXT.
Até (Until):
Especifique qual é a condição a testar. Através do elevador horizontal ou da caixa de
texto no canto inferior direito deste parâmetro, defina a intensidade da luz desejada. Através
dos botões do lado esquerdo e direito do elevador horizontal ou do menu por baixo do mesmo
escolha se deseja repetir até a intensidade de luz ser menor ou maior que a especifique.
Função (Function):
Especifique se o robô deve gerar luz ou não.
REPETIR ATÉ UM SENSOR (SENSOR DE SOM)
Figura 6 – Painel de parâmetros para o bloco loop (som)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Sensor (Sensor):
Neste parâmetro é escolhido o sensor a utilizar que neste caso é o sensor de som
(sound sensor).
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
Porta (Port):
Especifique qual é a porta de entrada (input port) que o sensor de som está a usar no
NXT.
Até (Until):
Especifique qual é a condição a testar. Através do elevador horizontal ou da caixa de
texto no canto inferior direito deste parâmetro, defina a intensidade do som (volume)
desejada. Através dos botões do lado esquerdo e direito do elevador horizontal ou do menu
por baixo do mesmo escolha se deseja repetir até a intensidade do som ser menor ou maior
que a especificada.
REPETIR ATÉ UM SENSOR (SENSOR ULTRA-SÓNICO)
Figura 7 – Painel de parâmetros para o bloco loop (sensor ultra-sónico)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Sensor (Sensor):
Neste parâmetro é escolhido o sensor a utilizar que neste caso é o sensor ultra-sónico
(ultrasonic sensor).
Mostrar (Show – lado esquerdo):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
Porta (Port):
Especifique qual é a porta de entrada (input port) que o sensor ultra-sónico está a usar
no NXT.
Até (Until):
Especifique qual é a condição a testar. Através do elevador horizontal ou da caixa de
texto no canto inferior direito deste parâmetro, defina a distância desejada. Através dos
botões do lado esquerdo e direito do elevador horizontal ou do menu por baixo do mesmo
escolha se deseja repetir até a distância ser menor ou maior que a especificada.
Mostrar (Show – lado direito):
Seleccione se quer ler o valor em centímetros ou em polegadas.
REPETIR ATÉ UM SENSOR (BOTÕES DO NXT)
Figura 8 – Painel de parâmetros para o bloco loop (botões do NXT)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Sensor (Sensor):
Neste parâmetro é escolhido o sensor a utilizar que neste caso são os botões do NXT
(NXT buttons).
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
Botão (Button):
Neste parâmetro é escolhido o botão do NXT que enviará um sinal “true” quando
activado e fará com que o programa continue.
Acção (Action):
Especifique qual é a condição a testar: se o botão é premido (pressed), solto (released)
ou se é “tocado” (bumped).
REPETIR ATÉ UM SENSOR (RECEIVE MESSAGE)
Figura 9 – Painel de parâmetros para o bloco loop (Receive Message)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Sensor (Sensor):
Neste parâmetro é escolhido o sensor a utilizar que neste caso é o bluetooth do NXT
receber uma mensagem (receive message).
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
Mensagem (Message):
Para comparar a mensagem recebida com uma mensagem de teste, tanto se pode
escrever o texto ou o número (se foi escolhido texto ou número como formato) como usar os
botões para escolher o valor lógico do teste (verdadeiro ou falso).
Caixa de correio (Mailbox):
Escolha o número da caixa de correio para o qual a mensagem vai chegar.
REPETIR ATÉ UM SENSOR (ROTATION SENSOR)
Figura 10 – Painel de parâmetros para o bloco loop (Rotation Sensor)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Sensor (Sensor):
Neste parâmetro é escolhido o sensor a utilizar que neste caso é o sensor de rotações
dos motores (rotation sensor).
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
Porta (Port):
Especifique qual é a porta a que o motor a ser testado está conectado.
Acção (Action):
Especifique se quer ler o sensor ou fazer reset (pôr a zero) ao mesmo.
Até (Until):
Use os botões para escolher qual a direcção desejada: frente ou trás. Através do menu
no canto inferior direito escolha se deseja contar em rotações ou graus e na caixa de texto do
lado esquerdo do menu indique quantas rotações (ou graus) deve repetir o programa até sair
do bloco loop.
REPETIR ATÉ UM SENSOR (TIMER)
Figura 11 – Painel de parâmetros para o bloco loop (Timer)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Sensor (Sensor):
Neste parâmetro é escolhido o sensor a utilizar que neste caso é temporizador (timer).
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
Temporizador (Timer):
Especifique qual o temporizador interno do NXT a utilizar. O programa vai progredir
assim que o temporizador escolhido chegar a um certo valor temporal.
Acção (Action):
Especifique se quer ler o sensor ou fazer reset (pôr a zero) ao mesmo.
Até (Until):
Insira o valor (em segundos) que fará com que o bloco loop termine e deixe o
programa progredir na caixa de texto. Pode-se utilizar o menu para fazer subir ou descer o
valor temporal contido no temporizador.
REPETIR DURANTE UM CERTO TEMPO
Figura 12 – Painel de parâmetros do bloco loop (repetir durante um certo tempo)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Até (Until):
Especifique o número de segundos que o bloco loop deve aguardar até parar de
repetir o feixe de sequência nele contido.
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
REPETIR UM NÚMERO ESPECÍFICO DE VEZES
Figura 13 – Painel de parâmetros do bloco loop (repetir um número específico de vezes)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Até (Until):
Especifique o número de vezes que o bloco loop deve repetir o feixe de sequência nele
contido.
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
REPETIR ATÉ RECEBER UM DETERMINADO VALOR LÓGICO
Figura 14 – Painel de parâmetros do bloco loop (repetir até receber um valor lógico)
Controlo (Control):
Este campo serve para especificar até quando o bloco deve repetir o feixe de
sequência que contém, ou seja, qual a condição de paragem.
Até (Until):
Especifique se o valor lógico desejado é verdadeiro (true) ou falso (false).
Mostrar (Show):
Especifique se deseja utilizar o número de repetições como input para outro bloco.
EXEMPLO DE UM BLOCO LOOP
Na figura 15 está um exemplo da utilização de um bloco loop num programa e a sua
respectiva configuração. Neste caso, ele repetirá um bloco move, um bloco sound e um bloco
display cinco vezes.
Figura 15 – Exemplo de um bloco loop (repetir um número específico de vezes)
Download

BLOCO LOOP