Aula 2 — Sensores¶
Duração: 50 minutos · Turma: já fez a Aula 1
Objetivo¶
No fim da aula, todo aluno sabe ler um sensor em loop e calibrar manualmente um limiar — a base de qualquer robô que reage ao ambiente.
Pré-requisitos¶
- Aula 1 — sabe rodar
RoboEV3, com ou sem hardware - Sensor de cor e ultrassônico disponíveis por grupo (com robô
físico) ou
ConexaoFalsaconfigurada (ver sem-robo.md)
Material¶
- Fita preta e superfície clara (ou o contrário) pra testar o sensor de cor, se tiver robô físico
- Um objeto qualquer (livro, caixa) pra testar o ultrassônico
Roteiro¶
0–5 min — Recapitular + o problema de hoje Pergunta: "como o robô sabe que tem uma linha preta no chão?" — leva pro conceito de sensor devolvendo número, não "sim/não" mágico.
5–20 min — Leitura única, várias vezes Cada aluno/grupo roda:
from jacarev3 import RoboEV3, protocolo as p
with RoboEV3('00:16:53:64:F8:B8') as robo:
for _ in range(10):
print(robo.ler_sensor(1, p.MODO_COR_REFLETIDA))
Move o sensor entre claro e escuro enquanto o loop roda, anota os números que aparecem. Isso é literalmente o Nível 2 de básico.
20–35 min — Calibrar de verdade Introduz o conceito de limiar: a média entre o valor no claro e no escuro. Cada grupo calcula o próprio (não usa um número genérico — iluminação da sala muda o valor real):
claro = float(input("Valor no claro: "))
escuro = float(input("Valor no escuro: "))
limiar = (claro + escuro) / 2
print(f"Seu limiar: {limiar}")
Ou já usa a versão pronta: jacarev3.topicos.circuito.calibrar() (só
mostra depois de todo mundo ter feito na mão pelo menos uma vez — o
objetivo é entender o cálculo, não só chamar a função).
35–45 min — Mesma coisa com o ultrassônico Repete o padrão pro sensor de distância — sem "limiar" dessa vez, só confirma a leitura em cm com o objeto em 3 distâncias diferentes.
45–50 min — Fechamento
Pergunta de saída: "o limiar de vocês vai funcionar na mesa do colega
do lado?" — normalmente não, e é esse o gancho pra próxima aula (por
que seguir_linha() calibra sozinha por padrão).
Falhas comuns¶
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| Leitura sempre igual, não muda | Sensor no modo errado (MODO_COR_COR em vez de MODO_COR_REFLETIDA) |
Confere a constante usada |
| Ultrassônico lendo valor gigante/estranho | Nada na frente pra refletir o sinal | Normal, é o "infinito" do sensor |
ErroDePorta |
Confundiu porta de sensor (número) com motor (letra) | Ver a mensagem de erro — ela já diz qual é qual |
Rubrica¶
- [ ] Leu sensor em loop e observou o valor mudar
- [ ] Calculou o próprio limiar (não copiou um número de exemplo)
- [ ] Sabe explicar por que o limiar de um grupo pode não servir pro outro