Capítulo 09: Repita Para Sempre (Loops Contínuos e Automação)
🎯 Objetivo da Aula
Em um centro de distribuição moderno, muitos processos nunca param: a esteira de triagem de caixas roda sem cessar, os sensores de presença monitoram a portaria 24 horas por dia e os servidores de rastreamento via satélite escutam sinais continuamente. No Scratch, executamos rotinas contínuas através do laço sempre.
Ao final desta aula, você será capaz de:
- Compreender o funcionamento do laço infinito através do bloco 🟠
sempre. - Compreender a arquitetura de um Laço de Execução Contínuo (Game Loop / Event Loop).
- Dominar o controle de cadência operacional utilizando o bloco 🟠
espere [segundos]. - Construir uma Esteira Automatizada de Descarregamento de Cargas da FastLog.
📥 Material de Apoio e Roteiro de Blocos:
- 📄 Roteiro Estruturado (.txt): Baixar Capitulo_09.txt (guia textual com a sequência de blocos)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_09.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: O setor de expedição da FastLog instalou uma esteira rolante automatizada que transporta caixas da área de triagem até a caçamba dos caminhões. A caixa deve:
- Nascer no lado esquerdo da esteira ($x: -220$).
- Deslizar continuamente para a direita até o ponto de coleta ($x: 220$).
- Ao atingir a ponta, emitir um som de descarregamento, incrementar o placar de caixas despachadas e reaparecer instantaneamente no início da esteira para recomeçar o ciclo.
Missão: Programar o comportamento ininterrupto da esteira no Scratch, criando um fluxo operacional contínuo.
🧠 Fundamentos: Como Funciona o Laço sempre?
1. A Estrutura do Bloco sempre
O bloco 🟠 sempre possui formato de “boca” com uma seta curva na parte inferior. Ele não possui encaixe na parte de baixo, pois nada que for colocado abaixo dele seria executado: uma vez dentro do sempre, o Scratch repete os comandos eternamente até que a bandeira vermelha seja clicada ou o bloco pare [tudo] seja disparado.
graph TD
A["Gatilho: quando clicar em 🏁"] --> B["Entra no Bloco SEMPRE"]
B --> C["Posiciona Caixa no início: vá para x: -220 y: -60"]
C --> D["Desliza até o final: x: 220 y: -60 (2 segs)"]
D --> E["Incrementa Placar: adicione 1 a Caixas_Despachadas"]
E --> F["Volta para o topo do laço SEMPRE"]
F --> C
style A fill:#f39c12,stroke:#fff,color:#fff
style B fill:#e67e22,stroke:#fff,color:#fff
style D fill:#3498db,stroke:#fff,color:#fff
style E fill:#27ae60,stroke:#fff,color:#fff2. A Importância Crítica da Cadência (espere)
O Perigo do Loop sem Pausa:
Se você criar um laço sempre apenas com blocos matemáticos ou movimentação sem nenhum intervalo de tempo, o Scratch tentará rodar o código milhares de vezes por segundo. Isso pode causar congelamento do navegador e superaquecimento da CPU!
Regra de Ouro: Sempre utilize um pequeno intervalo como espere (0.05) segundos ou use blocos de interpolação temporal como deslize por (N) segs.
📖 Exemplo Guiado: Esteira Transportadora Automatizada
Passo a Passo no Scratch 3.0:
- Crie a variável global:
Caixas_Despachadas. - Adicione o ator
Caixa_Papelao(ou escolha o ator “Gift” ou “Box”). - No código da caixa, monte o script contínuo:
🛠️ Prática Obrigatória 1: Luz de Sinalização de Tráfego Intermitente
O Desafio:
Crie uma luz amarela de atenção para a saída de veículos do pátio:
- Crie o ator
Luz_Alertacom duas fantasias:Apagada(cinza) eAcesa(amarelo brilhante). - Dentro de um laço
sempre:- Mude para a fantasia
Acesa. - Espere
0.6segundos. - Mude para a fantasia
Apagada. - Espere
0.6segundos.
- Mude para a fantasia
- Teste o pisca-pisca de segurança contínuo!
🛠️ Prática Obrigatória 2: Monitor Contínuo de Sensor de Presença
O Desafio:
Crie um sensor que vigia a aproximação de caminhões:
- Crie o ator
Cancelae o atorCaminhao. - No código da
Cancela, utilize um laçosemprecontendo um testese então senão:se <tocando em [Caminhao]?> então:- Mude para a fantasia
Abertae diga[Passagem Liberada].
- Mude para a fantasia
senão:- Mude para a fantasia
Fechada.
- Mude para a fantasia
- Arraste o caminhão pelo palco com o mouse para ver a cancela reagindo em tempo real!
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo do projeto com o nome:
Atividade_09_SeuNome_SeuSobrenome.sb3. - Teste o funcionamento contínuo da esteira por pelo menos 10 caixas.
- No Microsoft Teams, envie na tarefa “Scratch Cap 09 - Laços Contínuos”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar o conceito de Serviços em Segundo Plano (Daemons / Workers) e Loop de Mensagens. Em servidores Linux, sistemas de mensageria (como RabbitMQ e Apache Kafka) e sistemas operacionais de fábrica rodam exatamente dentro de laços infinitos como este, aguardando novas mensagens de processo.
🔥 Desafio de Fixação: Animação com Efeito de Giro da Esteira
Adicione um ator simulando os roletes da esteira. Faça os roletes girarem continuamente dentro de um bloco sempre usando o bloco 🔵 gire para a direita (15) graus com espere (0.05) segundos para criar a ilusão de rolamento contínuo.
🔑 Gabarito de Código (Blocos do Scratch)
Prática 1:
Prática 2:
Desafio:
📥 Download do Roteiro Completo desta Aula:
Baixe o arquivo consolidado Capitulo_09.txt ou o pacote compactado (.zip) com os scripts e desafios da aula.
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.
- Por que o bloco
semprenão possui encaixe na parte de baixo? - O que pode acontecer se você criar um laço
sempresem nenhum intervalo de tempo (espere)? - Quais são as duas formas de interromper um laço
sempre, segundo o capítulo? - No Exemplo Guiado, qual é o nome da variável global que conta as caixas despachadas pela esteira?
- No Exemplo Guiado, qual bloco é usado para deslizar a caixa da posição inicial até a posição final ao longo de 2,5 segundos?
- Na Prática Obrigatória 1, quais são os nomes das duas fantasias do ator Luz_Alerta?
- Na Prática Obrigatória 2, que estrutura condicional é combinada dentro do laço
semprepara verificar se a Cancela está tocando o Caminhao? - Segundo o Checkpoint, que sistemas de mensageria reais foram citados como exemplo de uso de laços infinitos?
- Qual é a “Regra de Ouro” sugerida no capítulo para evitar o “Perigo do Loop sem Pausa”?
- Na Prática Obrigatória 1, quanto tempo (em segundos) o ator Luz_Alerta espera em cada fantasia antes de trocar para a outra?