Sin título de diapositiva

Anuncio
Robótica en el Aula
Manejo de Sensores
Gabriel Ocaña Rebollo
Ingeniero Superior de Telecomunicaciones
Profesor E.S. de Tecnología
CEP El Ejido, Noviembre 2009
Manejo de Sensores
Sensores de LEGO Mindstorms NXT
El robot LEGO Mindstorms NXT incluye 4 tipos de sensores:
 Sonido.
 Distancia por Ultrasonidos.
 Luminosidad.
 Contacto.
Además, existen sensores de terceras partes que pueden utilizarse con los robots
LEGO y ser programados con LEJOS.
 Color.
 Temperatura.
 Buscador de Infrarrojos.
 Sensor de Enlace IR.
 Brújula.
 Giroscopio.
 Aceleración-inclinación.
 Adaptador sensores Vernier
Página 2
 Etc.
Sensor de Sonido
Para utilizar el sensor de sonido, LEJOS incluye la clase SoundSensor.
Para crear una instancia del sensor de sonido hay que informar del puerto en el que
está conectado. Además, se pueden usar dB o dBA:
SoundSensor sonido = new SoundSensor (SensorPort.S2);
SoundSensor sondBA = new SoundSensor (SensorPort.S2, true);
Los métodos que tiene la clase SoundSensor son:
 setDBA(boolean dba): fija el modo de funcionamiento del sensor, true para modo dBA y
false para modo dB.
 int readValue():devuelve el valor del sonido captado en porcentaje.
Página 3
Sensor de Ultrasónico de Distancia
Para medir distancias se utiliza el sensor ultrasónico. LEJOS permite manejarlo con la
clase UltrasonicSensor.
Para crear una instancia del sensor de ultrasonidos hay que informar del puerto en el
que está conectado:
UltrasonicSensor sonar = new UltrasonicSensor(SensorPort.S4);
El método más utilizado de la clase UltrasonicSensor es:
 int getDistance(): devuelve la distancia en cm. 255 significa fuera de rango.
Página 4
Sensor de Luz
Para medir intensidad luminosa se utiliza el sensor de luz. LEJOS permite manejarlo
con la clase LightSensor.
Al ser un sensor de luminosidad y no de color, lo que es detecta nivel de brillo. Trabaja
por lo tanto en “blanco y negro”
Tiene dos modos de operación: luz ambiente o luz reflejada usando su propio foco.
Para crear una instancia del sensor de luz hay que informar del puerto en el que está
conectado, y opcionalmente del modo de funcionamiento:
LightSensor luzAmbiente = new LightSensor(SensorPort.S3);
LightSensor luzReflejada = new LightSensor(SensorPort.S3, true);
Los métodos más utilizados de la clase LightSensor son:
 setFloodlight(boolean floodlight): true para encender el foco,
false para apagarlo.
 int readValue(): valor de 0 a 100 del nivel de intensidad de luz.
Página 5
Sensor de Contacto
Para detectar un toque o contacto se utiliza el sensor de contacto. LEJOS permite
manejarlo con la clase TouchSensor.
Para crear una instancia del sensor de contacto hay que informar del puerto en el que
está conectado:
TouchSensor contacto= new TouchSensor(SensorPort.S1);
El único método de la clase TouchSensor es:
 boolean isPressed(): indica si el sensor está pulsado o no.
Página 6
Montaje de Sensores
Ampliar el módulo básico de locomoción con los cuatro tipos de sensores:
 Sonido
 Ultrasónico
 Luz
 Contacto
Página 7
Montaje de Brazo
Ampliar el módulo básico de locomoción con:
 Brazo para golpear una bola
 Soportes base: permiten realizar prácticas de detección de distancias y son a su vez
el soporte de las bolas para el robot Jugador de Golf.
Página 8
Manejo de Sensores
Prácticas Básicas
 Programar un robot para que avance hasta que capte un sonido fuerte.
 Robot que va marchando hacia atrás, y cuando choca con un objeto se para y
emite algún sonido.
 Robot que avanza hasta acercarse a 30 cm de un objeto.
 Robot que da una vuelta completa sobre sí mismo y avanza 20 cm en la dirección
que más luz a detectado.
 Muestra por pantalla la dirección de avance y la máxima intensidad de luz detectada.
 Emite un sonido antes de orientarse en la dirección elegida y otro al parar.
 Robot que avanza hasta que encuentra un suelo negro.
Nota: En Java, se pueden programar bucles que se repiten indefinidamente mientras se cumpla
una condición dada. Son los bucles while y do-while.
while (boolean condición){
”Código que se ejecuta indefinidamente
mientras se cumpla la condición”
}
Página 9
do{
”Código que se ejecuta al menos una
vez e indefinidamente mientras se
cumpla la condición”
} while (boolean condición)
Manejo de Sensores
Prácticas Avanzadas
 Robot seguidor de línea. Avanza siguiendo una línea negra dibujada en el suelo.
 Jugador de Golf: el robot se acerca a un soporte y se para a la distancia adecuada.
Detecta el “color” de la bola según su luminosidad de modo que:
 Si la bola es roja la golpea.
 Si es la bola azul, emite algún sonido y da marcha atrás.
 Jugador de Golf Avanzado: se colocan los dos soportes en lugares cuyas
coordenadas y orientación conoce el robot. El robot se acerca a las dos
sucesivamente y las golpea o no según su color.
 Ampliación del Robot que avanza hasta acercarse a 30 cm de un objeto.
 Robot curioso: si el objeto se aleja, lo sigue en línea recta hasta volver a estar a 30 cm.
 Robot precavido: si el objeto se acerca hasta 25 cm, se aleja hasta volver a estar a 30 cm.
 Control remoto acústico: Con un sonido fuerte avanza, con dos gira a la derecha y
con tres gira a la izquierda.
 Dibujo en pantalla de un gráfico con el volumen sonoro detectado durante 5 seg.
 Robot Radar: gira sobre sí mismo una vuelta completa y muestra por pantalla un
gráfico tipo radar con todas las distancias detectadas.
Página 10
Descargar