Sesión 8 – Sensor de Ultrasonido

Sesión 8 – Sensor de Ultrasonido
F IG. 16.1 - ANIMALES ULTRASÓNICOS . F UENTE : [1]
¿Qué aprenderemos en esta sesión?
Recordemos
Para esta sesión, necesitaremos un aporte de la sesión pasada, ya que, así como la sesión
pasada se explicó la sentencia if y else, en esta sesión se explicara otra sentencia que nos
facilitara la programación además de utilizar los operadores para que el robot tome
decisiones por sí solo.
Operadores Lógicos en C++
||
O
!
Negación
=
==
Igual
Asignación
Igual
!=
Diferente
proposicional y por medio de este símbolo se
representará en nuestra tarjeta Innobot.
Este es el conector para O que se vio en lógica
proposicional y por medio de este símbolo se
representará en Arduino.
Este se utilizará para realizar la negación de algo, es decir
si una sentencia es verdadera, pero se antecede de este
símbolo, esta sentencia pasara a ser falsa.
Este símbolo, se utilizara para realizar la asignación de un
valor a una variable.
Este símbolo se utiliza para preguntar si hay igualdad
entre dos valores.
Este símbolo se utiliza para preguntar si dos valores son
diferentes.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
Capítulo: Bibliografía
Símbolo Nombre Función
Y
Este es el conector para Y que se vio en lógica
&&
1
<
Menor que
>
Mayor que
<=
Menor igual
que
>=
Mayor igual
que
Este símbolo se utiliza para preguntar si hay un valor
menor que otro. Siempre de la siguiente manera A<B (A
menor que B), B<C (B menor que C)
Este símbolo se utiliza para preguntar si hay un valor
mayor que otro. Siempre de la siguiente manera C>D (C
mayor que D), D>F (D mayor que F).
Este símbolo se utiliza para preguntar si hay un valor
menor O igual que otro. Siempre de la siguiente manera
A<=B (A menor O igual que B), B<=C (B menor O igual
que C).
Este símbolo se utiliza para preguntar si hay un valor
mayor O igual que otro. Siempre de la siguiente manera
C>=D (C mayor O igual que D), D>=F (D mayor O igual
que F)
Sentencia while
Esta sentencia es de gran utilidad cuando queremos realizar una actividad repetidamente
siempre y cuando se cumpla alguna condición. Se puede ver esta sentencia también como
un ciclo que se repite, solo que esta puede detenerse en algún momento, dependiendo de
alguna condición que le da el programador.
Pero veamos cómo lo podemos aplicar la sentencia while en un caso cotidiano. Debemos
saber que while es mientras en inglés, así que podemos ver cómo funciona una forma más
visual.
Mientas
Entonces
F IG. 16.2 I LUSTRACIÓN G RÁFICA DE UNA SENTENCIA WHILE FUENTE : [1] Y [2]
En nuestro lenguaje
En C++
Mientras Llueva
Entonces
Uso el paraguas
while(clima==lluvia){
Uso el paraguas;
}
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
Capítulo: Bibliografía
Como se puede ver, la condición es un clima de lluvia. Cuando la condición es verdadera,
se realiza la acción propuesta: usar el paraguas. Cuando la condición es falsa, la acción no
es realizada. Ahora vamos a ver como seria la sintaxis, además se deja una espacio vacío
para que cada uno haga su propia sentencia while.
2
Mientras
______________
Entonces
_________________
while(_____________){
___________________;
}
Ya con esto entonces, si lo que hay en los paréntesis
()
después del
while es
{ y la llave } se realizará, pero si lo
while es falso entonces no realiza las
verdadero, las instrucciones que van entre la llave
que hay en el paréntesis () después del
instrucciones dentro de las llaves.
Siempre hay que tener mucho cuidado a la hora de utilizar esta sentencia con:

Los paréntesis para definir las condiciones ()

Las llaves para definir las instrucciones a ejecutar {}

