Lição do Teach
Robô Arduino Visual (2/4): botões, LEDs e modos
Os estudantes usam botões A/B/C como entradas, LEDs e mensagens seriais como saídas, e uma variável de modo para lembrar o estado do robô.
Entre com uma conta de professor para preparar uma sessão. Os estudantes entram com um código da turma.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor
Objetivos de aprendizagem
Usar botões do robô como entradas de decisão.
Usar LEDs e mensagens seriais para comunicar o estado do robô.
Criar um programa com modos simples e comportamento seguro.
Visualização da atividade do estudante
Conteúdo da atividade
Apenas visualização. Em uma sessão de aula, os estudantes podem preencher respostas e entregar o trabalho ao professor.
Desenhar os modos
8 min
Um botão é uma entrada. A variável modo lembra a escolha, e o robô mostra uma saída visível com LEDs, serial ou motores.
Um robô não apenas se move: ele também pode ter estados. Por exemplo:
- Modo espera: motores parados, LED vermelho.
- Modo pronto: motores parados, LED azul.
- Modo teste: movimento muito curto e volta a parar.
Desenhe três modos para seu robô usando os botões A, B e C. Para cada modo, indique qual LED acende, se há mensagem pela serial e se o robô se move ou fica parado.
Programar entradas e saídas
24 min
Antes de qualquer exemplo, configure Serial em 9600 com um bloco separado na área de trabalho e Button A como buttonA, Button B como buttonB e Button C como buttonC. Ambos os motores permanecem em 0 durante esta aula de LEDs e estados.
Abra o robô visual e use o robô recomendado
any-circuit.Configure os botões:
Botão A como botaoA,Botão B como botaoB,Botão C como botaoC.No laço principal, use blocos
se... então.Se
botaoA está pressionado, acenda o LED vermelho e apague o azul.Se
botaoB está pressionado, acenda o LED azul e apague o vermelho.Se
botaoC está pressionado, coloque os dois motores em0, apague os dois LEDs e escrevaparadopela serial.Verifique, envie e teste cada botão pela interface do robô.
Referência em texto:
Blocos de configuração:
[Botão] A [como] botaoA
[Botão] B [como] botaoB
[Botão] C [como] botaoC
No laço principal:
se [botaoA está pressionado]:
[Definir LED] vermelho [como] HIGH
[Definir LED] azul [como] LOW
se [botaoB está pressionado]:
[Definir LED] azul [como] HIGH
[Definir LED] vermelho [como] LOW
se [botaoC está pressionado]:
[Alterar velocidade dos motores]
Esquerdo: 0
Direito: 0
[Definir LED] vermelho [como] LOW
[Definir LED] azul [como] LOW
[Escrever] "parado"
O bloco Botão ... como ... cria o nome do botão. Depois, os blocos está pressionado podem usar esse nome. Use está pressionado (verifica se o botão está pressionado naquele instante); para que seja percebido, mantenha o botão pressionado enquanto o programa faz a verificação no laço.
Preencha a tabela depois de testar os botões. Use uma linha para cada botão testado: A, B e C. Se a tabela mostrar linhas extras vazias, deixe-as vazias. Em cada linha, anote o modo previsto, o LED que você viu, a mensagem serial se apareceu e se o resultado foi seguro.
| Botão | Modo previsto | LED observado | Mensagem serial | Resultado seguro |
|---|---|---|---|---|
Por que é preciso configurar primeiro um botão antes de usar o bloco que verifica se ele está pressionado?
Adicionar uma variável de modo
15 min
Como melhoria, adicione uma variável chamada modo (categoria Variáveis). Uma variável é uma "caixa" com nome que guarda um valor e o lembra. Dê um valor inicial ao começar (por exemplo, modo = "espera"): assim o robô tem um estado desde o princípio. Se você não der valor inicial, a variável fica vazia até você pressionar um botão e nenhuma mudança será vista. Cada botão altera o valor:
- Ao pressionar A,
modo = "espera". - Ao pressionar B,
modo = "pronto". - Ao pressionar C,
modo = "parado".
Depois use modo para decidir qual LED ou mensagem mostrar.
Referência em texto:
Configuration: Button A as buttonA; Button B as buttonB; Button C as buttonC
Setup Serial speed 9600 (separate workspace block)
Arduino run first:
set mode to "waiting"
Change two motors speed: Left 0, Right 0
Arduino loop forever:
if buttonA is pressed: set mode to "waiting"
if buttonB is pressed: set mode to "ready"
if buttonC is pressed: set mode to "stopped"
Change two motors speed: Left 0, Right 0
if mode = "waiting": red LED HIGH; blue LED LOW
if mode = "ready": red LED LOW; blue LED HIGH
if mode = "stopped": red LED LOW; blue LED LOW
print mode
wait 100 millisecondsExplique qual é a vantagem de lembrar o modo com uma variável em vez de apenas verificar se o botão está pressionado naquele instante.
Se ao pressionar um botão nada mudar, escreva três verificações ordenadas que você faria antes de pedir ajuda.
Entrega breve
8 min
Mapa de modos do robô
Entregue seu mapa de modos e uma evidência de pelo menos dois botões funcionando. Pode ser captura do programa, tabela de observação ou explicação com resultados.
Transforme esta visualização em uma sessão de aula
Continue para o LabsLand Teach para usar esta lição com seus estudantes e conferir o acesso disponível para sua conta.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor