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
© Copyright 2024