Los punto y coma siempre que se va a cerrar una acción ;
Sensor de ultrasonido
Un sensor de ultrasonido (Fig. 16.3), es un dispositivo que utiliza ondas de sonido para
detectar obstáculos dentro de un rango entre 6 centímetros y 150 centímetros. El sensor
F IG. 16.3 - S ENSOR DE ULTRASONIDO . FUENTE : P YGMALION ®
¿Y cómo hace esto?
Hay un efecto del sonido muy conocidos por todos, el eco. Cuando estamos en un lugar
cerrado como un coliseo, un salon, o una casa sin amoblar, notamos que al emitir un sonido
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
Capítulo: Bibliografía
nos da la información actualizada de la distancia a la que el robot tiene un obstáculo y le
envía esa información al cerebro (Tarjeta Innobot) del robot, para que tome las decisiones
para las que fue programado.
3
fuerte, este mismo sonido lo percibimos despues de un tiempo. Esto sucede porque el
sonido es una onda mecanica que se propaga por el aire y al encontrarse con un obstáculo
lo que hace la onda es reflejarse o rebotar. Cuando el obstáculo esta mas lejos, el sonido
se demora más en regresar a la fuente de la que fue producida. Por eso cuando
escuchamos el eco, estamos escuchando lo que se refleja de la onda sonora que nosotros
mismos producimos, que dependiendo del tiempo que se demore en regresar, podemos
saber si un obstáculo se encuentra cerca o lejos. El ser humano en este caso tiene un
EMISOR y un RECEPTOR de sonido. El emisor son las cuerdas vocales, que son las que
generan las ondas sonoras, y el receptor son los oídos, que se encargan de interpretar las
ondas sonoras.
F IG. 16.3-E CO -F UENTE : [3]
Este sensor está compuesto de un EMISOR y un RECEPTOR.
Capítulo: Bibliografía
Imaginemos que el emisor en el sensor son las “cuerdas vocales” del robot con las cuales
puede generar el sonido, y el receptor en el sensor es el “oído” del robot. Al igual que el
humano, el sensor utiliza el eco para funcionar. Lo que hace el sensor, es emitir un sonido,
y cuando el receptor percibe lo que se refleja, es capaz de conocer a que distancia tiene un
obstáculo. El sonido que emite el sensor tiene algo particular, el ser humano no puede
escucharlo, pero algunos animales sí. ¿Cómo es esto? A pesar de que muchos humanos
pueden tener un buen oído, nuestra capacidad auditiva es muy limitada. El ser humano solo
puede percibir frecuencias entre 20 Hz y 20 KHz. Las frecuencias más altas, después de
20 KHz, son conocidas como ultrasonido.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
4
F IG. 16.4-ANIMALES QUE USAN ONDAS ULTRASONICS PARA SABER SU UBICACIÓN -F UENTE : [4]
Algunos animales, utilizan el ultrasonido para ubicarse en su medio y para buscar
alimentación, al igual que algunas máquinas inventadas por el hombre, como barcos o
submarinos, los cuales utilizan el ultrasonido para evitar colisiones y encontrar objetos en
el mar.
La tarea principal del sensor de ultrasonido en el robot, va ser la reconocer a que distancia
se encuentra un obstáculo del robot dentro de un rango entre 3 y 150 centímetros.
Programando el Sensor de ultrasonido
Ahora, para saber la distancia que está leyendo el sensor, necesitamos una función de la
librería Innobot.
ultrasoundRead()
Descripción
Esta función realiza una lectura con el sensor de ultrasonido para conocer a que distancia
tiene un obstáculo, dentro de un rango entre 3 y 150 centímetros.
Sintaxis
variable.ultrasoundRead (PUERTO);
Parámetro
Devuelve
VALOR: La función me entrega el valor en centímetros de la distancia leída por el sensor
de ultrasonido. El valor puede estar entre 3 y 120, lo que simboliza el rango que tiene el
sensor, entre 3 y 120 centímetros.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
Capítulo: Bibliografía
PUERTO: El número del puerto en el que se conecta el sensor de ultrasonido. Los
puertos en que se puede conectar este sensor son J1, J2, J3, J4, J5.
5
Capítulo: Bibliografía
Ahora ensamblaremos el Sensor Ultrasonido (US) a nuestro robot, lo haremos con base
a la Fig. 16.6, primero lo insertaremos al orificio que la gráfica muestra y posterior a esto
conectaremos nuestro sensor a la tarjeta Innobot en el puerto J3.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
6
Vamos a observar cómo funciona el sensor, y cómo podemos observar el valor que está
leyendo en el computador. Primero abrimos InnobotIDE y cargamos el siguiente ejemplo
(Fig. 16.8):
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
Capítulo: Bibliografía
F IG. 16.5-E NSAMBLE DEL SENSOR ULTRASONIDO - F UENTE : P YGMALION ®
7
F IG. 16.6E JEMPLO DEL
SENSOR
ULTRASONIDO F UENTE :
P YGMALION ®
Capítulo: Bibliografía
Lo que hace este programa es iniciar una comunicación entre la tarjeta Innobot y el
computador, y muestra la información de la distancia leída por el sensor de ultrasonido en
el monitor serial.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
8
F IG. 16.7- I NFORMACIÓN DEL SENSOR ULTRASONIDO - F UENTE : P YGMALION ®
Los valores que se están actualizando, es la distancia leída por el sensor. La comunicación
que tiene el computador con la tarjeta Innobot es llamada comunicación serial. El monitor
serial me muestra la información que le da la tarjeta al computador, en este caso, la
información leída por el sensor, o sea la distancia a la que este tiene un obstáculo.
Observemos que en el programa se crea una variable llamada sensor, a la cual se le asigna
la información leída por el sensor de ultrasonido. Es recomendable siempre llevar la
información de los sensores a variables, para que a la hora de preguntar por la información
que el sensor maneja, solo debamos preguntar por lo que hay en la variable.
int sensor;
void setup(){
}
void loop(){
sensor=ultrasoundRead(J3);
}
Tomando decisiones
Actividad 1
Los robots al igual que nosotros deben tomar decisiones ante alguna situación en particular.
Cuando tienen sensores obtener información es más fácil, pero debemos saber utilizar bien
la información entregada, para tomar las decisiones adecuadas.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
Capítulo: Bibliografía
En este caso, la variable sensor contiene la distancia medida con el sensor conectado en
el puerto 3. Se pone en el loop para que el valor se actualice.
9
En esta actividad se pide que el robot se mueva hacia adelante y que sea capaz de evitar
obstáculos.



