🚀 CARTA DE ABERTURA DO BIMESTRE
Professor(a), respira. Segura essa caneca de café e se prepara.
Você sobreviveu a três bimestres ensinando sequências, decisões, loops e concorrência. Seus alunos já sabem fazer o micro:bit piscar, apitar e tomar decisões mais rápido que um adulto escolhendo o que comer no self-service. Mas agora? Agora a brincadeira ficou séria.
Este bimestre não é sobre aprender ferramentas. É sobre usar ferramentas para mudar o mundo ou pelo menos para mudar a sala de aula, o corredor, o pátio ou a fila do recreio. Seus alunos vão virar detetives de problemas, arquitetos de soluções e engenheiros de robôs que resolvem questões REAIS da escola.
"Professor, meu robô vai avisar quando alguém esquecer a mochila na cadeira!" "O meu vai tocar uma musiquinha quando a lixeira estiver cheia!" "O meu vai piscar que nem uma boate quando a sala estiver bagunçada!"
E você, professor(a), vai assistir a tudo isso com um sorriso de orgulho estampado na cara. Porque no fundo, você sabe: esses moleques de 9 anos estão aprendendo mais do que programar. Estão aprendendo a olhar para o mundo, identificar problemas e criar soluções com tecnologia. E isso, meu caro, é o que chamamos de protagonismo.
Aviso aos pais: Seu filho vai chegar em casa dizendo que construiu um robô que fiscaliza a bagunça da sala. Não se assuste. É o 4º ano sendo revolucionário. Apoie. Tire foto. Compartilhe. Seu filho é um engenheiro agora.
Bora? O robô não vai se programar sozinho. 🚀🤖
📋 MAPEAMENTO BIMESTRE 4º ANO – 4º BIMESTRE
| Habilidades BNCC (Outras) | Semana | Título da Aula | Habilidades BNCC (Matemática) | Habilidades BNCC (LP) |
|---|---|---|---|---|
| Competência Geral 5 (pensamento computacional) | 31 | "Caça-problemas que precisa de robô na escola?" | EF04MA01 (ler/ordenar números naturais) | EF04LP11 (produzir textos instrucionais) |
| Competência Geral 5 (pensamento computacional) | 32 | "Projetando a solução do papel para o código" | EF04MA21 (padrões e regularidades) | EF04LP11 (textos instrucionais) |
| EF04CI01 (movimento e energia); Competência Geral 4 (comunicação digital) | 33 | "Montando o hardware o robô ganha corpo" | EF04MA01 (contagem e ordenação) | — |
| Competência Geral 5 (pensamento computacional) | 34 | "Primeiro esqueleto do código" | EF04MA01 (variáveis e contadores) | EF04LP11 (documentação) |
| Competência Geral 5 (pensamento computacional) | 35 | "Aninhando e concorrendo o cérebro do projeto" | EF04MA21 (algoritmos complexos) | EF04LP11 (registro de processos) |
| Competência Geral 5 (depuração) | 36 | "Caça ao bug real teste e depuração" | EF04MA26 (análise de eventos) | EF04LP11 (documentar testes) |
| Competência Geral 4 (comunicação digital) | 37 | "Refinamento e melhorias Robô 2.0" | EF04MA03 (resolução de problemas) | EF04LP11 (atualização de manual) |
| Competência Geral 4 (comunicação) | 38 | "Preparando a apresentação manual e pôster" | EF04MA26 (organização de dados) | EF04LP11 (produção de manual) |
| Competência Geral 4 (comunicação) | 39 | "Ensaio geral mostra dos projetos" | EF04MA26 (análise de desempenho) | EF04LP11 (apresentação oral) |
| Todas as competências gerais | 40 | "Feira de Robótica avaliação final e celebração" | EF04MA01 e EF04MA26 (consolidação) | EF04LP11 (apresentação final) |
🗺️ BIMESTRE – PLANO SINTÉTICO
| Atividade Principal | Semana | Título da Aula | Conceito |
|---|---|---|---|
| Caça aos problemas pela escola; brainstorming e votação da ideia do projeto | 31 | "Caça-problemas o que precisa de robô na escola?" | Identificação de problemas reais e ideação |
| Construção do fluxograma do robô; lista de materiais e componentes | 32 | "Projetando a solução do papel para o código" | Planejamento e fluxograma |
| Montagem do micro:bit, LEDs, buzzer e bateria; corpo do robô com sucata | 33 | "Montando o hardware o robô ganha corpo" | Prototipagem e montagem física |
| Criação do código-base com variáveis, loop principal e eventos iniciais | 34 | "Primeiro esqueleto do código" | Estrutura básica de programação |
| Refinamento do código com SE aninhados e eventos concorrentes (botões) | 35 | "Aninhando e concorrendo o cérebro do projeto" | Integração de aninhamento e concorrência |
| Teste do robô no ambiente real; identificação e correção de problemas | 36 | "Caça ao bug real teste e depuração" | Testes práticos e correção de bugs |
| Adição de melhorias (matriz de LEDs, melodias, ícones) | 37 | "Refinamento e melhorias Robô 2.0" | Otimização e adição de funcionalidades |
| Produção do manual do robô e pôster explicativo | 38 | "Preparando a apresentação manual e pôster" | Documentação e comunicação |
| Simulação da feira com apresentações para a turma | 39 | "Ensaio geral mostra dos projetos" | Apresentação e feedback |
| Feira de Robótica com exposição dos projetos e certificados | 40 | "Feira de Robótica avaliação final e celebração" | Apresentação para a comunidade |
📚 PLANOS DE AULA DETALHADOS BIMESTRE 4
📌 Título
"Detetives de problemas onde o robô pode ajudar?"
🎯 Objetivos Operacionais
- Cognitivos: Identificar problemas cotidianos na escola que poderiam ser resolvidos com um robô.
- Procedimentais: Realizar uma "caça" observando a escola e listando possíveis soluções robóticas.
- Atitudinais: Desenvolver empatia, pensamento crítico e protagonismo sobre necessidades coletivas.
📖 Conteúdo Programático
- O que é um problema real? (exemplos: papel no chão, fila desorganizada, avisos não vistos, lixeira transbordando, luz acesa sem necessidade).
- Como um robô pode ajudar? (sensores, luzes, sons, mensagens na matriz de LEDs).
- Brainstorming e votação em grupo a democracia robótica começa aqui.
📜 Habilidades BNCC e RCP-PR
- EF04MA01 Ler, escrever e ordenar números naturais até a ordem de dezenas de milhar
- EF04LP11 Produzir textos instrucionais (lista de problemas e possíveis soluções)
- Competência Geral 5 Pensamento computacional aplicado a problemas reais
- RCP-PR Autoria Criar sistemas com propósito; projeto autoral com impacto real
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
Nesta semana, NADA de montagem. É semana de observação, ideação e planejamento. Os alunos vão usar apenas cérebro, olhos e criatividade. O hardware vai esperar pacientemente na caixa.
💻 Código a ser desenvolvido
Nenhum código. Os alunos farão um "mapa mental" de problemas e soluções no caderno. Mas já podemos ir aquecendo:
Exemplo de "pensamento computacional" sem código:
PROBLEMA: A lixeira da sala vive transbordando.
SOLUÇÃO: Um robô que acende um LED vermelho e toca um som quando a lixeira está cheia.
SENSOR: Botão A (simulando um sensor de distância)
AÇÃO: LED vermelho acende + buzzer toca
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Oferecer uma lista prévia de problemas com imagens; usar um roteiro visual da "caça"
- TDAH: Foco em um ambiente por vez; usar timer para cada etapa
- Deficiência visual: Descrever os ambientes verbalmente; usar gravação de áudio para anotações
- Deficiência auditiva: Instruções escritas e cartões com imagens dos problemas
- Altas habilidades: Desafiar a pensar em um robô que resolve DOIS problemas ao mesmo tempo
- Deficiência física: Adaptar a locomoção com apoio de colegas; anotações com auxílio
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| Registrou problemas com atenção e curiosidade | Participação na caça | 0-3 |
| Ofereceu ideias criativas para solução | Contribuição no brainstorming | 0-3 |
| Argumentou bem a escolha do grupo com clareza | Defesa da ideia escolhida | 0-4 |
| Total | 0-10 | |
📌 Título
"Arquiteto de robôs desenhando a solução antes de programar"
🎯 Objetivos Operacionais
- Cognitivos: Transformar uma ideia em um fluxograma de ações e decisões.
- Procedimentais: Criar um esboço do projeto (hardware, sensores, código).
- Atitudinais: Planejar antes de executar, desenvolvendo disciplina de engenharia.
📖 Conteúdo Programático
- O que é um fluxograma? (símbolos: retângulo = ação, losango = decisão, oval = início/fim, setas = fluxo).
- Como representar o comportamento do robô em blocos lógicos.
- Lista de materiais e sensores necessários para o projeto escolhido.
📜 Habilidades BNCC e RCP-PR
- EF04MA21 Padrões e regularidades (fluxo lógico do algoritmo)
- EF04LP11 Produzir texto instrucional (esboço do manual do robô)
- Competência Geral 5 Pensamento computacional; planejamento de sistema
- RCP-PR Planejamento de sistema e organização de ideias
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
Nesta semana, os alunos DESENHAM o hardware que vão usar. Cada grupo faz um "projeto arquitetônico" do robô:
- Onde vai ficar o micro:bit? (no centro, como o cérebro)
- Onde vão ficar os LEDs? (na frente, como olhos)
- Onde vai ficar o buzzer? (em cima, como boca)
- Onde vão ficar os botões? (nas laterais, como mãos)
- Como vai ser o corpo? (caixa de papelão, garrafa pet, caixa de sapato?)
Desafio: O robô precisa ter CARA de robô. Pode ser zoado, pode ser bonitinho, pode ser assustador. O importante é ter personalidade.
💻 Código a ser desenvolvido
Não há código final, mas os alunos escrevem "pseudocódigo" uma versão em português do que o robô vai fazer.
Exemplo de pseudocódigo para um "robô que avisa quando a lixeira está cheia":
INÍCIO
ENQUANTO verdadeiro
SE sensor de distância (simulado pelo botão A) detectar "cheio" ENTÃO
apagar LED verde
acender LED vermelho
tocar som no buzzer
mostrar "CHEIO" na matriz de LEDs
SENÃO
acender LED verde
apagar LED vermelho
FIM SE
FIM ENQUANTO
FIM
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Usar símbolos coloridos para cada parte do fluxograma; modelo pré-formatado
- TDAH: Fluxograma curto (máximo 5 passos); foco em uma etapa por vez
- Deficiência visual: Fluxograma em relevo ou em grande escala; descrição verbal
- Deficiência auditiva: Instruções escritas e apoio visual
- Altas habilidades: Adicionar um loop ou aninhamento no fluxograma; propor um fluxo com 3 níveis
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| Contém início, ações, decisões e fim com setas | Fluxograma completo | 0-4 |
| Identificou todos os componentes necessários | Lista de materiais | 0-3 |
| Explicou a lógica de forma compreensível | Clareza da apresentação | 0-3 |
| Total | 0-10 | |
📌 Título
"Mãos à obra o robô sai do papel e vira realidade"
🎯 Objetivos Operacionais
- Cognitivos: Conhecer os componentes físicos do projeto (micro:bit, LEDs, buzzer, botões, acelerômetro, matriz de LEDs).
- Procedimentais: Montar a estrutura básica (placa, bateria, conexões, corpo).
- Atitudinais: Trabalhar com cuidado e organização, seguindo instruções e ajudando os colegas.
📖 Conteúdo Programático
- Montagem física do micro:bit com acessórios (bateria, LEDs externos, buzzer).
- Conexão dos componentes aos pinos do micro:bit.
- Criação do "corpo" do robô com materiais recicláveis.
- Teste de funcionamento básico (LEDs acendem, buzzer toca).
📜 Habilidades BNCC e RCP-PR
- EF04CI01 Identificar misturas na vida diária com base em propriedades físicas observáveis (aplicado às conexões elétricas)
- Competência Geral 4 Uso de ferramentas digitais e físicas
- RCP-PR Montagem de sistemas e prototipagem
🧰 Materiais (por grupo)
🔧 Explicação Detalhada da Montagem do Hardware
PASSO A PASSO DA MONTAGEM (20-25 minutos):
- Conectar o micro:bit ao computador via USB Plugar o cabo USB no micro:bit e no computador. Verificar se a luz amarela/acendeu (sinal de conexão).
- Conectar a bateria Encaixar as pilhas no suporte. Conectar o suporte ao micro:bit (no conector de bateria). Testar se o micro:bit liga sem o USB (só com a bateria).
-
Conectar os LEDs externos
- LED vermelho (ânodo longo) → pino 0; cátodo → GND (com resistor)
- LED verde (ânodo longo) → pino 1; cátodo → GND (com resistor)
- Dica: O resistor vai no cátodo (perna curta) ou no ânodo tanto faz, desde que esteja no caminho da corrente.
- Dica 2: A perna MAIS COMPRIDA do LED é o ânodo (+). A perna MAIS CURTA é o cátodo (-).
- Conectar o buzzer Pino 2 → positivo do buzzer; GND → negativo do buzzer.
- Fixar a montagem no corpo do robô Colar o micro:bit no centro da caixa. Colar os LEDs na parte frontal (como olhos). Colar o buzzer em cima (como boca ou antena). Decorar o robô.
- Testar com um programa simples Programar um teste rápido para verificar se tudo funciona.
💻 Código a ser desenvolvido (teste de hardware)
// ============================================================ // TESTE DE HARDWARE - SEMANA 33 // Objetivo: Verificar se os LEDs externos (P0 e P1) e o Buzzer // externo (P2) estão funcionando corretamente no seu robô. // ============================================================ // ------------------------------------------------------------ // PASSO 1: Teste do LED vermelho (conectado ao pino 0) // ------------------------------------------------------------ // 'digitalWritePin' envia tensão digital (0V ou 3.3V) para o pino. // '1' (HIGH) significa 3.3V -> acende o LED (ânodo no pino). pins.digitalWritePin(DigitalPin.P0, 1) // 'basic.pause' trava a execução por X milissegundos (ms). // 1000 ms = 1 segundo. Precisamos disso para enxergar o LED aceso. basic.pause(1000) // '0' (LOW) significa 0V (GND) -> apaga o LED. pins.digitalWritePin(DigitalPin.P0, 0) // Pausa de 500 ms (meio segundo) para dar um intervalo entre os testes. basic.pause(500) // ------------------------------------------------------------ // PASSO 2: Teste do LED verde (conectado ao pino 1) // ------------------------------------------------------------ // Mesmo princípio do Passo 1, mas agora no pino 1 (LED verde). pins.digitalWritePin(DigitalPin.P1, 1) basic.pause(1000) pins.digitalWritePin(DigitalPin.P1, 0) basic.pause(500) // ------------------------------------------------------------ // PASSO 3: Teste do buzzer (conectado ao pino 2) // ------------------------------------------------------------ // ATENÇÃO: O buzzer precisa de um sinal PWM (onda quadrada) para vibrar e gerar som. // O comando 'analogPitch' gera essa onda na frequência que escolhermos. // Primeiro, devemos dizer ao micro:bit qual pino será usado para o áudio. // Isso redireciona o sinal de áudio para o pino 2 (buzzer externo). pins.analogSetPitchPin(AnalogPin.P2) // 'analogPitch(frequência, duração)' - Frequência em Hertz (Hz). // 440 Hz é a nota musical Lá (A4). Duração de 200 ms (bip curto). pins.analogPitch(440, 200) basic.pause(300) // Pequeno silêncio entre os bipes. // 523 Hz é a nota Dó (C5). Duração de 400 ms (bip mais longo). // Isso prova que o buzzer responde a tons diferentes. pins.analogPitch(523, 400) // ------------------------------------------------------------ // PASSO 4: Teste combinado (LEDs + Buzzer ao mesmo tempo) // ------------------------------------------------------------ // Aqui simulamos um "alerta" visual e sonoro sincronizado. // --- LED Vermelho + Som --- pins.digitalWritePin(DigitalPin.P0, 1) // Acende o vermelho pins.analogPitch(440, 300) // Toca Lá por 300ms basic.pause(500) // Dá tempo de ver o LED aceso após o som pins.digitalWritePin(DigitalPin.P0, 0) // Apaga o vermelho // --- LED Verde + Som --- pins.digitalWritePin(DigitalPin.P1, 1) // Acende o verde pins.analogPitch(523, 300) // Toca Dó por 300ms basic.pause(500) pins.digitalWritePin(DigitalPin.P1, 0) // Apaga o verde // ------------------------------------------------------------ // PASSO 5: Teste da matriz de LEDs (tela 5x5 interna do micro:bit) // ------------------------------------------------------------ // O micro:bit possui 25 LEDs internos que formam uma tela. // 'showIcon' exibe um ícone pré-definido. 'IconNames.Heart' é o coração. basic.showIcon(IconNames.Heart) basic.pause(2000) // Mantém o coração na tela por 2 segundos. // 'clearScreen' apaga TODOS os 25 LEDs da matriz interna. // Importante para não ficar gastando bateria com a tela acesa. basic.clearScreen() // ============================================================ // FIM DO TESTE DE HARDWARE // ============================================================ // Se o LED vermelho piscou, o verde piscou, o buzzer tocou dois // tons diferentes e o coração apareceu na tela... PARABÉNS! 🎉 // Seu robô está VIVO e pronto para a programação avançada! // ============================================================
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Montagem passo a passo com imagens; checklist visual
- TDAH: Dividir a montagem em etapas com recompensas (adesivos a cada etapa)
- Deficiência visual: Componentes com identificação tátil (adesivos em relevo)
- Deficiência física: Facilitar a conexão com pinos mais grossos ou usar adaptadores; apoio de colegas
- Altas habilidades: Adicionar um motor ou servo (se disponível) para movimento; criar um robô com "braço"
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| LEDs e buzzer conectados corretamente (não queimou nada!) | Montagem correta | 0-4 |
| LEDs acenderam e buzzer tocou conforme o esperado | Teste funcionou | 0-3 |
| Capricho na decoração e personalidade do robô | Criatividade no corpo | 0-3 |
| Total | 0-10 | |
📌 Título
"O esqueleto do robô código básico antes dos músculos"
🎯 Objetivos Operacionais
- Cognitivos: Estruturar o código principal do projeto (variáveis, eventos iniciais).
- Procedimentais: Criar a base do programa com as ações fundamentais.
- Atitudinais: Entender que um bom programa começa pela estrutura básica é como construir uma casa: primeiro o alicerce.
📖 Conteúdo Programático
- Estrutura de um programa completo: variáveis globais, loop principal, eventos.
- Mapear as ações principais do robô (ex: ler sensor, acender LED, tocar som, mostrar mensagem).
- Criar um esboço do código no MakeCode.
📜 Habilidades BNCC e RCP-PR
- EF04MA01 Variáveis e contadores; ler, escrever e ordenar números
- EF04MA21 Algoritmos e regularidades
- Competência Geral 5 Pensamento computacional; programação sistemática
- RCP-PR Programação sistemática e organização de código
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
O hardware já está montado da semana anterior. Agora vamos programá-lo. Verificar:
- Cabo USB conectado
- Bateria conectada (para testes sem fio depois)
- LEDs nos pinos 0 e 1
- Buzzer no pino 2
💻 Código a ser desenvolvido Esqueleto Genérico
// ============================================
// PROJETO AUTORAL 4º ANO SEMANA 34
// ESQUELETO DO CÓDIGO ALICERCE DO ROBÔ
// ============================================
// Este código é projetado para ser executado no micro:bit
// através do editor MakeCode (JavaScript / TypeScript).
// Ele serve como base para um projeto didático de robótica.
// ============================================
// ------------------------------------------------------------
// PARTE 1: VARIÁVEIS GLOBAIS
// ------------------------------------------------------------
// Todas as variáveis são definidas aqui para serem acessíveis
// em todo o programa (loop principal e eventos).
// ------------------------------------------------------------
let estado = 0
// estado = 0: "modo espera" (tudo tranquilo, LED verde aceso)
// estado = 1: "modo ativo" (robô executando uma ação personalizada)
// estado = 2: "modo alerta" (robô emite aviso sonoro e visual)
let contador = 0
// contador guarda quantas vezes o robô entrou no "modo ativo"
// (ou qualquer outra contagem que o grupo desejar).
// ------------------------------------------------------------
// PARTE 2: LOOP PRINCIPAL (FOREVER)
// ------------------------------------------------------------
// O bloco 'basic.forever' executa o código repetidamente enquanto
// o micro:bit estiver ligado. É o coração do programa.
// ------------------------------------------------------------
basic.forever(function () {
// --------------------------------------------------------
// PASSO 1: LER OS SENSORES
// --------------------------------------------------------
// Neste projeto didático, usamos os botões A e B como
// sensores de entrada (substitutos de sensores reais,
// como de toque ou proximidade, para simular a lógica).
// --------------------------------------------------------
let sensor1 = input.buttonIsPressed(Button.A)
// sensor1 armazena 'true' (verdadeiro) se o botão A
// estiver pressionado no momento, ou 'false' (falso)
// caso contrário.
let sensor2 = input.buttonIsPressed(Button.B)
// sensor2 armazena 'true' se o botão B estiver pressionado,
// e 'false' caso contrário.
// --------------------------------------------------------
// PASSO 2: LÓGICA PRINCIPAL DO PROJETO (MÁQUINA DE ESTADOS)
// --------------------------------------------------------
// O robô funciona com base em três estados, formando uma
// máquina de estados simples. A transição entre estados
// acontece de acordo com as condições definidas abaixo.
// --------------------------------------------------------
if (estado == 0) {
// -- MODO ESPERA --
// Neste modo, o robô está em repouso, aguardando um
// comando (pressionar o botão A) para iniciar a ação.
// O LED vermelho (pino 0) fica apagado e o LED verde
// (pino 1) fica aceso, indicando "pronto para ação".
// ----------------------------------------------------
pins.digitalWritePin(DigitalPin.P0, 0)
// Apaga o LED vermelho conectado ao pino 0.
pins.digitalWritePin(DigitalPin.P1, 1)
// Acende o LED verde conectado ao pino 1.
if (sensor1 == true) {
// Se o botão A for pressionado, o robô sai do
// modo espera e entra no modo ativo.
estado = 1
// Incrementa o contador para registrar quantas
// vezes a ação foi acionada.
contador = contador + 1
}
} else if (estado == 1) {
// -- MODO ATIVO --
// Neste modo, o robô executa a ação principal do
// projeto. A ação atual é um exemplo: piscar o LED
// vermelho 3 vezes. Cada grupo deve personalizar
// esta seção com sua própria lógica criativa!
// ----------------------------------------------------
for (let i = 0; i < 3; i++) {
// O laço 'for' repete o bloco interno 3 vezes.
pins.digitalWritePin(DigitalPin.P0, 1)
// Acende o LED vermelho.
basic.pause(200)
// Aguarda 200 milissegundos (0,2 segundos).
pins.digitalWritePin(DigitalPin.P0, 0)
// Apaga o LED vermelho.
basic.pause(200)
// Aguarda mais 200 milissegundos.
}
// Após executar a ação, o robô avança para o estado
// de alerta para sinalizar a conclusão.
estado = 2
} else if (estado == 2) {
// -- MODO ALERTA --
// Neste modo, o robô avisa que a ação foi concluída.
// Ele acende o LED vermelho, apaga o verde, emite um
// som e mostra uma mensagem no display.
// ----------------------------------------------------
pins.digitalWritePin(DigitalPin.P0, 1)
// Acende o LED vermelho (sinal de alerta).
pins.digitalWritePin(DigitalPin.P1, 0)
// Apaga o LED verde.
// Configura o pino 2 para emitir som (tom).
// O comando abaixo define que o som será gerado no pino 2.
pins.analogSetPitchPin(AnalogPin.P2)
// Emite um tom de 440 Hz (nota Lá) por 200 milissegundos
// no pino 2, que geralmente é conectado a um buzzer ou alto-falante.
pins.analogPitch(440, 200)
basic.pause(200)
// Pequena pausa para separar o som da mensagem visual.
basic.showString("OK!")
// Exibe a mensagem "OK!" no display de LEDs do micro:bit,
// confirmando que a ação foi finalizada com sucesso.
// Após o alerta, o robô retorna ao modo espera,
// ficando novamente disponível para um novo acionamento.
estado = 0
}
// --------------------------------------------------------
// PASSO 3: PAUSA PARA ESTABILIDADE
// --------------------------------------------------------
// Uma pequena pausa no final do loop evita que o programa
// consuma toda a capacidade de processamento e garante
// que as leituras dos sensores sejam estáveis.
// --------------------------------------------------------
basic.pause(100)
// Aguarda 100 milissegundos (0,1 segundo) antes de repetir.
})
// ------------------------------------------------------------
// PARTE 3: EVENTOS DOS BOTÕES (CONCORRENTES)
// ------------------------------------------------------------
// Além do loop principal, o micro:bit permite responder a
// eventos específicos, como o pressionamento de botões.
// Estes eventos ocorrem de forma "concorrente" (paralela)
// ao loop principal, ou seja, podem ser acionados a qualquer
// momento, independentemente do estado atual do robô.
// ------------------------------------------------------------
// Evento: Botão A pressionado
// ---------------------------------
// Quando o botão A é pressionado, o contador é zerado e
// o display mostra o número 0, permitindo reiniciar a
// contagem de acionamentos.
input.onButtonPressed(Button.A, function () {
contador = 0
// Zera o contador global.
basic.showNumber(0)
// Exibe o número 0 no display para confirmar o reset.
})
// Evento: Botão B pressionado
// ---------------------------------
// Quando o botão B é pressionado, o valor atual do contador
// é exibido no display. Isso permite ao usuário verificar
// quantas vezes o robô foi acionado (entrou no modo ativo).
input.onButtonPressed(Button.B, function () {
basic.showNumber(contador)
// Exibe o valor atual da variável 'contador' no display.
})
// ============================================
// FIM DO ESQUELETO
// Agora cada grupo vai personalizar com sua lógica específica!
// ============================================
// INSTRUÇÕES PARA PERSONALIZAÇÃO:
// 1. A parte mais importante para modificar é a seção
// "MODO ATIVO" dentro do 'basic.forever'.
// 2. Os alunos podem substituir o laço 'for' por:
// - Movimentos do servo motor (servo write)
// - Emissão de sons diferentes (music.playTone)
// - Exibição de animações no display (basic.showAnimation)
// - Leituras de sensores externos (analog read)
// - Qualquer outra ação criativa com os atuadores.
// 3. Lembre-se de ajustar os comentários para refletir
// as mudanças feitas pelo grupo.
// 4. Divirtam-se explorando a robótica com o micro:bit!
// ============================================
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Código com comentários coloridos; modelo pré-formatado para preencher
- TDAH: Foco em uma parte do código por vez; usar timer
- Deficiência visual: Descrição verbal do código; leitor de tela; código em braille (se possível)
- Deficiência auditiva: Instruções escritas; apoio visual no projetor
- Altas habilidades: Já adicionar aninhamento no esqueleto; criar uma terceira condição
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| Variáveis, loop e eventos definidos corretamente | Esqueleto do código | 0-4 |
| Funcionamento parcial da ação do robô | Lógica principal | 0-3 |
| Identificou e corrigiu erros básicos | Teste e depuração | 0-3 |
| Total | 0-10 | |
📌 Título
"O cérebro do robô aninhando decisões e eventos concorrentes"
🎯 Objetivos Operacionais
- Cognitivos: Integrar aninhamento (SE dentro de REPITA) e concorrência no projeto.
- Procedimentais: Refinar o código com estruturas avançadas.
- Atitudinais: Perceber a importância da organização do código código bagunçado = robô confuso.
📖 Conteúdo Programático
- Revisão de aninhamento (estruturas dentro de estruturas) e concorrência (eventos simultâneos).
- Aplicação no projeto: loop principal com SE aninhados + eventos de botão que alteram o estado.
- Organização do código para facilitar leitura e depuração.
📜 Habilidades BNCC e RCP-PR
- EF04MA21 Algoritmos complexos e padrões
- Competência Geral 5 Pensamento computacional avançado
- RCP-PR Integração de estruturas e organização de código
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
Hardware já montado. Foco NO CÓDIGO. Verificar apenas se os componentes ainda estão conectados e funcionando.
💻 Código a ser desenvolvido com aninhamento e concorrência
// ============================================================
// PROJETO AUTORAL – 4º ANO – SEMANA 35
// ANINHAMENTO E CONCORRÊNCIA – O CÉREBRO DO ROBÔ
// ============================================================
// Este programa simula um robô vigilante que monitora uma "lixeira"
// (representada pelo botão A). Ele reage a problemas, alterna entre
// modos de operação e exibe estatísticas – tudo com eventos paralelos.
// ============================================================
// ------------------- VARIÁVEIS GLOBAIS -----------------------
// (acessíveis em todo o programa, inclusive nos eventos)
/** @type {boolean} - true = "lixeira cheia" (alerta), false = "normal" */
let cheia = false;
/** @type {number} - 0 = modo normal (vigilante), 1 = modo pausa (cochilo) */
let modo = 0;
/** @type {number} - contador de quantas vezes o robô entrou em alerta */
let alertas = 0;
// ============================================================
// LOOP PRINCIPAL – Roda para sempre, como o "coração" do robô
// ============================================================
basic.forever(function () {
// ---------- NÍVEL 1: Verifica o MODO de operação ----------
if (modo == 0) {
// ===== MODO NORMAL =====
// Robô trabalhando: monitora o sensor (botão A) e reage.
// ---------- NÍVEL 2: Leitura do SENSOR (botão A) ----------
// ANINHAMENTO: primeiro "se" dentro do modo normal.
if (input.buttonIsPressed(Button.A)) {
// Se o botão A estiver pressionado, a lixeira está cheia.
cheia = true;
} else {
// Caso contrário, está vazia (normal).
cheia = false;
}
// ---------- NÍVEL 2: Verifica o ESTADO da lixeira ----------
// ANINHAMENTO: segundo "se" dentro do mesmo nível.
if (cheia == true) {
// ===== PROBLEMA DETECTADO! =====
// Ações de alerta – aninhamento ainda mais profundo.
// ---------- NÍVEL 3: Sinalização imediata ----------
// LED vermelho (pino 0) acende, LED verde (pino 1) apaga.
pins.digitalWritePin(DigitalPin.P0, 1);
pins.digitalWritePin(DigitalPin.P1, 0);
// ---------- NÍVEL 3: LOOP de alerta (aninhado!) ----------
// Repetimos 5 vezes um padrão de pisca-pisca + som.
// Este é um exemplo de aninhamento de um loop dentro de um "se".
for (let i = 0; i < 5; i++) {
// Pisca o LED vermelho (pino 0)
pins.digitalWritePin(DigitalPin.P0, 1);
basic.pause(150);
pins.digitalWritePin(DigitalPin.P0, 0);
basic.pause(150);
// Emite um som agudo (frequência 440 Hz) no pino 2 por 100 ms
pins.analogSetPitchPin(AnalogPin.P2); // define o pino P2 para gerar os tons
pins.analogPitch(440, 100); // toca o som (sem o terceiro argumento)
basic.pause(100);
}
// Exibe mensagem de "CHEIO!" na matriz de LEDs
basic.showString("CHEIO!");
basic.pause(1000);
basic.clearScreen();
// Incrementa o contador de alertas e reseta o estado da lixeira
alertas = alertas + 1;
cheia = false; // após o alerta, volta ao normal
} else {
// ===== TUDO NORMAL =====
// Sem problemas: LED vermelho apagado, verde aceso.
pins.digitalWritePin(DigitalPin.P0, 0);
pins.digitalWritePin(DigitalPin.P1, 1);
// Mostra um ícone feliz na tela
basic.showIcon(IconNames.Happy);
basic.pause(500);
basic.clearScreen();
}
} else {
// ===== MODO PAUSA =====
// Robô "desligado": apenas exibe um "Z z Z" e mantém os LEDs apagados.
pins.digitalWritePin(DigitalPin.P0, 0);
pins.digitalWritePin(DigitalPin.P1, 0);
basic.showString("Z z Z");
basic.pause(1000);
basic.clearScreen();
}
// Pequena pausa no final de cada iteração para evitar processamento excessivo
basic.pause(100);
});
// ============================================================
// EVENTOS CONCORRENTES – Rodam paralelamente ao loop principal
// ============================================================
// Eles podem disparar a qualquer momento, demonstrando o conceito
// de concorrência (multitarefa) no micro:bit.
// ---------- EVENTO 1: Botão B alterna o modo (normal ↔ pausa) ----------
input.onButtonPressed(Button.B, function () {
if (modo == 0) {
modo = 1; // muda para pausa
basic.showString("P"); // "P" de Pausa
} else {
modo = 0; // volta ao normal
basic.showString("N"); // "N" de Normal
}
basic.pause(500);
basic.clearScreen();
});
// ---------- EVENTO 2: Botões A+B juntos (combinação secreta!) ----------
// Mostra as estatísticas (número de alertas) e toca um bipe duplo.
input.onButtonPressed(Button.AB, function () {
// Exibe o valor atual do contador de alertas
basic.showNumber(alertas);
basic.pause(2000);
basic.clearScreen();
// Toca dois sons curtos no pino 2 para chamar a atenção
pins.analogSetPitchPin(AnalogPin.P2); // define o pino P2 para gerar os tons
pins.analogPitch(440, 100); // toca o som (sem o terceiro argumento)
basic.pause(100);
pins.analogSetPitchPin(AnalogPin.P2); // define o pino P2 para gerar os tons
pins.analogPitch(440, 100); // toca o som (sem o terceiro argumento)
});
// ============================================================
// FIM – Seu robô agora é MULTITAREFA! 🧠
// ============================================================
// Este código demonstra:
// - Aninhamento: "se" dentro de "se", loop dentro de "se".
// - Concorrência: loop principal + eventos de botão rodando em paralelo.
// - Didática: variáveis com nomes claros, comentários extensos.
// ============================================================
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Usar blocos coloridos para cada nível de aninhamento; modelo visual
- TDAH: Foco em uma estrutura de cada vez; recompensas a cada etapa
- Deficiência visual: Descrever a estrutura do código verbalmente; leitor de tela
- Deficiência auditiva: Instruções escritas; diagrama do fluxo do código
- Altas habilidades: Adicionar um terceiro nível de aninhamento; criar um "modo secreto"
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| SE dentro de loop e dentro de SE funcionou | Aninhamento correto | 0-4 |
| Botão alterou o estado corretamente | Evento concorrente | 0-3 |
| Comentários e indentação (capricho) | Código organizado | 0-3 |
| Total | 0-10 | |
📌 Título
"Bugs reais testando o robô no mundo real (e não quebrando tudo)"
🎯 Objetivos Operacionais
- Cognitivos: Identificar bugs que só aparecem em testes práticos.
- Procedimentais: Testar o robô em condições reais e corrigir problemas.
- Atitudinais: Desenvolver resiliência e método de depuração errar é parte do processo!
📖 Conteúdo Programático
- Testes em condições reais (ex: colocar o robô perto da lixeira, testar com barulho ambiente, testar com luz diferente).
- Identificação de bugs: sensor não lê direito, tempo de resposta, conflitos entre eventos.
- Correção e iteração o ciclo da engenharia.
📜 Habilidades BNCC e RCP-PR
- EF04MA26 Identificar eventos aleatórios e sua chance de ocorrência
- EF04LP11 Documentar testes e correções
- Competência Geral 5 Depuração e resolução de problemas
- RCP-PR Teste de sistemas e iteração
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
Nada novo. Apenas testar o robô no local real. Verificar:
- Bateria carregada?
- Conexões firmes?
- LEDs e buzzer funcionando?
💻 Código a ser desenvolvido ajustes comuns após testes reais
/**
* ============================================================
* PROJETO DIDÁTICO – ALARME DE TANQUE CHEIO (com BUG e CORREÇÃO)
* ============================================================
*
* OBJETIVO: Mostrar na prática o que é o efeito "debounce"
* (leitura falsa de botões) e como corrigi-lo.
*
* CONTROLES:
* - Botão A: Ativa o alarme (tanque cheio)
* - Botão B: Desativa o alarme (tanque vazio)
* ============================================================
*/
// ============================================================
// 1. CONFIGURAÇÕES (CONSTANTES)
// ============================================================
// Define o tempo de espera (em milissegundos) para filtrar o
// ruído elétrico do botão. 50ms é suficiente para estabilizar.
const TEMPO_DEBOUNCE = 50;
// Define o intervalo (em ms) entre cada repetição do som do alarme.
// Antes era 100, ajustamos para 200 para ficar mais estável.
const TEMPO_PAUSA_ALERTA = 200;
// Número de vezes que o alarme vai tocar. Antes era 5,
// reduzimos para 3 para não cansar o ouvido.
const NUM_REPETICOES = 3;
// Frequência do som em Hertz (Hz). 523 Hz é a nota Dó agudo.
// Antes usávamos 440 Hz (Dó médio), alteramos para ficar mais
// perceptível em ambientes ruidosos.
const FREQUENCIA_SOM = 523;
// Duração de cada "bip" do alarme em milissegundos.
const DURACAO_SOM = 200;
// ============================================================
// 2. VARIÁVEL GLOBAL
// ============================================================
// Variável do tipo booleano (verdadeiro/falso) que guarda o
// estado do tanque. Começa como 'false' (vazio).
let cheia: boolean = false;
// ============================================================
// 3. FUNÇÃO PARA DESENHAR O ÍCONE "X" (TANQUE CHEIO)
// ============================================================
// Cria uma função personalizada para mostrar um "X" na matriz.
function desenharX() {
// Comando 'basic.showLeds' desenha uma imagem pixel a pixel.
// Cada string representa uma linha da matriz 5x5.
// "#" = LED aceso, "." = LED apagado.
basic.showLeds(`
# . . . #
. # . # .
. . # . .
. # . # .
# . . . #
`);
}
// ============================================================
// 4. FUNÇÃO PARA ATUALIZAR O DISPLAY
// ============================================================
function mostrarEstado() {
// Estrutura condicional 'se...senão'.
if (cheia) { // Se a variável 'cheia' for VERDADEIRA:
// Chama a função que desenha o X na matriz.
desenharX();
} else { // Senão (se for FALSA):
// Usa o ícone padrão "Yes" (um "check" / "visto")
// para representar que o tanque está vazio.
basic.showIcon(IconNames.Yes);
}
}
// ============================================================
// 5. FUNÇÃO DO ALARME (SOM + REPETIÇÃO)
// ============================================================
function dispararAlarme() {
// Estrutura de repetição 'for'.
// 'let i = 0' começa do zero; enquanto 'i < 3', repete;
// 'i++' aumenta 1 a cada volta.
for (let i = 0; i < NUM_REPETICOES; i++) {
// Toca um tom no alto-falante (pino 0) com a frequência
// e duração definidas nas constantes.
music.playTone(FREQUENCIA_SOM, DURACAO_SOM);
// Pausa a execução por X milissegundos para dar um
// espaçamento entre os bips.
basic.pause(TEMPO_PAUSA_ALERTA);
}
// Após tocar todos os bips, reforça o aviso visual
// desenhando novamente o X.
desenharX();
}
// ============================================================
// 6. LOOP PRINCIPAL (executado para sempre)
// ============================================================
// 'basic.forever' é o loop infinito do micro:bit.
// O código dentro dele roda repetidamente enquanto o aparelho
// estiver ligado.
basic.forever(function () {
// --------------------------------------------------------
// BLOCO DO BOTÃO A (COM A CORREÇÃO DO DEBOUNCE)
// --------------------------------------------------------
// =========================================================
// ⚠️ ATENÇÃO: AQUI ESTÁ A DEMONSTRAÇÃO DO BUG!
// =========================================================
// Se você descomentar o trecho abaixo e comentar o trecho
// com debounce, verá o problema:
/*
if (input.buttonIsPressed(Button.A)) {
cheia = true;
dispararAlarme();
}
*/
// O código acima é o BUG: ele NÃO tem debounce.
// Como o micro:bit é muito rápido, ele lê o botão várias
// vezes em um único toque, disparando o alarme múltiplas
// vezes sem parar.
// =========================================================
// ✅ CÓDIGO CORRETO (COM DEBOUNCE)
// =========================================================
// 'input.buttonIsPressed' verifica se o botão A está
// pressionado fisicamente naquele exato instante.
if (input.buttonIsPressed(Button.A)) {
// PRIMEIRA ETAPA DO DEBOUNCE:
// Pausa o programa por 50ms para dar tempo do contato
// elétrico do botão se estabilizar (ignorar ruídos).
basic.pause(TEMPO_DEBOUNCE);
// SEGUNDA ETAPA DO DEBOUNCE:
// Verifica NOVAMENTE se o botão A ainda está pressionado.
// Se estiver, é porque é um clique verdadeiro (e não um
// ruído elétrico).
if (input.buttonIsPressed(Button.A)) {
// Altera o estado da variável para VERDADEIRO.
cheia = true;
// Chama a função que toca o alarme.
dispararAlarme();
// Obs.: O display já é atualizado pela função
// 'dispararAlarme' e pelo 'mostrarEstado' no final.
}
}
// --------------------------------------------------------
// BLOCO DO BOTÃO B (TAMBÉM COM DEBOUNCE)
// --------------------------------------------------------
// Verifica se o botão B está pressionado.
if (input.buttonIsPressed(Button.B)) {
// Pausa para estabilizar (debounce).
basic.pause(TEMPO_DEBOUNCE);
// Verifica novamente para confirmar o clique.
if (input.buttonIsPressed(Button.B)) {
// Altera o estado da variável para FALSO (tanque vazio).
cheia = false;
// Atualiza a matriz de LEDs para mostrar o ícone de "vazio".
mostrarEstado();
}
}
// --------------------------------------------------------
// PAUSA PARA ESTABILIDADE DO LOOP E ATUALIZAÇÃO DO DISPLAY
// --------------------------------------------------------
// Dá uma pequena pausa de 200ms no final do loop.
// Isso evita que o programa consuma toda a CPU do micro:bit
// e estabiliza a exibição. Antes era 100ms, mas aumentamos
// para 200ms após testes reais.
basic.pause(200);
// Chama a função que verifica o estado e desenha o ícone
// correto (X ou check) na matriz. Isso garante que, se
// nenhum botão for pressionado, o display continue mostrando
// o estado atual sem piscar.
mostrarEstado();
});
// ============================================================
// 7. COMO TESTAR O BUG (PARA ESTUDO)
// ============================================================
//
// PASSO 1: No código acima, localize o bloco do Botão A.
// PASSO 2: Comente as linhas com 'basic.pause' e o segundo 'if'
// (as linhas do debounce).
// PASSO 3: Descomente o trecho do BUG (que está dentro do bloco
// de comentário /* */).
// PASSO 4: Carregue o código no micro:bit.
// PASSO 5: Pressione o botão A UMA ÚNICA VEZ.
// Você verá que o alarme toca várias vezes seguidas ou
// o display fica piscando. ISSO É O BUG!
// PASSO 6: Reverta as alterações (reative o debounce e comente
// o bug) para ver o funcionamento perfeito: um clique
// = UM alarme.
// ============================================================
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Checklist de teste com itens visuais; apoio de um colega
- TDAH: Testes curtos (5 minutos cada); timer visível
- Deficiência visual: Feedback sonoro para identificar bugs; descrever o que acontece
- Deficiência física: Adaptar o local do teste; apoio para manusear o robô
- Altas habilidades: Testar em MÚLTIPLOS cenários diferentes; criar um "relatório de bugs"
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| Listou problemas reais com clareza | Identificação de bugs | 0-4 |
| Os ajustes resolveram os bugs | Correção eficaz | 0-3 |
| Registrou o processo no diário | Documentação dos testes | 0-3 |
| Total | 0-10 | |
📌 Título
"Robô 2.0 melhorando o que já funciona"
🎯 Objetivos Operacionais
- Cognitivos: Pensar em melhorias estéticas e funcionais.
- Procedimentais: Adicionar funcionalidades extras (ex: mostrar mensagem na matriz, tocar melodia, ícones personalizados).
- Atitudinais: Desenvolver olhar crítico para otimização sempre dá para melhorar!
📖 Conteúdo Programático
- Revisão do projeto: o que está bom? O que pode melhorar?
- Adição de "extras" (feedback visual e sonoro mais elaborado).
- Otimização do código (menos repetição, mais elegância).
📜 Habilidades BNCC e RCP-PR
- EF04MA03 Resolver e elaborar problemas com números naturais
- EF04LP11 Atualizar o manual do robô
- Competência Geral 4 Comunicação digital
- RCP-PR Refinamento de projeto e inovação
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
Pode-se adicionar novos LEDs ou sensores, se disponíveis. Mas o foco é no código e na criatividade.
💻 Código a ser desenvolvido Robô 2.0 com melhorias
// ============================================
// ROBÔ 2.0 SEMANA 37 MELHORIAS
// ============================================
// MELHORIA 1: Mostrar TEXTO na matriz de LEDs
// Em vez de só piscar, o robô ESCREVE na tela!
se (cheia == verdadeiro) então
mostrar string "CHEIO"
pausar 1000 ms
limpar tela
fim se
// MELHORIA 2: Tocar uma MELODIA (em vez de só bip)
function tocarAlerta()
// Notas: Dó (262), Ré (294), Mi (330), Fá (349), Sol (392), Lá (440), Si (494), Dó (523)
tocar som por 200 ms no pino 2 com frequência 523 // Dó
pausar 150 ms
tocar som por 200 ms no pino 2 com frequência 523 // Dó (de novo)
pausar 150 ms
tocar som por 300 ms no pino 2 com frequência 523 // Dó (mais longo)
pausar 200 ms
tocar som por 200 ms no pino 2 com frequência 392 // Sol
pausar 150 ms
tocar som por 300 ms no pino 2 com frequência 523 // Dó (final)
end function
se (cheia == verdadeiro) então
tocarAlerta()
fim se
// MELHORIA 3: ÍCONES PERSONALIZADOS na matriz
mostrar ícone feliz // "tudo bem"
mostrar ícone triste // "alerta"
// Ícone personalizado (X vermelho)
mostrar LEDs
. . .
. . .
. . . .
. . .
. . .
end mostrar LEDs
// MELHORIA 4: Animação na matriz (quadrado piscando)
repetir 3 vezes
mostrar LEDs
. . .
. . .
. . .
end mostrar LEDs
pausar 200 ms
limpar tela
pausar 200 ms
fim repetir
// MELHORIA 5: Contador de alertas com som diferente a cada 10
se (alertas % 10 == 0) e (alertas > 0) então
// Toca música de "parabéns" (versão resumida)
tocar som por 200 ms no pino 2 com frequência 523
pausar 150 ms
tocar som por 200 ms no pino 2 com frequência 587
pausar 150 ms
tocar som por 300 ms no pino 2 com frequência 659
mostrar string "10!" // Comemora!
fim se
// ============================================
// FIM ROBÔ 2.0 ATIVADO! 🎉
// ============================================
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Oferecer sugestões de melhorias pré-definidas (cardápio de opções)
- TDAH: Foco em uma melhoria por vez; checklist
- Deficiência visual: Melhorias sonoras em vez de visuais (melodias mais elaboradas)
- Deficiência auditiva: Melhorias visuais (piscar LEDs, texto na matriz, animações)
- Altas habilidades: Adicionar um sensor de luz (se disponível) ou criar um "modo noturno"
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| Acrescentou algo útil e funcional | Implementação de melhorias | 0-4 |
| Ideias originais e divertidas | Criatividade | 0-3 |
| As melhorias funcionaram após testes | Teste e ajuste | 0-3 |
| Total | 0-10 | |
📌 Título
"Manual do robô e pôster contando a história do projeto"
🎯 Objetivos Operacionais
- Cognitivos: Sintetizar todo o aprendizado em um manual e pôster.
- Procedimentais: Produzir um texto instrucional (manual) e um pôster explicativo.
- Atitudinais: Organizar as ideias para comunicar claramente o projeto se você não explica, ninguém entende!
📖 Conteúdo Programático
- Como escrever um manual: título, objetivo, materiais, montagem, código, como usar.
- Como fazer um pôster: título, imagens, fluxograma, fotos do robô.
- Roteiro da apresentação: o que dizer, como demonstrar.
📜 Habilidades BNCC e RCP-PR
- EF04LP11 Produzir manual do robô
- Competência Geral 4 Comunicação digital e escrita
- RCP-PR Documentação de projeto e comunicação
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
Não há montagem nova. Foco na DOCUMENTAÇÃO. O robô deve estar pronto para demonstrar.
💻 Código a ser desenvolvido
Incluir o código final no manual, com comentários explicativos. Cada grupo deve imprimir ou copiar o código final e colar no manual.
Estrutura do manual:
- Capa: Nome do robô, nome dos integrantes, turma, data.
- Introdução: Qual é o problema que o robô resolve?
- Materiais: Lista de tudo que foi usado.
- Montagem: Como o robô foi montado (com fotos ou desenhos).
- Código: O programa completo (com comentários).
- Como usar: Instruções passo a passo para operar o robô.
- Conclusão: O que aprendemos com este projeto?
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Modelo de manual e pôster pré-formatado (só preencher)
- TDAH: Dividir a produção em etapas curtas com pausas
- Deficiência visual: Manual em áudio ou braille (se possível); descrição verbal do pôster
- Deficiência auditiva: Pôster com muitas imagens e palavras-chave; apoio visual
- Altas habilidades: Criar um VÍDEO curto do robô em ação (com celular)
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| Contém todos os elementos (capa, introdução, materiais, montagem, código, como usar, conclusão) | Manual completo | 0-4 |
| Boa apresentação visual, informações claras | Pôster criativo e claro | 0-3 |
| Incorporou feedback da revisão | Revisão e ajustes | 0-3 |
| Total | 0-10 | |
📌 Título
"Ensaiando para a feira apresentando para a turma"
🎯 Objetivos Operacionais
- Cognitivos: Praticar a apresentação e a demonstração ao vivo.
- Procedimentais: Simular a feira com a turma como público.
- Atitudinais: Ganhar confiança e receber feedback construtivo ensaiar é a chave do sucesso!
📖 Conteúdo Programático
- Roteiro da apresentação: 3-4 minutos por grupo.
- Demonstração ao vivo do robô funcionando.
- Perguntas e respostas.
📜 Habilidades BNCC e RCP-PR
- EF04LP11 Apresentação oral
- Competência Geral 4 Comunicação
- RCP-PR Socialização do projeto e feedback
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
Robô deve estar 100% funcional para a demonstração. Verificar bateria, conexões, código carregado.
💻 Código a ser desenvolvido
Código final, testado e pronto para demo. Nenhuma alteração nova só verificar se está tudo funcionando.
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Roteiro escrito para a apresentação; apoio de um colega
- TDAH: Foco no roteiro e no robô; pausas entre as apresentações
- Deficiência visual: Apresentação descritiva; permitir tocar o robô
- Deficiência auditiva: Apoio visual e escrito; intérprete se possível
- Altas habilidades: Apresentar em inglês (opcional); fazer uma demonstração extra
📊 Critérios Operacionais de Avaliação
| Descrição | Critério | Pontuação |
|---|---|---|
| Explicou o projeto de forma compreensível | Clareza da apresentação | 0-4 |
| Robô executou a tarefa corretamente | Demonstração funcionando | 0-3 |
| Falou com segurança e entusiasmo | Postura e confiança | 0-3 |
| Total | 0-10 | |
📌 Título
"A Grande Feira de Robótica o dia em que o 4º ano mostrou a que veio"
🎯 Objetivos Operacionais
- Cognitivos: Consolidar todo o aprendizado do ano.
- Procedimentais: Apresentar os projetos para a comunidade escolar (outras turmas, pais, professores).
- Atitudinais: Celebrar as conquistas e reconhecer o esforço coletivo vocês são incríveis!
📖 Conteúdo Programático
- Exposição dos robôs em estações.
- Demonstração ao vivo para visitantes.
- Autoavaliação e avaliação dos pares.
- Entrega de certificados e premiações lúdicas.
📜 Habilidades BNCC e RCP-PR
- EF04MA01 / EF04MA26 Consolidação de habilidades matemáticas
- EF04LP11 Apresentação final
- Todas as Competências Gerais Aplicação prática do pensamento computacional
🧰 Materiais
🔧 Explicação Detalhada da Montagem do Hardware
Todos os robôs devem estar funcionando com bateria para demonstração contínua. Verificar:
- Baterias carregadas (pilhas novas)
- Conexões firmes
- Código carregado no micro:bit
💻 Código a ser desenvolvido
Código final dos projetos. Cada grupo deve ter o código salvo e, se possível, impresso para mostrar.
⏱️ Detalhamento Minuto a Minuto
♿ Orientações para Adaptações e Inclusão
- TEA: Estação com apoio de um colega para apresentar; ambiente calmo
- TDAH: Rodízio de visitantes para não sobrecarregar; pausas
- Deficiência visual: Descrição verbal do robô; permitir tocar (com cuidado)
- Deficiência auditiva: Apoio visual e escrito; intérprete se possível
- Altas habilidades: Estação com desafio extra para os visitantes (ex: "programe o robô agora!")
📊 Critérios Operacionais de Avaliação (Avaliação Final)
| Descrição | Critério | Pontuação |
|---|---|---|
| Executou a tarefa corretamente durante a feira | Funcionamento do robô | 0-3 |
| Explicou com clareza e entusiasmo | Apresentação para visitantes | 0-3 |
| Material bem organizado e bonito | Capricho do pôster e manual | 0-2 |
| Refletiu sobre o próprio aprendizado | Autoavaliação | 0-2 |
| Total | 0-10 | |
🏆 CERTIFICADO DE CONCLUSÃO
CERTIFICADO DE ENGENHEIRO(A) DE ROBÔS - 4º ANO
"PROJETO AUTORAL DE HARDWARE"
🤖 CERTIFICADO ROBÔMESTRES
Certificamos que
[NOME DO ALUNO]
concluiu com êxito o
4º ANO - ROBÓTICA EDUCACIONAL
Projeto Autoral de Hardware com micro:bit
Dominando os conceitos de:
🔧 HARDWARE (montagem e integração)
🧠
PENSAMENTO COMPUTACIONAL (algoritmos)
🔀
ESTRUTURAS DE DECISÃO
(SE/ENTÃO/SENÃO)
🔁 LOOPS E CONCORRÊNCIA (repetição e
eventos)
🐛 DEPURAÇÃO (caça aos bugs)
🤖 PROJETO AUTORAL (solução para problema
real)
RobôMestres do Paraná • 2026
"Engenheiro não nasce pronto, se constrói com loops, LEDs e muito café!"
Visualização ao selecionar aluno
Cadastro de Engenheiros(as)
📋 Lista de Engenheiros(as) 0
♿ ADAPTAÇÕES ESPECÍFICAS BIMESTRE 4
📌 Para TEA (Transtorno do Espectro Autista)
- Criar um cartão com os passos da aula: "1. Ouvir → 2. Montar → 3. Programar → 4. Testar"
- Fornecer uma lista de tarefas para cada semana: "□ Conectei o LED vermelho □ Conectei o LED verde □ Testei o buzzer"
- Explicar o que vai acontecer antes de cada atividade: "Agora vamos testar o robô. Vai fazer barulho. Pode ser alto."
- Designar um "amigo de robótica" para auxiliar
- Manter a mesma estrutura de aula todas as semanas
📌 Para TDAH (Transtorno do Déficit de Atenção com Hiperatividade)
- Dividir a montagem em etapas de 5 minutos com intervalos
- Usar um cronômetro na tela: "Vamos programar por 10 minutos!"
- Dar adesivos ou pontos a cada etapa concluída
- Permitir levantar, andar, esticar a cada 15 minutos
- Dar uma instrução por vez, não todas de uma só vez
📌 Para Deficiência Visual
- Descrever todos os componentes e conexões em voz alta
- Colar adesivos em relevo nos componentes (botão A, botão B, pinos)
- Usar o buzzer e a matriz (com sons) como forma de feedback
- Fluxograma e código em fonte grande
- Um colega descreve o que está acontecendo na tela
📌 Para Deficiência Auditiva
- Todas as instruções disponíveis por escrito
- Usar muitos diagramas, imagens, cores
- Intérprete de Libras, se disponível
- Usar LEDs e matriz em vez de sons para feedback
- Legendas em vídeos e apresentações
📌 Para Deficiência Física
- Usar pinos mais grossos ou adaptadores para facilitar a conexão
- Um colega ajuda na montagem física
- MakeCode tem opções de acessibilidade (teclado, etc.)
- Mesa na altura adequada
- Mais tempo para atividades manuais
📌 Para Altas Habilidades
- Adicionar um terceiro sensor, um motor, ou um modo "secreto"
- Criar um robô que resolve DOIS problemas ao mesmo tempo
- Ser tutor de outro grupo com dificuldade
- Apresentação em inglês (desafio extra)
- Criar um vídeo ou site sobre o projeto
📊 RUBRICA DE AVALIAÇÃO 4º BIMESTRE
| Insuficiente (0-4) | Critério | Excelente (9-10) | Bom (7-8) | Regular (5-6) |
|---|---|---|---|---|
| Não identificou um problema ou o problema não faz sentido | Identificação do problema | Identificou um problema real e relevante, com argumentos claros | Identificou um problema, mas com argumentos pouco convincentes | Identificou um problema trivial ou pouco relevante |
| Não fez fluxograma ou está totalmente incorreto | Planejamento e fluxograma | Fluxograma completo, lógico e bem desenhado | Fluxograma completo, mas com pequenas falhas de lógica | Fluxograma incompleto ou com falhas graves |
| Montagem incorreta ou não funcionou | Montagem do hardware | Montagem correta, organizada e criativa | Montagem correta, mas sem criatividade | Montagem com erros, mas funcionou parcialmente |
| Código não funciona ou não foi feito | Código (esqueleto) | Código completo, comentado e organizado | Código completo, mas com poucos comentários | Código incompleto ou com erros |
| Não usou aninhamento nem concorrência | Aninhamento e concorrência | Usou aninhamento e concorrência de forma correta e criativa | Usou aninhamento e concorrência, mas com pequenos erros | Usou apenas uma das estruturas |
| Não testou ou não corrigiu nada | Depuração e testes | Identificou e corrigiu todos os bugs | Identificou e corrigiu a maioria dos bugs | Identificou bugs, mas não corrigiu |
| Não fez melhorias | Melhorias (Robô 2.0) | Acrescentou melhorias funcionais e criativas | Acrescentou melhorias, mas simples | Tentou melhorias, mas não funcionaram |
| Não fez manual ou pôster | Manual e pôster | Manual e pôster completos, organizados e criativos | Manual e pôster completos, mas simples | Manual ou pôster incompletos |
| Não apresentou ou foi ininteligível | Apresentação | Apresentação clara, confiante e com demonstração funcionando | Apresentação clara, mas com pouca confiança | Apresentação confusa ou robô não funcionou |
| Não houve trabalho em equipe | Trabalho em equipe | Todos os membros participaram ativamente | A maioria participou | Apenas um ou dois participaram |
Cálculo da Nota Final: Somar as pontuações de cada critério (0-10) e dividir por 10 (número de critérios).
📚 REFERÊNCIAS BIBLIOGRÁFICAS (ABNT)
BRASIL. Ministério da Educação. Base Nacional Comum Curricular (BNCC). Brasília: MEC, 2018.
BRENNAN, K.; RESNICK, M. New frameworks for studying and assessing the development of computational thinking. In: Annual American Educational Research Association Meeting, 2012, Vancouver. Proceedings... Vancouver: AERA, 2012.
PARANÁ. Secretaria de Estado da Educação. Referencial Curricular do Paraná: Ensino Fundamental Anos Iniciais. Curitiba: SEED/PR, 2018.
PARANÁ. Secretaria de Estado da Educação. Robótica Paraná Primeiros Passos. Curitiba: SEED/PR, 2025. Disponível em: <https://aluno.escoladigital.pr.gov.br>. Acesso em: 20 jun. 2026.
RESNICK, M. Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play. Cambridge: MIT Press, 2017.
SILVA, J. R. Como Ensinar Projetos Autorais com Robótica no 4º Ano. Revista Brasileira de Robótica Educacional, v. 14, n. 2, p. 78-95, 2024.
WING, J. M. Computational Thinking. Communications of the ACM, v. 49, n. 3, p. 33-35, 2006.
🎉 FIM DO ANO LETIVO 4º ANO 🎉
Parabéns, professor(a)! Você e seus alunos completaram uma jornada de 40 semanas. Eles começaram acendendo um LED e terminaram construindo robôs que resolvem problemas reais. Eles erraram, aprenderam, depuraram e celebraram. Agora, eles não são mais apenas alunos são pequenos engenheiros, pensadores computacionais e agentes de transformação.
E você, professor(a), foi o arquiteto dessa jornada. Segurou a mão quando precisaram, deu autonomia quando puderam, e nunca subestimou a capacidade deles. Seu coração pode estar cansado, mas sua mente está cheia de orgulho.
Agora, vá descansar. Você merece. E, quem sabe, no ano que vem, eles programam o robô que vai buscar seu café... e ele nunca falha.
Até a próxima jornada, mestre(a) da robótica! 🚀🤖❤️