Capítulo 20: Projeto Integrador Final (FastLog Yard Master Enterprise)

🎯 Objetivo da Aula

Chegou o grande momento da sua formação em Lógica de Programação e Pensamento Computacional. Ao longo dos 19 capítulos anteriores, você aprendeu cada engrenagem isolada: variáveis, listas, decisões, laços, funções customizadas e mensagens. Neste capítulo final, você atuará como Arquiteto de Software e Engenheiro de Simulação, integrando todas essas peças para construir o FastLog Yard Master Enterprise: o simulador corporativo oficial de gerenciamento de pátio e docas.

Ao final desta aula, você será capaz de:

  1. Arquitetar uma aplicação visual de grande porte no Scratch 3.0.
  2. Integrar múltiplos atores autônomos comunicando-se via mensagens assíncronas (Broadcasting).
  3. Gerenciar estados operacionais através de Listas e Variáveis Globais de KPI.
  4. Executar rotinas de pesagem, auditoria de segurança, abertura de cancelas e atracamento em docas.
  5. Apresentar um projeto funcional homologado com padrões da indústria.

Por que este capítulo não tem “Fundamentos”, “Checkpoint” nem “Desafio de Fixação”?
Por ser o Projeto Integrador Final, a estrutura deste capítulo é diferente dos demais de propósito: essas seções são substituídas por 🧠 Arquitetura do Projeto, 📖 Código-Fonte Completo, 🎯 Roteiros Customizados por Área de Formação e 🎓 Conclusão da Trilha. Não é uma omissão editorial — é o mesmo padrão de fechamento usado nos capítulos 20 de Portugol e VisuAlg, os outros cursos desta formação cujo Projeto Final também dispensa Checkpoint e Desafio de Fixação próprios.

📥 Material de Apoio e Roteiro de Blocos:


🏢 O Cenário Prático (O Grande Desafio Integrador)

Situação: A diretoria de operações da FastLog aprovou o orçamento para a criação do gêmeo digital (Digital Twin) de seu novo Centro de Distribuição Inteligente. O sistema deve executar o seguinte ciclo operacional completo:

graph TD
    A["1. Chegada na Portaria<br/>(Motorista digita Nome, Placa e Peso)"] --> B["2. Registro de Auditoria<br/>(Adiciona dados na Registro_Presenca)"]
    B --> C["3. Pesagem e Triagem Automática<br/>(Peso > 2000kg ? Doca Pesada : Doca Leve)"]
    C --> D["4. Liberação Mecânica<br/>(Transmite ABRIR_CANCELA e Semáforo Verde)"]
    D --> E["5. Navegação por Coordenadas<br/>(Caminhão desliza até a doca designada)"]
    E --> F["6. Descarga e Atualização de KPIs<br/>(Doca toca som, pisca luz e soma estoque)"]
    F --> G["7. Conclusão da Operação<br/>(Cancela fecha e pátio pronto para o próximo)"]
    
    style A fill:#2980b9,stroke:#fff,stroke-width:2px,color:#fff
    style B fill:#e67e22,stroke:#fff,stroke-width:2px,color:#fff
    style C fill:#f39c12,stroke:#fff,stroke-width:2px,color:#fff
    style D fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff
    style E fill:#3498db,stroke:#fff,stroke-width:2px,color:#fff
    style F fill:#8e44ad,stroke:#fff,stroke-width:2px,color:#fff
    style G fill:#2c3e50,stroke:#fff,stroke-width:2px,color:#fff

🧠 Arquitetura do Projeto: Atores e Dados

1. Entidades do Sistema (Atores no Palco)

  1. Caminhao_FastLog: O agente de transporte móvel.
  2. Guarita_Portaria: O terminal de autoatendimento (captura de dados).
  3. Cancela_Acesso: O atuador mecânico de segurança física.
  4. Semaforo_Entrada: O indicador visual de tráfego (Vermelho/Verde).
  5. Doca_A_Leve: Estação de descarregamento para cargas até 2.000 kg ($X: 180, Y: 100$).
  6. Doca_B_Pesada: Estação de descarregamento para cargas acima de 2.000 kg ($X: 180, Y: -40$).

