Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Reporte proyecto sumorobot

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Introducción
Resumen
El proyecto consta del desarrollo e implementación de un sistema autónomo de
robótica conocido como “...
Análisis conceptual del problema
Si bien es conocido que un sistema autónomo debe ser capaz de gobernarse a sí
mismo es im...
sensores ultrasónicos. Esto determina que la de mayor importancia es la de los
optoeléctricos y después los ultrasónicos.
...
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Inteligencia Artificial
Inteligencia Artificial
Cargando en…3
×

Eche un vistazo a continuación

1 de 16 Anuncio

Más Contenido Relacionado

Similares a Reporte proyecto sumorobot (20)

Anuncio

Más reciente (20)

Reporte proyecto sumorobot

  1. 1. Introducción Resumen El proyecto consta del desarrollo e implementación de un sistema autónomo de robótica conocido como “Sumorobot”, el cual incluye dos secciones principales que es la sección de software que involucra el procesador (Arduino UNO), así como el código de programación desarrollado mediante la plataforma de Arduino; la segunda parte es la física que involucra en su gran mayoría componentes electrónicos como lo son motores, sensores, etc. Objetivos 1) Establecer la conexión y adquisición de datos mediante la implementación de sensores ultrasónicos. 2) Adaptación y lectura mediante sensores ópticos. 3) Activación de salidas analógicas mediante esquema básico de funcionamiento de puente H. Términos importantes Puente H: Dispositivo electrónico que permite el controlar la dirección de giro de un motor, en este caso motores de CD. Sensor Ultrasónico: Sensor de tipo ultrasónico que permite evaluar y conocer la distancia que existe entre objetos. Sensor Optoeléctrico: Sensor basado en un modelo de par de diodos, uno emisor y otro receptor. Arduino UNO: Placa electrónica que permite un ambiente amigable para la programación y desarrollo de proyectos electrónicos. Nomenclatura empleada Fundamento Teórico
  2. 2. Análisis conceptual del problema Si bien es conocido que un sistema autónomo debe ser capaz de gobernarse a sí mismo es importante tener en cuenta que debe contener varios sistemas que le brinden información sufriente para poder tomar decisiones al respecto de cuál será la tarea a realizar. El sistema a desarrollar debe tomar en consideración variaos parámetros: 1) El sumorobot se coloca en una pista circular de fondo negro con una línea blanca que rodea el contorno de la pista, por ello se debe contar con sensores ópticos en la parte inferior del sumorobot. 2) El sumorobot debe detectar al oponente para poder envestir, por ello mismo se implementaran sensores ultrasónicos. 3) El sumorobot debe permanecer en estado de reposo durante 5 segundos antes de poder iniciar el ataque. 4) El sistema debe evaluar en que momento activar los motores y en qué dirección. 5) El sistema debe evaluar las condiciones y poder decidir según una jerarquía. Identificación de variables Tiempo de espera Antes de iniciar cualquier adquisición de información así como una activación se requiere de una señal de activación del sistema, seguida de un tiempo muerto o tiempo de espera (Delay). Señales de sensores Cuando se dice que el sistema debe poder evaluar las condiciones del medio significa que tomara decisiones en base a una jerarquía, esto hace referencia a que se tienen dos señales de sensores, una de los optoeléctricos y otra de los
  3. 3. sensores ultrasónicos. Esto determina que la de mayor importancia es la de los optoeléctricos y después los ultrasónicos. Descripción de la teoría y fórmulas empleadas Sensor ultrasónico HC-SR04 El sensor de ultrasonidos se enmarca dentro de los sensores para medir distancias o superar obstáculos, entre otras posibles funciones (ver Figura 1). En utilizan para la medición de distancias. Esto se consigue enviando un ultrasonido (inaudible para el oído humano por su alta frecuencia) a través de uno de la pareja de cilindros que compone el sensor (un transductor) y espera a que dicho sonido rebote sobre un objeto y vuelva, retorno captado por el otro cilindro. Este sensor en concreto tiene un rango de distancias sensible entre 3cm y 3m con una precisión de 3mm. Se recibe en dicho sensor el tiempo que transcurre entre el envío y la recepción del ultrasonido. Aprovechando que la velocidad de dicho ultrasonido en el aire es de valor 340 m/s, o 0,034 cm/microseg (ya que trabajaremos con centímetros y microsegundos). Para calcular la distancia, recordaremos que v=d/t (definición de velocidad: distancia recorrida en un determinado tiempo). De la fórmula anterior despejamos d, obteniendo d=v·t, siendo v la constante anteriormente citada y t el valor devuelto por el sensor a la placa Arduino. También habrá que dividir el resultado entre 2 dado que el tiempo recibido es el tiempo de ida y vuelta. Figura 1. Sensor ultrasónico HC-SR04
  4. 4. Relevador Un relé es un dispositivo electromecánico que permite gobernar el paso o no de corriente en un circuito independiente al circuito que utilizamos para el control (ver Figura 2). La conexión debe realizarse de la siguiente forma: Figura 2. Conexión de un relevador En esta ocasión, este montaje sólo permite controlar el encendido y apagado del motor, y siempre girando en el mismo sentido (no tiene sentido controlar la velocidad, pues el relé no tiene velocidad de cambio de posición de sus contactores como para “seguir” un PWM). Es importante saber cuál es la resistencia del bobinado del electroimán (lo que está entre los terminales de conexión) que activa el relé y con cuanto voltaje este se activa. Este voltaje y esta resistencia nos informan que magnitud debe de tener la señal que activará el relé y cuanta corriente se debe suministrar a éste (ver Figura 3) Figura 3. Diagrama de un relé
  5. 5. Sensor optoeléctrico QRD1114 El QRD1114 es la incorporación de un fotodiodo IRLED y un fototransistor en un encapsulado cada uno alimentado independientemente a 5V, el IRLED envía una señal infrarroja hacia arriba cuando esta golpea con un objeto a no más de 5 cm la señal regresa y la base es el recepto, “la base del transistor” es la que nos genera el funcionamiento. El QRD1114 sólo es capaz de detectar objetos entre 0 y 3 cm de distancia. En el Arduino, el valor de lectura estará en entre 600 y 1.024 (ver Figura 4). Figura 4. Sensor QRD1114 Este sensor también se puede utilizar para detectar blancos y superficies negras porque una superficie blanca reflejará más luz que una superficie de color negro resultante en una lectura más alta. Debido a esto, una gran variedad de ellos puede ser utilizado para la detección de la línea y siguientes. Transistor TIP 31 El transistor de unión bipolar (BJT) es un dispositivo electrónico de estado sólido consistente en dos uniones PN muy cercanas entre sí, que permite controlar el paso de la corriente a través de sus terminales. La denominación de bipolar se debe a que la conducción tiene lugar gracias al desplazamiento de portadores de dos polaridades (huecos positivos y electrones negativos), y son de gran utilidad
  6. 6. en gran número de aplicaciones; pero tienen ciertos inconvenientes, entre ellos su impedancia de entrada bastante baja. NPN es uno de los dos tipos de transistores bipolares, en los cuales las letras "N" y "P" se refieren a los portadores de carga mayoritarios dentro de las diferentes regiones del transistor. La mayoría de los transistores bipolares usados hoy en día son NPN, debido a que la movilidad del electrón es mayor que la movilidad de los "huecos" en los semiconductores, permitiendo mayores corrientes y velocidades de operación. Los transistores NPN consisten en una capa de material semiconductor dopado P (la "base") entre dos capas de material dopado N. Una pequeña corriente ingresando a la base en configuración emisor-común es amplificada en la salida del colector. Un TIP31 es un tipo estándar de NPN transistor de unión bipolar utilizado para aplicaciones de potencia media (ver Figura 5). Figura 5. Transistor TIP31 Resistencia variable (PRESET) Esta es la versión miniatura de la resistencia variable estándar. Está diseñada para ser montada directamente sobre la placa de circuito impreso y es ajustada solo cuando el circuito es construido (ver figura 6).
  7. 7. Figura 6. PRESET Por ejemplo para ajustar la frecuencia del tono de una alarma o la sensibilidad de un circuito sensible a la luz. Un pequeño destornillador se requiere para ajustarlo. Los Presets son mucho más baratos que una resistencia variable estándar por lo que algunas veces son usados en proyectos donde una resistencia variable estándar debería ser usada normalmente (ver figura 7). Figura 7. Símbolo de un PRESET Los Preset multi-vuelta se usan cuando deben hacerse ajustes muy precisos. El tornillo debe ser girado muchas veces (10 o más) para mover el cursor deslizable desde un extremo de la pista hasta el otro, dando un control muy fino y preciso. Driver L298N Este módulo basado en el chip L298N permite controlar dos motores de corriente continua o un motor paso a paso bipolar de hasta 2 amperios. El módulo cuenta con todos los componentes necesarios para funcionar sin necesidad de elementos adicionales, entre ellos diodos de protección y un regulador LM7805 que suministra 5V a la parte lógica del integrado L298N.
  8. 8. Cuenta con Jumpers de selección para habilitar cada una de las salidas del módulo (A y B). La salida A está conformada por OUT1 y OUT2 y la salida B por OUT3 y OUT4. Los pines de habilitación son ENA y ENB respectivamente. En la parte inferior se encuentran los pines de control del módulo, marcados como IN1, IN2, IN3 e IN4. (ver figura 8). Figura 8. Driver L298N Material y equipo empleado  Procesador: Arduino UNO  Sensores optoeléctricos: (4) QRD1114  Sensores ultrasónicos: (3) HC-SR04  Resistencias de varios valores: (4) Preset 10kΩ y (4) 200Ω  (4) Relevador de estado sólido 5 V  (4) Transistor TIP31 Desarrollo y Procedimiento
  9. 9. Implementación de sensores optoeléctricos Los sensores optoeléctricos enviaran señales al procesador que le indicaran cuando se encuentre en los límites de la arena de batalla, con lo cual se espera que el sistema envíe una señal de alerta y modifique el sentido de giro de los motores. Existen dos formas de adquirir señales de un sensor QRD1114, ya que se pueden manejar mediante entradas analógicos o entradas digitales. Las entradas digitales especifican un valor establecido defaul por Arduino, el cual arroja un valor entero de 0 o 1. Sin embargo cuando se trabaja con las entradas analógicas se tiene valores oscilantes ya que depende del arreglo de resistencias implementadas. Para este proyecto se optó por implementar todos los sensores optoeléctricos mediante entradas analógicas implementando el esquema de conexión mostrado en la figura 9. Sin embargo una vez que se ha adquirido el valor analógico es conveniente hacer una comparación y asignar un valor entre 0 y 1, como si se tratara de un sistema digital. Figura 9. Implementación de sensor optoeléctrico (QRD1114).
  10. 10. El código implementado para la lectura y comparación de la señal proveniente del sensor optoeléctrico es el que se muestra en la figura 10. Sin embargo se requiere escalar este fragmento de código para cuatro sensores que serán los que se coloquen en cada esquina del sumorobot. Figura 10. Código de adquisición de sensor optoeléctrico. Implementación de sensores ultrasónicos Los sensores ultrasónicos tienen un papel muy importante, ya que estos indican cuando un objeto se encuentra cerca del rango de alcance del sumorobot, de esta forma se evalúa y se decide qué sentido de giro se le asignan a los motores. Para esto se tiene la configuración de conexión de la figura 11, en la cual cabe destacar que las los pines a implementar son aquellos que tengan una salida tipo PWM.
  11. 11. Figura 11. Implementación de sensor ultrasónico (HC-SR04). El código para la adquisición se señales del sensor ultrasónico es el que se muestra en la figura 12, en el cual se observa la implementación de los pines de salida con PWM, además de usar una fórmula matemática para estimar la distancia en base al tiempo de rebote de la señal emitida por el sensor. De igual forma se muestra un extracto del código implementado por ello mismo se requiere escalar para la implementación de tres sensores. Figura 12. Código de adquisición de sensor ultrasónico.
  12. 12. Desarrollo de lógica de programación Una vez que se ha comprendido e implementado la adquisición de señales mediante sensores y la plataforma Arduino, se puede generar un plan para lógica de programación, en la cual se explique el funcionamiento que tendrá el sistema (ver Figura 13). Figura 13. Funcionamiento del sistema. Sección de comparación de sensores optoeléctricos Se ejecuta una pequeña comparación en la cual se tiene la señal proveniente de los sensores optoélectricos que introducen un valor variante ya que se adquieren como entradas analógicas (ver Figura 14). Esta sección emula una especie de convertidor analógico a una señal digital.
  13. 13. Figura 14. Comparación de señales de sensores optoeléctricos. Sección de adquisición de sensores ultrasónicos En esta sección se adquiere un valor variable como una variación de voltaje según sea la distancia adquirida por el sensor ultrasónico, es por ello que conviene implementar una fórmula para la conversión a unidades de longitud, en este caso a centímetros (cm). Activación de motores Para hacer la activación de los motores se toma en consideración ocho posibles casos que se generar a partir de las señales de los sensores optoeléctricos y la variable “opto” que indica cuando un sensor está activo, (ver Tabla 1). Tabla 1. Tabla de casos de combinaciones de sensores optoeléctricos. Caso Opto1 Opto2 Opto3 Opto4 1 0 0 0 0 2 1 1 0 0 3 0 0 1 1 4 1 0 0 1 5 0 1 1 0 6 1 0 0 0 7 0 1 0 0 8 0 0 1 0
  14. 14. Caso 1: Este es el caso más importante ya que describe el funcionamiento íntegro del sistema cuando se encuentra dentro de la arena de batalla, de la siguiente manera se considera la tabla 2, que muestra la activación de los motores en base a la señal de los sensores ultrasónicos. Nota: El código de programación indica que mientras la distancia detectada sea menor de 60 cm, el sistema acciona los motores. Tabla 2. Asignación de dirección. Si la distancia <= 60 cm Distancia1 Distancia2 Distancia3 Dirección 1 0 0 Adelante 0 1 0 Derecha 0 0 1 Izquierda 1 1 1 Izquierda La última condición indica que el sistema no encuentra un objeto cercano, por lo tanto gira hasta encontrar un objeto dentro del alcance de ataque, es decir que algún sensor indique que existe un objeto en una distancia menor a 60 cm. Caso 2: Indica que el sumorobot está a punto de salir del área de batalla por su parte delantera por lo tanto asigna que la dirección debe ser hacia “atrás”. Caso 3: Indica que el sumorobot está a punto de salir del área de batalla por su parte trasera por lo tanto asigna que la dirección debe ser hacia “adelante”. Caso 4: Indica que el sumorobot se encuentra en una posición limite por su parte derecha, por lo tanto debe asignar la dirección “izquierda”. Caso 5: Indica que el sumorobot se encuentra en una posición limite por su parte izquierda, por lo tanto debe asignar la dirección “derecha”. Los casos restantes se llenan solo para asegurar un correcto funcionamiento, sin embargo son semejantes a los primeros 5.
  15. 15. Los motores se activan según la dirección que se ha asignado, la cual se muestra en la tabla 3. Tabla 3. Accionamiento de motores. Dirección IN1 IN2 IN3 IN4 Adelante HIGH LOW LOW HIGH Atrás LOW HIGH HIGH LOW Derecha HIGH LOW HIGH LOW Izquierda LOW HIGH LOW HIGH En la tabla 3, se muestran cuatro parámetros (IN1, IN2, IN3, IN4), que son las salidas digitales para el accionamiento de un puente H. Resultados 1) En cuanto a la sección de adquisición y acoplamiento de señales de sensores optoeléctricos se tuvo que implementar un potenciómetro en lugar de una resistencia fija, ya que esto permite una calibración independiente para cada sensor, ya que no todos los sensores varían según distintas condiciones, en nuestro caso la distancia en que se colocan los sensores. 2) La sección de adquisición de sensores ultrasónicos se implementó de manera adecuada, y por lo tanto no se presentaron mayores complicaciones. 3) En la sección de activación de los motores, en primera instancia se recurrió a la implementación de un módulo de puente H de Arduino (L298N Full- Bridge), sin embargo la demanda de corriente de los motores excedía la de las especificaciones del Driver; por ello mismo se optó por realizar un puente H enteramente analógico. 4) En el montado de las partes del sumorobot, hubo que adecuar la base y buscar las llantas adecuadas, además de aplicar un antiderrapante a las llantas.
  16. 16. 5) El resultado que se obtuvo ante la señales de accionamiento del sistema con los motores fue muy buena, ya que obedece de manera rápida ante la presencia de objetos cercanos. Fuentes consultadas [1] Gallardo G. Daniel, Apuntes de ARDUINO Nivel Pardillo, http://educacionadistancia.juntadeandalucia.es/profesorado/pluginfile.php/2882/mo d_resource/content/1/Apuntes_ARDUINO_nivel_PARDILLO.pdf, consultada: 3 de Marzo de 2015. [2] Are we getting close? Proximity Sensors + Arduino, http://bildr.org/2011/03/various-proximity-sensors-arduino/, consultada: 5 de marzo de 2015. [3] Tutorial: sensor ultrasonidos HC-SR04, http://elcajondeardu.blogspot.mx/2014/03/tutorial-sensor-ultrasonidos-hc-sr04.html, consultada: 5 de marzo de 2015. [4] Tutorial: Uso de Driver L298N para motores DC y paso a paso con Arduino, http://electronilab.co/tutoriales/tutorial-de-uso-driver-dual-l298n-para-motores-dc-y- paso-a-paso-con-arduino/, consultada: 7 de Marzo de 2015.

×