1) O documento descreve exercícios introdutórios para o sensor de ultrassons do Lego Mindstorms EV3, incluindo como medir distâncias e detectar obstáculos.
2) São apresentados três exercícios de programação usando o sensor de ultrassons para fazer o robô seguir em linha reta, reclamar quando encontrar um obstáculo, e manter distância de um obstáculo.
3) O sensor de ultrassons mede distâncias enviando ondas sonoras e mede o tempo até sua reflexão, permitindo aplicações como ev
1. Clube de Programação e Eletrónica
5
Lego Ev3 – Exercícios introdutórios
PROJETO LEGO MINDSTORMS EV3
Exercícios introdutórios
1. O sensor de ultrassons
O Sensor de ultrassons
O sensor de ultrassons mede a distância a um objeto que se encontre à sua frente. Fá-lo enviando som na frequência dos
ultrasons e medindo o tempo que a onda sonora demora a voltar ao sensor depois de ser refletida por um objeto. Não é possível
ouvirmos o som que este sensor emite porque o ouvido humano não está preparado para detetar sons de frequências tão
elevadas.
A medida feita pelo sensor pode ser feita em centímetros ou em polegadas (1 polegada = 2,54 cm).
Com este sensor podemos, por exemplo, fazer parar o nosso robô a uma dada distância de uma parede. Também o podemos
usar para detetar a presença de outro sensor de ultrassons a operar na vizinhança.
O sensor de ultrassons pode fornecer os seguintes dados:
Dados Tipo Alcance Notas
Distância em centímetros1
Numérico 0 a 255 Distância ao objeto em centímetros
Distância em polegadas Numérico 0 a 100 Distância ao objeto em polegadas
Deteção de ultrassons Lógico Verdade / falso (True /false) Verdade se outro sensor de ultrassons for detetado.
1
Talvez por estar descalibrado, o sensor usado nestes exercícios apresentava como resultado valores em milímetros, não em centímetros, pelo que os valores indicados nos exercícios
devem ser divididos por 10 em caso de sensores que estejam a fazer medidas de facto em centímetros.
O bloco de programação do sensor de ultrassons não está automaticamente disponível no software EV3. Há que fazer o
download do bloco de programação a partir daqui: http://www.lego.com/en-us/mindstorms/downloads
Depois de feito o download, procede-se à importação do bloco a partir do software do EV3 através do menu Tools
Block Import
2. Clube de Programação e Eletrónica
6
Lego Ev3 – Exercícios introdutórios
1.2. O bloco de programação do sensor de ultrassons
1. Seleção da porta onde está ligado o sensor (Port seletor)
2. Seleção do modo de funcionamento (Mode selector)
3. Entradas (Inputs)
4. Saídas (Outputs)
Parâmetros configuráveis:
1. Seleção do modo de funcionamento:
Modo Função Bloco Modo Função Bloco
Measure –
Distance -
Centimeters
Retorna à saída o valor da distância em
centímetros
Measure –
Distance -
Inches
Retorna à saída o valor da distância em
polegadas
Measure –
Presence /
Compare -
Presence
Neste modo, o sensor de ultrassons
“ouve” os sinais enviados por outro
sensor de ultrassons em modo “listen
only”.
Retorna à saída o valor Verdade se for
detetado um sinal; caso contrário,
retorna à saída o valor Falso.
Advanced -
Centimeters
Idêntico ao modo Measure – Distance –
Centimeters, mas neste modo é possível
escolher se o sensor está a enviar um
impulso de ultrassom ou um sinal
contínuo. Para além do valor da
distância em centímetros, este bloco
retornará na saída Ultrasound detected
3. Clube de Programação e Eletrónica
7
Lego Ev3 – Exercícios introdutórios
o valor Verdadeiro se um sinal for
detetado e, caso contrário, o valor falso.
Compare –
Distance -
Centimeters
Neste modo, é feita a comparação
entre a distância em centímetros e um
valor pré-determinado (threshold
value) através do tipo de comparação
(Compare type). Retorna à saída
Compare result um sinal de Verdadeiro
/ Falso (True/False). Retorna à saída
Distance in centimeters o valor da
distância em centímetros.
Compare –
Distance -
Inches
Idêntico ao modo Compare – Distance –
Centimeters, mas medindo os valores
da distância em polegadas.
Advanced -
Inches
Idêntico ao modo Advanced -
Centimeters, mas medindo os valores
da distância em polegadas.
4. Clube de Programação e Eletrónica
8
Lego Ev3 – Exercícios introdutórios
1.3. Programando com o sensor de ultrassons
1.3.1. Fazer curva perante um obstáculo
Blocos usados:
Iniciar Mover a direção Esperar Loop
Objetivo:
Criar um programa que faça o robô seguir em linha reta até que encontre um obstáculo. Quando tal acontecer, deve fazer uma curva e continuar a andar em linha reta.
Solução possível:
5. Clube de Programação e Eletrónica
9
Lego Ev3 – Exercícios introdutórios
1.3.2. “Reclamar” para que o caminho seja desobstruído
Blocos usados:
Iniciar Mover
a
direção
Esperar Loop Som
Objetivo:
Criar um programa que faça o robô seguir em linha reta até que encontre um obstáculo. Quando tal acontecer, deve fazer para enquanto emite um som. Depois do
obstáculo se mover deve continuar em linha reta.
Solução possível:
6. Clube de Programação e Eletrónica
10
Lego Ev3 – Exercícios introdutórios
1.3.3. Manter a distância
Blocos usados:
Iniciar Mover
a
direção
Loop Switch
Objetivo:
Criar um programa que faça o robô manter a
distância de um obstáculo que se aproxime ou
se afaste (uma pessoa, por exemplo). Quando
algo ou alguém se aproximar, o robÓ deve
afastar-se; quando algo ou alguém se afastar, o
robô deve aproximar-se.
Solução possível: