Capítulo 05: Condicionais Simples (O Bloco 'Se Então' e Sensores)
🎯 Objetivo da Aula
Até o momento, todos os nossos programas executavam comandos cegamente em linha reta. No entanto, o verdadeiro poder da computação surge quando o sistema ganha a capacidade de Tomar Decisões: avaliar uma condição e decidir se deve ou não executar uma ação.
Ao final desta aula, você será capaz de:
- Compreender o funcionamento do desvio condicional simples com o bloco 🟠
se <condição> então. - Utilizar operadores de comparação hexagonais verdes:
( ) > ( ),( ) < ( )e( ) = ( ). - Integrar Sensores Físicos da categoria 🔷 Sensores, como
<tocando em [ator]?>e<tocando na cor [#]?>. - Construir uma Cancela Automática com Sensor de Aproximação.
📥 Material de Apoio e Roteiro de Blocos:
- 📄 Roteiro Estruturado (.txt): Baixar Capitulo_05.txt (guia textual com a sequência de blocos)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_05.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: No pátio de manobras da FastLog, os caminhões precisam estacionar em frente à guarita de segurança. Se o motorista se aproximar demais da cancela fechada, o sistema deve acionar o freio de segurança e emitir um aviso sonoro no painel da portaria para evitar colisões.
Missão: Programar o caminhão e o sensor da cancela para monitorar a distância física e frear o veículo caso a condição de segurança seja violada.
🧠 Fundamentos: Como o Scratch Toma Decisões?
1. A Estrutura do Bloco se então
O bloco 🟠 se então possui um encaixe hexagonal (com pontas angulares). Dentro desse encaixe, só é permitido inserir blocos hexagonais, que retornam sempre um valor booleano: Verdadeiro (True) ou Falso (False).
graph TD
A["Início do Script"] --> B{"Condição Hexagonal:<br/>Distância < 50 ou Tocando na Cancela?"}
B -- "VERDADEIRO" --> C["Executa os Blocos Internos<br/>(Frear caminhão e tocar buzina)"]
B -- "FALSO" --> D["Ignora e pula os blocos internos"]
C --> E["Continua o fluxo do programa"]
D --> E
style B fill:#f39c12,stroke:#fff,stroke-width:2px,color:#fff
style C fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff
style D fill:#c0392b,stroke:#fff,stroke-width:2px,color:#fff- Se a condição for Verdadeira: O Scratch executa os comandos abrigados dentro da “boca” do bloco
se. - Se a condição for Falsa: O Scratch pula completamente o conteúdo interno e segue em frente.
2. Os Blocos Hexagonais de Comparação (🟢 Operadores)
<(Valor 1) > (Valor 2)>: Retorna verdadeiro se o primeiro valor for estritamente maior.<(Valor 1) < (Valor 2)>: Retorna verdadeiro se o primeiro valor for estritamente menor.<(Valor 1) = (Valor 2)>: Retorna verdadeiro se os dois valores forem exatamente iguais.
3. Sensores Físicos de Pátio (🔷 Sensores)
O Scratch possui sensores visuais poderosos que detectam a interação física entre atores no Palco:
<tocando em [mouse-ponteiro / ator]?>: Detecta se a imagem do ator tocou em outro objeto.<tocando na cor [#]?>: Detecta se o ator encostou em uma cor específica do cenário (ex: uma linha amarela pintada no chão).<distância até [ator]>: Retorna um número com a distância em pixels entre os dois centros dos atores.
📖 Exemplo Guiado: Sensor de Parada na Linha de Retenção
Passo a Passo no Scratch 3.0:
- Posicione o ator
Caminhao_Entregano lado esquerdo do palco ($x: -200, y: 0$). - Crie uma linha vermelha no cenário ou um ator
Linha_Paradana posição $x: 50, y: 0$. - No caminhão, monte o script a seguir:
🛠️ Prática Obrigatória 1: Alerta de Estoque Crítico de Paletes
O Desafio:
Crie um sistema que monitore o saldo do almoxarifado:
- Crie a variável
Estoque_Atual. - Pergunte ao operador:
[Digite a quantidade de paletes restantes:]e salve emEstoque_Atual. - Se
(Estoque_Atual) < (50):- Mude a cor do ator para vermelho:
mude o efeito [cor v] para (0). - Toque um som de alerta:
toque o som [Alert v]. - Exiba a mensagem:
[ALERTA DE SEGURANÇA: Estoque abaixo do limite mínimo de 50 paletes!]por 3 segundos.
- Mude a cor do ator para vermelho:
🛠️ Prática Obrigatória 2: Detector de Veículo Vazio
Crie as variáveis Peso_Bruto e Tara_Caminhao (peso do caminhão sem carga = 3.000 kg).
- Pergunte o peso medido na balança rodoviária e armazene em
Peso_Bruto. - Se
(Peso_Bruto) = (3000):- O ator deve emitir a mensagem:
[AVISO: Veículo registrado sem carga (TARA PURA). Liberado para pátio de espera.]por 3 segundos.
- O ator deve emitir a mensagem:
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo do projeto com o nome:
Atividade_05_SeuNome_SeuSobrenome.sb3. - Teste executando com valores abaixo e acima de 50 para comprovar que o
sesó ativa na condição certa. - No Microsoft Teams, envie na tarefa “Scratch Cap 05 - Condicionais Simples”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar o conceito de Gatilhos Condicionais e Triggers. Em sistemas de Internet das Coisas (IoT) em armazéns modernos (como sensores RFID e leitoras a laser de esteiras), microcontroladores Arduino e ESP32 usam essa exata lógica if (sensor == TRUE) para disparar atuadores mecânicos.
🔥 Desafio de Fixação: Radar de Velocidade do Pátio
No pátio da FastLog, o limite máximo é de 20 km/h.
Pergunte ao operador a velocidade registrada pelo radar do pátio. Se a velocidade for estritamente maior que 20, aplique uma multa de R$ 150,00 e diga: [MULTA: Velocidade acima do limite permitido no pátio!].
🔑 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_05.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.
- Que formato tem o encaixe do bloco
se então, e que tipo de blocos podem ser inseridos nele? - O que acontece com os blocos internos do
se entãoquando a condição é Falsa? - Qual é a diferença entre os operadores de comparação
>,<e=? - Cite os três sensores físicos apresentados na seção “Sensores Físicos de Pátio”.
- No Exemplo Guiado, qual bloco de sensor é usado para detectar se o caminhão tocou o ator Linha_Parada?
- Na Prática Obrigatória 1, qual é o valor limite de Estoque_Atual que dispara o alerta de segurança (menor que quanto)?
- Na Prática Obrigatória 2, qual é o valor (em kg) da Tara_Caminhao usada para verificar se o veículo está vazio?
- Segundo o Checkpoint, que microcontroladores foram citados como exemplo de uso da lógica
if (sensor == TRUE)em sistemas de IoT? - No Exemplo Guiado, quantos passos o caminhão avança antes de o teste de condição ser verificado?
- Na Prática Obrigatória 1, qual bloco é usado para mudar a cor do ator quando o estoque está abaixo do limite?