El robot debe de moverse hacia adelante con la velocidad de los motores a 80 siempre
y cuando el sensor de ultrasonido lea una distancia mayor a 10 centímetros
Se debe utilizar la sentencia while y los operadores lógicos mayor que > o menor que <
para las condiciones de la sentencia.
Cuando el robot se encuentre con un obstáculo debe de detenerse y girar a la derecha
para continuar su camino.
Reto
Cuando un vehículo frena, no lo hace de una manera inmediata, si no que dependiendo
de la distancia a la que se encuentre un pare, disminuye su velocidad progresivamente.
Vamos a cambiar la velocidad de nuestro robot dependiendo de qué tan lejos tenga un
obstáculo.






Las sentencias if, else y while son la clave en este ejercicio
La velocidad para distancias mayores a 80 cm es de 100.
Distancias entre 80 y 60 cm es de 100
Distancias entre 60 y 30 cm es de 80
Distancias entre 30 y 10 es de 50
Distancias menores a 10, el robot debe girar 120° y continuar su camino
[1]
«pixabay,» [En línea]. Available:
http://pixabay.com/static/uploads/photo/2013/07/12/15/03/clouds-149344_640.png. [Último
acceso: 03 2015].
[2]
«openclipart,» [En línea]. Available:
https://openclipart.org/image/300px/svg_to_png/70249/Proteger-del-agua.png. [Último acceso: 03
2015].
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
Capítulo: Bibliografía
Bibliografía
1
0
«tuelectronica,» [En línea]. Available:
http://www.tuelectronica.es/images/tutoriales/arduino/modulo_ultrasonido/modulo_ultrasonido_
01.gif. [Último acceso: 24 03 2015].
[4]
«blogspot,» [En línea]. Available: http://3.bp.blogspot.com/LAqPvSj1n1k/Ubhq1RjYoNI/AAAAAAAAESc/ZktxfVQtH-w/s640/spanish_echo_batsubdolphin.jpg.
Capítulo: Bibliografía
[3]
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso, distribución, comercialización y autorización a
terceros. Queda prohibida la reproducción parcial o total del presente documento, por medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico
o por fotocopia. Esta edición y sus características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos Reservados"
1
1