2. Dicionário de Variáveis e Listas Globais

  • 🔴 Listas: [Registro_Presenca] (Histórico de motoristas atendidos).
  • 🔴 Variáveis:
    • Nome_Motorista: Nome capturado no totem.
    • Peso_Carga: Peso registrado na pesagem.
    • Doca_Destino: Texto indicando se vai para "Doca A (Leve)" ou "Doca B (Pesada)".
    • Estoque_Atual: Saldo acumulado do armazém.

Antes de montar os scripts abaixo, crie no painel Variáveis do Scratch: a lista Registro_Presenca (botão Criar uma Lista) e as 4 variáveis Nome_Motorista, Peso_Carga, Doca_Destino e Estoque_Atual (botão Criar uma Variável, todas marcadas como Para todos os atores, já que são globais e compartilhadas entre Guarita_Portaria, Caminhao_FastLog e as docas).


📖 O Código-Fonte Completo dos Atores do Simulador

Abaixo está a especificação completa de todos os blocos necessários para montar o simulador no Scratch 3.0:

1. Código do Ator: Guarita_Portaria (Totem)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
quando clicar em 🏁
apague todos de [Registro_Presenca v]
mude [Estoque_Atual v] para (100)
vá para x: (-180) y: (-80)
diga [Terminal FastLog Yard Master Online!] por (2) segundos

// Inicia o ciclo de recepção
pergunte [Digite o Nome do Motorista:] e espere
mude [Nome_Motorista v] para (resposta)
adicione (Nome_Motorista) a [Registro_Presenca v]

pergunte [Digite o Peso da Carga em kg:] e espere
mude [Peso_Carga v] para (resposta)

// Classificação da Doca de Destino
se <(Peso_Carga) > (2000)> então
    mude [Doca_Destino v] para [Doca B (Pesada)]
    diga [CARGA PESADA: Direcionado para DOCA B!] por (2.5) segundos
senão
    mude [Doca_Destino v] para [Doca A (Leve)]
    diga [CARGA LEVE: Direcionado para DOCA A!] por (2.5) segundos
fim

// Autoriza a abertura da cancela
transmita [ABRIR_CANCELA v] e espere
transmita [INICIAR_TRAJETO v]

2. Código do Ator: Cancela_Acesso

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
quando clicar em 🏁
mude para a fantasia [Fechada v]
vá para x: (-80) y: (-80)

quando eu receber [ABRIR_CANCELA v]
toque o som [Door Creak v]
mude para a fantasia [Aberta v]
espere (1) segundos // Aguarda abertura física

quando eu receber [FECHAR_CANCELA v]
espere (0.5) segundos
mude para a fantasia [Fechada v]
toque o som [Door Slam v]

3. Código do Ator: Semaforo_Entrada

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
quando clicar em 🏁
mude para a fantasia [Vermelho v]
vá para x: (-80) y: (-20)

quando eu receber [ABRIR_CANCELA v]
espere (0.5) segundos
mude para a fantasia [Verde v]

quando eu receber [FECHAR_CANCELA v]
mude para a fantasia [Vermelho v]

4. Código do Ator: Caminhao_FastLog

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
quando clicar em 🏁
fixe o estilo de rotação para [esquerda-direita v]
vá para x: (-230) y: (-80)
aponte para a direção (90)

quando eu receber [INICIAR_TRAJETO v]
// Cruza a portaria
deslize por (2) segs até x: (-20) y: (-80)
transmita [FECHAR_CANCELA v] // Manda fechar o portão atrás dele

// Curva e desvio com base na Doca Selecionada
se <(Doca_Destino) = [Doca B (Pesada)]> então
    diga [Navegando para Doca B (Pesada)...] por (1.5) segundos
    deslize por (2) segs até x: (140) y: (-40)
    transmita [CHEGOU_DOCA_B v]
senão
    diga [Navegando para Doca A (Leve)...] por (1.5) segundos
    deslize por (1.5) segs até x: (-20) y: (100)
    deslize por (2) segs até x: (140) y: (100)
    transmita [CHEGOU_DOCA_A v]
fim

toque o som [Car Brake v] até o fim
diga [Atracado com sucesso na doca de descarregamento!] por (3) segundos

5. Código dos Atores das Docas (Doca_A_Leve e Doca_B_Pesada)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
[Ator: Doca_A_Leve]
quando clicar em 🏁
vá para x: (180) y: (100)

