Teach lesson
Robô Arduino Visual (3/4): sensores de proximidade sem colisões
Os estudantes leem sensores de proximidade, escolhem um limiar a partir de observações e programam uma reação segura antes de o robô colidir.
Learning Outcomes
Ler sensores de proximidade antes de tomar uma decisão.
Calibrar um limiar simples a partir de observações.
Programar uma reação segura diante de um obstáculo próximo.
Student activity preview
Activity Content
Preview only. In a class session, students can fill in responses and submit their work to the teacher.
Sensor antes da decisão
8 min
O sensor não decide sozinho. O programa lê, compara com um limiar e escolhe uma reação segura.
Um sensor é um componente que mede algo do ambiente e devolve uma
leitura (um número). O sensor não "sabe" o que fazer; o programa decide. Neste
robô, o sensor de proximidade devolve um número aproximado de 1 a 6:
1 = objeto muito longe e 6 = objeto muito perto (quanto mais perto está o
objeto, maior é a leitura).
Um limiar é o número de corte que separa "seguro" de "perto demais". O
programa:
1. Lê os sensores.
2. Compara a leitura com um limiar.
3. Escolhe uma reação.
4. Observa se a reação foi segura.
Se uma leitura de proximidade aumenta quando um objeto está mais perto, o que significa usar a condição leitura >= 3? Por que não convém escolher o limiar sem observar primeiro?
Medir antes de reagir
20 min
A serial (comunicação serial) é um canal de texto do robô para sua tela:
serve para mostrar a leitura do sensor como número. Se no seu laboratório a saída
serial não aparecer, tudo bem: na próxima seção você calibrará o limiar
observando o LED do robô, sem precisar de números.
Abra o robô visual e use o robô recomendado.
Configure a comunicação serial.
No laço principal, coloque
Ler sensores de proximidade.Leia um valor com
Sensor central detectar à sua esquerda(é a opção padrão desta sessão; mede a proximidade pelo lado esquerdo do sensor central).Escreva a leitura pela serial.
Espere
300a500ms para conseguir ler as mudanças.Verifique, envie e observe leituras com o robô perto e longe de um obstáculo.
Imagem e referência para medir:
Antes de usar mensagens:
[Configuração] Serial velocidade 9600
No laço principal:
[Ler sensores de proximidade]
[Escrever]
Sensor central detectar à sua esquerda
ou
Sensor central detectar à sua direita
[Esperar] 300 milissegundos
A ordem importa: se você consultar o valor antes de Ler sensores de proximidade, pode usar uma leitura antiga.
Preencha a tabela enquanto calibra. Use pelo menos três linhas: uma com o
objeto longe, uma a distância média e uma perto; deixe as linhas extras vazias.
Em cada linha, anote a situação, o lado do sensor usado, o número ou reação do
LED, se o robô deveria reagir e qualquer nota útil para escolher o limiar.
| Situação observada | Sensor usado | Leitura (número, ou onde o LED reage) | Deveria reagir? | Notas |
|---|---|---|---|---|
Escolha um limiar provisório para distinguir "seguro" e "perto demais". Justifique com uma leitura da sua tabela.
Programar uma reação segura
18 min
Programe uma regra simples:
- Se a leitura for maior ou igual ao seu limiar: motores em 0, LED vermelho aceso e mensagem obstaculo.
- Se a leitura for menor que seu limiar: avançar devagar com 125 ou 150, LED azul aceso e mensagem livre.
Não tente desviar de todos os obstáculos. Nesta prática basta que o robô avise ou pare antes de colidir em uma situação visível.
Imagem e referência para reagir:
No laço principal:
[Ler sensores de proximidade]
se [Sensor central detectar à sua esquerda >= limiar]:
[Alterar velocidade dos motores]
Esquerdo: 0
Direito: 0
[Definir LED] vermelho [como] HIGH
[Definir LED] azul [como] LOW
[Escrever] "obstaculo"
senão:
[Alterar velocidade dos motores]
Esquerdo: 125
Direito: 125
[Definir LED] azul [como] HIGH
[Definir LED] vermelho [como] LOW
[Escrever] "livre"
Se você mudar para outro sensor (por exemplo, detectar à sua direita), mude apenas a leitura do sensor, não toda a estrutura do programa.
Calibrar com o LED (se a saída serial não aparecer): este mesmo programa
serve para calibrar sem números. Comece com um limiar (por exemplo, 3). Aproxime
e afaste um objeto do sensor e observe a que distância o LED vermelho acende. Se
ele acender longe demais, aumente o limiar; se só acender quando o robô quase
colidir, diminua o limiar. Repita até que o vermelho ative na distância desejada.
A reação ocorreu cedo demais, tarde demais ou no momento adequado? Indique o que você mudaria: limiar, velocidade ou tempo de espera.
Descreva uma limitação deste sensor ou do seu teste. Por exemplo: objeto mal posicionado, leitura instável, robô em outra posição ou falta de tempo de câmera.
Entrega de evidência
9 min
Programa de reação por proximidade
Entregue seu limiar, uma captura ou descrição do programa e uma observação de um teste em que o robô reagiu ou deveria ter reagido.