Semana 3
Dar instruções exatas
Transforme um trajeto num plano claro, passo a passo, e depois programe o robô para segui-lo à risca.
- 60 a 75 minutos
- Missão: Planejar uma sequência exata de comandos de avanço e curva, prever onde ela termina, e depois programar o robô para seguir um trajeto até o objetivo.
Os estudantes aprendem que os computadores seguem as instruções ao pé da letra e com exatidão: o robô faz o que você realmente mandou, não o que você quis dizer. Eles escrevem um algoritmo (um plano claro, passo a passo) como pseudocódigo em linguagem comum, e depois o transformam num programa feito de uma sequência direta de comandos de movimento, com tempo, distância e curvas. Preveem onde o robô vai parar antes de rodar o programa, e depois rodam e comparam. Esta é uma semana só de sequências: ainda não há laços de repetição, condições nem sensores, apenas comandos exatos e em ordem para levar o robô por um trajeto de entrega ou um labirinto até o objetivo.
Ao terminar esta semana, você vai conseguir
- Explicar que um programa é uma sequência de comandos que o computador segue em ordem, ao pé da letra e com exatidão
- Escrever um algoritmo como pseudocódigo (um plano claro, passo a passo, em linguagem comum) antes de programar
- Controlar o trajeto de um robô com comandos de distância, tempo e curva na ordem certa
- Prever onde o robô vai parar antes de rodar o programa, e depois conferir a previsão
- Programar o robô para seguir um trajeto de entrega ou um labirinto até o objetivo usando só uma sequência de comandos
Aprender
Computadores seguem instruções ao pé da letra
Um robô faz exatamente o que você manda, e não o que você quis dizer. Se você disser "ande para a frente" mas esquecer de dizer o quanto, o robô não consegue adivinhar; ele faz a coisa errada ou não faz nada. Computadores são rápidos e incansáveis, mas não têm bom senso.
Essa é a ideia mais importante da semana. Quando um robô se comporta mal, quase sempre ele está seguindo as suas instruções direitinho: as suas instruções é que não eram o que você queria.
Por exemplo: "Faça um sanduíche" dá errado se você não disser "abra o pacote de pão primeiro"; Um robô mandado "virar" sem dizer o quanto gira demais ou de menos; "Vá até a porta" não diz nada a um robô: ele precisa de "ande 3 casas, vire à esquerda"
Um programa é uma sequência de comandos
Um programa é uma lista de comandos que o robô executa um depois do outro, de cima para baixo. Cada comando é uma instrução pequena, como "ande para a frente" ou "vire à direita". Executá-los em ordem se chama sequência.
A ordem importa. "Vire à direita e depois ande para a frente" manda o robô para um lugar completamente diferente de "ande para a frente e depois vire à direita", mesmo sendo os mesmos comandos.
Por exemplo: ande 2 casas -> vire à direita -> ande 1 casa; Trocar dois comandos de lugar muda onde o robô termina
Eventos disparam um programa
Um programa não roda até que alguma coisa o dispare. Esse momento de partida se chama evento: apertar um botão "Iniciar", tocar num bloco de "ao tocar" ou clicar em Rodar no simulador.
Nesta semana, todo programa tem um evento no topo que dispara a sequência, e depois os comandos rodam direto, em ordem.
Por exemplo: "Ao apertar Iniciar" no topo do programa; Clicar em Rodar no simulador; Tocar no botão de partida no aplicativo do kit
Algoritmos e pseudocódigo: planeje antes de programar
Um algoritmo é um plano claro, passo a passo, para uma tarefa, com cada passo explicado e nada deixado vago. Antes de escrever código de verdade, quem programa escreve primeiro o plano em linguagem comum: esse plano em linguagem comum se chama pseudocódigo.
O pseudocódigo deixa você pensar no trajeto sem ainda brigar com os blocos. Você pode escrever "ande 3, vire à esquerda, ande 2, pare", conferir se faz sentido, e só então montar com comandos.
Por exemplo: Pseudocódigo: "ande 3 casas, vire 90 à esquerda, ande 2 casas, pare"; Um algoritmo não tem passos faltando nem buracos do tipo "você entendeu o que eu quis dizer"
Controlar a distância com tempo, velocidade e curvas
Nesta semana você dirige o robô com três ferramentas: o quanto ele anda (distância), quanto tempo esse movimento dura (tempo) e o quanto ele gira (curva). Em muitos kits, a distância vem da combinação de tempo e velocidade: mais velocidade por mais tempo cobre mais terreno.
As curvas giram o robô no lugar, normalmente em graus. Uma curva de 90 graus é um quarto de volta (um ângulo reto) e deixa o robô alinhado com o próximo trecho do trajeto. Acertar o tamanho da curva é o que mantém o robô na rota.
Por exemplo: ande na velocidade 50 por 2 segundos; vire 90 graus à direita para ficar de frente para o próximo corredor; meia volta = 180 graus para voltar pelo mesmo caminho
Preveja antes de rodar
Antes de rodar um programa, faça uma previsão: percorra a sequência com o dedo e marque onde você acha que o robô vai parar e para que lado ele vai estar virado. Se comprometer com um palpite antes deixa óbvio quando um passo está errado.
Depois rode e compare. Se o robô terminar em outro lugar, a diferença mostra exatamente qual comando corrigir: talvez uma curva fosse de 90 quando precisava ser 180, ou um avanço tenha ficado uma casa curto.
Por exemplo: Previsão: "termina na estrela, virado para cima"; Se ele parar uma casa antes, um comando de distância está pequeno demais
Palavras para conhecer
- Programa:
- Uma lista de instruções que um computador segue para fazer um trabalho. Nesta semana, um programa é uma sequência de comandos de movimento.
- Comando:
- Uma única instrução que o robô consegue cumprir, como "ande para a frente" ou "vire à direita".
- Sequência:
- Comandos executados um depois do outro, em ordem, de cima para baixo. A ordem importa.
- Algoritmo:
- Um plano claro, passo a passo, para realizar uma tarefa, sem passos faltando nem passos vagos.
- Pseudocódigo:
- Escrever os passos de um plano em linguagem comum antes de transformá-los em código de verdade.
- Evento:
- O momento que dispara um programa, como apertar "Iniciar" ou um bloco de "ao tocar".
- Tempo:
- Quanto dura um comando, medido em segundos: um jeito de controlar até onde o robô vai.
- Distância:
- O quanto o robô anda num comando, muitas vezes indicado em centímetros ou em casas da grade.
- Curva:
- Um comando que gira o robô no lugar, normalmente por um número fixo de graus, como 90.
- Velocidade:
- O quão rápido os motores funcionam. Mais velocidade cobre mais distância no mesmo tempo.
- Previsão:
- O seu melhor palpite sobre onde o robô vai parar, feito antes de rodar o programa.
Segurança em primeiro lugar
Leia isto antes de montar ou colocar um robô para funcionar nesta semana.
- Caution:Mantenha dedos, cabelo e roupas soltas longe das rodas enquanto o robô roda o programa dele.
- Caution:Deixe o trajeto no chão livre de pés, mochilas e pernas de cadeira antes de rodar, para o robô ter uma rota segura.
- Note:Ande devagar na grade do chão quando estiver fazendo o papel do robô, para ninguém tropeçar.
- Note:Dê uma pausa curta na tela se os seus olhos cansarem durante o uso do simulador.
Mãos à obra
Escolha o seu caminho
Dá para fazer este curso com um kit de robótica, com o simulador no navegador, ou sem eletrônicos, com materiais de casa. Escolha um: você pode trocar quando quiser sem perder o seu trabalho.
Desafio de programação do trajeto de entrega
Kit de robóticaProgramar o robô para seguir um trajeto ou labirinto da largada até o objetivo usando só uma sequência de comandos exatos de avanço e curva.
- Olhe o mapa e ache a largada, o objetivo e as paredes ou curvas ao longo do trajeto. Primeiro percorra a rota com o dedo.
- Escreva o plano como pseudocódigo em linguagem comum (avanços, curvas e distâncias em ordem) antes de montar qualquer coisa. Mantenha uma sequência direta: nesta semana não há laços, nem verificações, nem sensores.
- Transforme o pseudocódigo em comandos, rode, e se o robô errar o objetivo, conserte exatamente o comando que estava errado.
Percorra o trajeto de entrega com o robô do seu kit
Você precisa de: w3-m5, w3-m6, w3-m1, w3-m2
Passos
- 1Marque com fita um trajeto no chão, com uma casa de largada, uma de objetivo e uma ou duas curvas. Coloque o objeto pequeno na largada, como sendo a entrega.
- 2Percorra a rota e escreva o pseudocódigo: por exemplo, "ande 40 cm, vire 90 à direita, ande 20 cm, pare".
- 3Meça ou cronometre um avanço para descobrir o quanto o robô anda, e depois preencha as distâncias ou os tempos reais.
- 4Monte a sequência de comandos no aplicativo, aperte Iniciar (o evento) e veja o robô seguir o trajeto.
- 5Se ele errar o objetivo, mude só o comando que estava fora (o tamanho de uma curva ou a distância de um avanço) e rode de novo.
Como é quando dá certo: O robô segue a sequência da largada até o objetivo e para na casa do objetivo com a entrega.
- O pseudocódigo foi escrito antes de programar
- O programa é uma sequência direta de comandos de avanço e curva
- O robô chega ao objetivo e para lá
Segurança: Mantenha dedos, cabelo e roupas soltas longe das rodas enquanto o robô anda. Deixe a área do trajeto livre para o robô não esbarrar em pés nem em pés de mesa.
Se não funcionar
- O robô passa do objetivo ou para antes dele
- - Ajuste a distância ou o tempo daquele comando de avanço; uma mudança pequena em segundos já o move bastante.
- O robô gira demais ou de menos
- - Confira os graus da curva (tente 90 para um quarto de volta) e confirme se é para a esquerda ou para a direita.
Vá além: Acrescente uma segunda entrega: estenda a sequência para o robô seguir até uma segunda casa de objetivo depois da primeira.
Preveja e depois teste o final
Kit de robóticaPrever onde o robô vai parar e para que lado vai estar virado antes de rodar uma sequência dada, e depois rodar e comparar.
- Pegue uma sequência curta de comandos e percorra-a à mão no mapa. Marque no papel onde você acha que o robô termina e para que lado ele fica virado.
- Comprometa-se com a sua previsão antes de rodar qualquer coisa: escreva primeiro.
- Rode o programa, compare o final real com a sua previsão e explique qualquer diferença apontando o comando que a causou.
Preveja onde o robô do seu kit vai parar
Você precisa de: w3-m5, w3-m1, w3-m3
Passos
- 1Pegue uma sequência de 4 a 6 comandos (a sua ou uma que lhe deram) e percorra-a no trajeto marcado com fita.
- 2Na folha de registro, marque a casa em que você prevê que o robô vai parar e para que lado ele vai ficar virado.
- 3Rode a sequência e marque onde o robô parou de verdade.
- 4Compare: se houver diferença, aponte o comando (uma curva ou uma distância) que explica essa diferença.
Como é quando dá certo: Uma previsão escrita ao lado do ponto real de parada, com um motivo para qualquer diferença.
- A previsão foi escrita antes de rodar
- O final real foi registrado
- Qualquer diferença é explicada apontando um comando
Segurança: Fique longe das rodas enquanto o robô faz o teste de previsão.
Se não funcionar
- A previsão e o resultado ficam bem longe um do outro toda vez
- - Meça de novo o quanto um comando de avanço realmente move o robô; a sua estimativa de distância está fora.
Vá além: Preveja o final de uma sequência que tenha três curvas.
Programe o robô
Build a program from blocks, then run it on the simulator. On the kit path, use the same steps in your robot's app; unplugged, act the blocks out on a floor grid. Your program saves on this device.
Sequência do trajeto de entrega
Uma sequência direta de comandos de avanço e curva que leva o robô da largada até a casa do objetivo. Só sequência: sem laços, condições nem sensores.
Adicionar um bloco
Eventos e execução
Movimento
Variáveis e contadores
O seu programa
- Andar
- Robô (a seta aponta para onde ele olha)
- Zona de objetivo (contorno tracejado)
Mapa: Uma grade de 5 por 1. O robô começa na coluna 1, linha 1, virado para direita. A zona de objetivo fica na coluna 5, linha 1.
Pronto.
Pronto para rodar. · 0 steps
Estado do robô
- Coluna
- 1
- Linha
- 1
- Virado para
- direita
- Distância à frente
- 4 casas
- Toque
- livre
- Em cima de uma linha
- não
- Luz
- 80
- Na zona de objetivo
- não
- Colisões
- 0
- Passos
- 0
Robô na coluna 1, linha 1, virado para direita. Distância à frente: 4 casas. Toque: livre. Em cima de uma linha: não. Luz: 80. Fora da zona de objetivo.
Saída do log
Nada registrado ainda.
- Heads up: This program has no safe stop behavior. Add a safe stop so the robot stops when it is done or blocked.
Desafio de sequência no labirinto
Planeje uma sequência ordenada de comandos de avanço e curva que leve o robô ao redor da parede até o objetivo e depois pare. Preveja o final antes de rodar. Só sequência: sem laços, condições nem sensores.
Adicionar um bloco
Eventos e execução
Movimento
Variáveis e contadores
O seu programa
- Andar
- Robô (a seta aponta para onde ele olha)
- Zona de objetivo (contorno tracejado)
- Parede (cinza, com um X)
Mapa: Uma grade de 3 por 3. O robô começa na coluna 1, linha 1, virado para direita. A zona de objetivo fica na coluna 3, linha 3. Há 1 parede.
Pronto.
Pronto para rodar. · 0 steps
Estado do robô
- Coluna
- 1
- Linha
- 1
- Virado para
- direita
- Distância à frente
- 0 casas
- Toque
- pressionado
- Em cima de uma linha
- não
- Luz
- 80
- Na zona de objetivo
- não
- Colisões
- 0
- Passos
- 0
Robô na coluna 1, linha 1, virado para direita. Distância à frente: 0 casas. Toque: pressionado. Em cima de uma linha: não. Luz: 80. Fora da zona de objetivo.
Saída do log
Nada registrado ainda.
- Heads up: This program has no safe stop behavior. Add a safe stop so the robot stops when it is done or blocked.
Preveja
Commit to a guess before you test - then see how close you were. Your predictions save automatically.
Como conferir: Rode a sequência, marque a casa e a direção reais em que ele parou, e compare com a sua previsão na folha de registro.
Como conferir: Conte os comandos da sua sequência final já funcionando e compare com o seu palpite.
Testar e melhorar
Registro de final previsto x final real
A cada tentativa, escreva a casa final que você prevê antes de rodar, depois rode a sequência e registre onde o robô terminou de verdade. Anote qual comando você mudou para a tentativa seguinte.
O que medir: A posição final prevista contra a posição final real ao longo das tentativas
| Tentativa | Casa final prevista | Casa final real | Comando mudado para a próxima tentativa |
|---|---|---|---|
Verificação de aprendizagem
Responda a estas perguntas para conferir se você entendeu sequências, algoritmos, pseudocódigo e como controlar o trajeto do robô.
1. Coloque estes passos na ordem certa para programar o robô a fazer uma tarefa.
Use as setas para colocar em ordem.
- 1Escrever os passos como comandos exatos
- 2Rodar o programa no robô
- 3Conferir se ele fez o que você esperava
- 4Planejar os passos como um algoritmo
2. O robô começa virado para cima. Percorra este programa. Para que lado ele fica virado no final?
vire à direita vire à direita vire à esquerda
3. O seu robô fez a coisa errada mesmo tendo rodado o seu programa inteiro. O que provavelmente aconteceu?
4. O que é uma sequência?
5. O que é pseudocódigo?
6. O seu robô chega ao ponto certo, mas fica virado para o lado errado. Que comando você deve conferir?
7. Num kit que funciona por tempo, como você faria o robô percorrer mais distância num único comando de avanço?
0 de 7 respondidas
Refletir
As suas reflexões são salvas sozinhas.
O que vem na semana que vem
Semana que vem o robô ganha sentidos: vamos acrescentar um sensor para ele perceber o mundo em vez de só rodar uma sequência fixa.
- Guarde o seu melhor pseudocódigo de entrega; você vai comparar uma sequência fixa com um robô que reage.
- Carregue o seu kit ou salve o simulador nos favoritos, e ache as suas peças de sensor se você estiver no caminho do kit.
- Pense numa vez em que um conjunto fixo de passos deu errado porque alguma coisa no caminho mudou.
Termine a semana 3
Conclua estes itens para encerrar a semana e desbloquear a próxima:
- Escrever o pseudocódigo do seu trajeto de entrega antes de programar (not done yet)
- Programar uma sequência que chegue ao objetivo (not done yet)
- Prever um final e registrar previsto x real (not done yet)
- Acertar pelo menos 4 de 5 na verificação de aprendizagem (not done yet)
- Escrever a sua reflexão (not done yet)