Ir para o conteúdo

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ótica

Programar 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

  1. 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.
  2. 2Percorra a rota e escreva o pseudocódigo: por exemplo, "ande 40 cm, vire 90 à direita, ande 20 cm, pare".
  3. 3Meça ou cronometre um avanço para descobrir o quanto o robô anda, e depois preencha as distâncias ou os tempos reais.
  4. 4Monte a sequência de comandos no aplicativo, aperte Iniciar (o evento) e veja o robô seguir o trajeto.
  5. 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.

Fique de olho em:
  • 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ótica

Prever 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

  1. 1Pegue uma sequência de 4 a 6 comandos (a sua ou uma que lhe deram) e percorra-a no trajeto marcado com fita.
  2. 2Na folha de registro, marque a casa em que você prevê que o robô vai parar e para que lado ele vai ficar virado.
  3. 3Rode a sequência e marque onde o robô parou de verdade.
  4. 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.

Fique de olho em:
  • 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.

Pronto

Adicionar um bloco

Eventos e execução

Movimento

Variáveis e contadores

Nenhuma ainda.

O seu programa

  • Andar
Coluna 1, linha 1Coluna 2, linha 1Coluna 3, linha 1Coluna 4, linha 1Coluna 5, linha 1Goal zone at column 5, row 1Robot at column 1, row 1
  • 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.

Pronto

Adicionar um bloco

Eventos e execução

Movimento

Variáveis e contadores

Nenhuma ainda.

O seu programa

  • Andar
Coluna 1, linha 1Coluna 2, linha 1: paredeColuna 3, linha 1Coluna 1, linha 2Coluna 2, linha 2Coluna 3, linha 2Coluna 1, linha 3Coluna 2, linha 3Coluna 3, linha 3Goal zone at column 3, row 3Robot at column 1, row 1
  • 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

TentativaCasa final previstaCasa final realComando 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. 1. Coloque estes passos na ordem certa para programar o robô a fazer uma tarefa.

    Use as setas para colocar em ordem.

    1. 1Escrever os passos como comandos exatos
    2. 2Rodar o programa no robô
    3. 3Conferir se ele fez o que você esperava
    4. 4Planejar os passos como um algoritmo
  2. 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. 3. O seu robô fez a coisa errada mesmo tendo rodado o seu programa inteiro. O que provavelmente aconteceu?

  4. 4. O que é uma sequência?

  5. 5. O que é pseudocódigo?

  6. 6. O seu robô chega ao ponto certo, mas fica virado para o lado errado. Que comando você deve conferir?

  7. 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)