quando eu receber [CHEGOU_DOCA_A v]
mude o efeito [brilho v] para (40)
toque o som [Bell v] até o fim
adicione (20) a [Estoque_Atual v]
diga [DOCA A: 20 paletes recebidos! Estoque atualizado.] por (3) segundos
limpe os efeitos gráficos

[Ator: Doca_B_Pesada]
quando clicar em 🏁
vá para x: (180) y: (-40)

quando eu receber [CHEGOU_DOCA_B v]
mude o efeito [brilho v] para (40)
toque o som [Tada v] até o fim
adicione (50) a [Estoque_Atual v]
diga [DOCA B: 50 paletes pesados recebidos! Estoque atualizado.] por (3) segundos
limpe os efeitos gráficos

🎯 Roteiros Customizados por Área de Formação

Escolha o módulo de aprofundamento alinhado ao seu perfil profissional:

💻 Roteiro TI (Sistemas, Arquitetura e Clean Code)

  • Encapsule os cálculos de pesagem dentro de Meus Blocos.
  • Crie um botão de reset total que reinicialize todos os atores sem precisar recarregar o navegador.
  • Documente o projeto adicionando notas explicativas com o botão direito nos scripts.

💼 Roteiro ADM (Gestão de Processos e KPIs)

  • Adicione o cálculo da taxa de movimentação: cada palete descarregado rende R$ 15,00.
  • Crie a variável Faturamento_Total_Dia e exiba o balanço financeiro acumulado.
  • Emita um relatório no palco ao final de cada atendimento.

🚛 Roteiro LOG (Operações de Pátio e Supply Chain)

  • Adicione um cronômetro que registre o tempo de ciclo (Lead Time) desde a entrada até a doca.
  • Se o tempo for superior a 15 segundos, emita um alerta de gargalo operacional no pátio (Demurrage).
  • Adicione um caminhão na fila de espera aguardando a doca ser liberada.

📤 Instruções de Entrega (Microsoft Teams)

  1. No menu superior do Scratch, clique em Arquivo ➔ Baixar para seu computador.
  2. Salve o arquivo oficial com o nome: PROJETO_FINAL_SeuNome_SeuSobrenome.sb3.
  3. Abra a tarefa “Scratch Cap 20 - Projeto Integrador Final” no Microsoft Teams.
  4. Anexe o arquivo .sb3 e envie um print legível do palco em plena execução.
  5. Clique em Entregar (Turn In).

🎓 Conclusão da Trilha de Scratch 3.0

Parabéns! Você completou com excelência os 20 capítulos da formação em Lógica de Programação Visual com Scratch 3.0.

Agora que você dominou a arquitetura orientada a eventos, as tomadas de decisão booleanas, os laços de repetição, as coleções em listas e as funções modulares, você possui todos os alicerces fundamentais do Pensamento Computacional.

Você está 100% preparado para dar o próximo passo rumo a linguagens baseadas em texto puro:


📥 Download do Roteiro Completo desta Aula:
Baixe o arquivo consolidado Capitulo_20.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.

  1. Qual é o nome do simulador corporativo integrador construído neste capítulo final?
  2. Segundo o Cenário Prático, qual é o peso de corte (em kg) que determina se a carga é direcionada para a Doca Pesada ou para a Doca Leve?
  3. Segundo a Arquitetura do Projeto, quais são os nomes dos 6 atores (entidades) que compõem o sistema do simulador?
  4. Qual é o nome da lista global usada para armazenar o histórico de motoristas atendidos?
  5. Quais são os nomes das quatro variáveis globais listadas no Dicionário de Variáveis e Listas?
  6. No código do ator Guarita_Portaria, quais dois dados são solicitados ao motorista através do bloco pergunte?
  7. No código do ator Caminhao_FastLog, qual mensagem ele transmite logo depois de cruzar a portaria, e com qual finalidade?
  8. Quantos paletes são somados à variável Estoque_Atual quando a carga chega na Doca A (Leve), e quantos quando chega na Doca B (Pesada)?
  9. No Roteiro de aprofundamento LOG (Operações de Pátio e Supply Chain), qual tempo de ciclo (em segundos) é definido como limite antes de emitir um alerta de gargalo operacional (Demurrage)?
  10. Segundo a Conclusão da Trilha de Scratch 3.0, quais são os três cursos sugeridos como próximo passo após esta formação?