Diferencia entre revisiones de «Grupo 1»
Línea 196: | Línea 196: | ||
El siguiente es el codigo del UserModule del sensor Temperatura: | El siguiente es el codigo del UserModule del sensor Temperatura: | ||
− | + | Codigo User Module Temperatura[http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/images/b/be/Temp_usermodule.pdf] | |
Revisión del 19:31 13 sep 2014
Contenido
Integrantes
- Ignacio Betancurt - ibetancurt@gmail.com
- Alejandro Brusco - alejandrobi89@gmail.com
- Maite Ibarburu - maite2310@hotmail.com
Tutor
- Gonzalo Tejera
Reseña
Introducción
- Un robot inteligente es por definición una máquina capaz de interactuar con su entorno de forma autónoma. Es un robot del cual se espera que aprenda y ejecute tareas aún en ambientes cambiantes. Para lograr esto, el robot debe poder recibir información sobre su entorno y actuar en base a ella, de una forma segura, cumpliendo un propósito y sentido. Es por este motivo que se necesitan los sensores.
- Un sensor es un dispositivo capaz de percibir magnitudes físicas y/o químicas con el fin de transformarlas en señales electrónicas, y así introducirlas al circuito de control, de modo que el robot sea capaz de cuantificarla y reaccionar en consecuencia.
Objetivos
- Investigación de kits educativos actuales
- Implementación de sensores nuevos (y de utilidad) para el kit Butiá
Kits educativos actuales
LEGO Mindstorm
El kit de robótica educativa LEGO dispone de los siguientes sensores:
-Sensor barométrico
-Sensor de acelerómetro
-Sensor de color
-Sensor de contacto
-Sensor de distancia
-Sensor de infrarrojo
-Sensor de intensidad lumínica
-Sensor de orientación/Brújula
-Sensor de sonido
-Sensor de temperatura
-Cámara
-Sensor Dexter dIMU (combina giroscopio y acelerómetro)
VEX
El kit de robótica educativa VEX IQ dispone de los siguientes sensores:
-Sensor de color
-Sensor de contacto
-Sensor de distancia
-Sensor de giro (Giroscopio)
-Touch LED (sensor/actuador que detecta el color del objeto, y enciende una luz del color leído)
Butiá
El kit de robótica educativa Butiá dispone actualmente de los siguientes sensores:
-Sensor de color (escala de grises)
-Sensor de contacto
-Sensor de distancia
-Sensor de imagen (cámara de la XO)
-Sensor de intensidad lumínica
-Sensor de sonido (micrófono de la XO)
Discusión de qué sensores integrar al robot Butiá
En base a la investigación efectuada referente a los sensores disponibles en el kit educativo LEGO Mindstorm y VEX IQ, analizamos qué sensores sería interesante agregar al Proyecto Butiá.
El giroscopio no es un sensor que esté presente actualmente en el Butiá. El mismo se utiliza para conocer la orientación en el espacio de algún dispositivo. Los altos precios de estos sensores, se enfrentan a la idea de que el Butiá sea un robot accesible para todos los contextos.
El sensor de orientación o brújula se utiliza para orientarse basándose en los campos magnéticos terrestres. Su menor costo y su amplia difusión, clasifican a este sensor como uno de los candidatos a implementar.
Conociendo que existen planes de construir una estación meteorológica en una escuela, resulta interesante poder incluir un sensor de temperatura al robot Butiá. Por otro lado, la temperatura es una magnitud que resulta muy intuitiva para el público en general y en particular, para los niños. Complementando los sensores necesarios para una estación meteorológica, podemos incluir uno que sense la humedad y otro para sensar la presión.
Luego de la segunda reunión se decidió implementar: movimiento, temperatura y humedad. También se vió la posibilidad de implementar un sensor brújula y un sensor de gas. El primero es un sensor caro, por lo que se llegó a la alternativa de hacer una brújula artesanal y con un sensor existente ya en butiá, por ejemplo la camara, "ver" como está posicionada la brújula. En cuanto al sensor de gas, decidimos dejarlo como último a implementar, si es posible, ya que le vimos mayor utilidad al resto de los sensores propuestos.
Sensores a incorporar
Movimiento
El sensor de movimiento hace un relevamiento del ambiente y devuelve si en este encontró objetos en movimiento.
Hemos incorporado el sensor Flamingo EDA PIR 2.0.
Características
- Opera a 5 Voltios de alimentación
- Tiempo ajustable de delay (de 0.3 a 18 segundos)
- Rango: hasta 120 grados a 7 metros
- Bajo costo
Temperatura
El sensor de temperatura sensa la temperatura ambiente y la devuelve.
En una primer instancia, intentamos incorporar los sensores seriales de temperatura DS18B20 (http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf); y el de temperatura y humedad DHT11 (http://akizukidenshi.com/download/ds/aosong/DHT11.pdf). Tras un largo período de investigación y pruebas, concluímos que la integración de un sensor serial no estaba a nuestro alcance para los conocimientos y experiencia que teníamos.
Por lo tanto, optamos por integrar el sensor LM35 a la plataforma Butiá.
Su salida es lineal y cada grado equivale a 10 mV, a demás no requiere de circuitos adicionales para calibrarlo externamente.
Características
- Está calibrado en grados Celsius.
- La tensión de salida es proporcional a la temperatura.
- Opera entre 4 y 30 Voltios de alimentación.
- Precisión calibrada de 1ºC
- Su rango de medición abarca desde -55°C hasta 150°C
- Bajo costo
Brújula
El sensor de brújula, se utiliza para conocer la orientación y se basa en el magnetismo terrestre.
En primera instacia, se empezó por investigar cuáles componentes electrónicos podrían ser utilizados para este fin.
HMC6352
El sensor HCM63525 es un magnetómetro, ya que mide la fuerza de los campos magnéticos, pero también se le suele llamar compás o brújula digital. Los magnetómetros nos permiten saber la dirección hacia la que se encuentra el Norte del campo magnético mas fuerte. Se suelen utilizar para obtener la orientación respecto al Norte magnético terrestre. Tienen mucha utilidad en robots para la navegación autónoma o para devolver datos de orientación a distancia.
Características
- Interfaz I2C por lo que se necesitaría 2 pines para obtener los datos
- Alimentación 2.7 - 5.2V.
- Refresco ajustable de 1 a 20Hz
- Resolución 0.5 grados.
- Consumo: 1mA (3V)
- Dimensiones: 15x15mm
- Permite calibrado
LSM303
Contiene dos sensores, un acelerómetro que indica la dirección en que se está respecto a la tierra (midiendo la gravedad) y el otro es un magnetómetro que nos permiten conocer hacia donde se encuentra el campo magnético más fuerte (el norte magnético).
Características
- Interfaz I2C
- 3V - 5V
Debido a que los sensores de brújulas son muy caros y difíciles de conseguir en el medio local, comenzamos una investigación para imitar el comportamiento utilizando una brújula tradicional y la webcam de las computadoras. El procesamiento de imagen es una tarea ardua que aún no ha madurado lo suficiente como para poder ser implementado fácilmente y con una suficiente confiabilidad. También hemos investigado la paleta "Follow Me" de Butiá y una brújula común. No pudimos "traducir" la imagen a valores útiles para analizar la orientación. Consideramos dos alternativas, la primera (con una brújula que mide el angulo con respecto al norte) esto no lo vimos posible ya que no encontramos forma de leer este dato con la cámara. La segunda opción fue imprimir en pantalla donde se encuentra el norte, utilizando una brújula con el norte en color rojo, y de esta forma el follow me lo puede "ver".
En conclusión, sería muy interesante la incorporación de este sensor a la plataforma, pero los altos precios de los sensores brújulas se oponen a la accesibilidad objetivo del proyecto. Una posible implementación a través del procesamiento de imágenes, no está al alcance de nuestros conocimientos. Es posible que teniendo en cuenta el lento pero incesante avance en el desempeño de las herramientas de procesamiento de imagen, en un futuro se alcance una solución por este camino.
Implementación
A continuación se detallan los pasos seguidos para incorporar dichos sensores al Butiá:
- Crear User Module
- Reconocimiento PnP
- Crear Driver
- Grabar Firmware
Crear User Module
Un usermodule debe cumplir con una API determinada, de esta manera es posible agregar las funcionalidades que el módulo expone. Las operaciones principales que se deben implementar son las encargadas de atender los eventos de:
- inicialización
- liberación de recursos
- configuración
El siguiente es el codigo del UserModule del sensor Temperatura:
Codigo User Module Temperatura[1]
Reconocimiento PnP
Se toma un valor de resistencia no utilizado en la cartilla (https://docs.google.com/spreadsheet/ccc?key=0AvO96_3p52-AdFdtaE1YbzV1ZmhVRldjSVE0OUtEZGc#gid=0) y se agregan sus respectivas constantes (por ejemplo en el caso de la temperatura R_TEMP_MIN,R_TEMP_MAX), con los valores dados por dicha tabla, también se debe aumentar la cantidad de dispositivos (MAX_DEVICES) del archivo pnp.h.
Crear Driver
Grabar Firmware
Demos
Actas
Primera reunión - 08/07/2014
- En nuestra primera reunión nos informamos de cómo proceder con los materiales a utilizar. Se acordó para una segunda reunión, estudiar los diferentes kits que ya están implementados en el mercado y discutimos la utilidad para el proyecto de algunos sensores que ya teníamos pensados.
Segunda reunión - 08/08/2014
- En nuestra segunda reunión, ya estabamos informados de que sensores estaban implementados en varios kits diferentes. En esta reunión se concluyó que sensores para butiá sería de utilidad implementar, estos son: movimiento, temperatura y humedad. También se vió la posibilidad de implementar un sensor brújula y un sensor de gas. El primero es un sensor caro, por lo que se llegó a la alternativa de hacer una brújula artesanal y con un sensor existente ya en butiá, por ejemplo la camara, "ver" como está posicionada la brújula. En cuanto al segundo sensor: el de gas, decidimos dejarlo como último a implementar, si es posible, ya que le vimos mayor utilidad al resto de los sensores propuestos.
09/08/2014
- Recibimos los sensores