30 de abril de 2012

Sensor de Alcohol MQ-3

Cómputo Integrado
Laboratorio

Para mi proyecto Arduino realicé un alcoholímetro donde utilice uno de los sensores más comunes para la detección de alcohol en el aliento humano, y como no entre en detalles acerca del sensor, les platico un poco trabaja y como fue conectado.

Les dejo el enlace del reporte del proyecto: Proyecto Arduino: Alcoholímetro

Este es un sensor de alcohol llamado MQ-3, que detecta etanol en el aire. Es uno de los sensores de gas más sencillos por lo que funciona casi de la misma manera con otros sensores de gas como el de gas metano y gas butano. Cuesta alrededor de los $85 pesos. Típicamente se utiliza como parte de los alcoholímetros o probadores de aliento para la detección de etanol en el aliento humano.


Básicamente, tiene 6 pines, la tapa y el cuerpo. Aunque a pesar de que tiene 6 pines, se suelen utilizar sólo 4 de ellos. Dos de ellos son para el sistema de calefacción, lo que marco como H y los otros 2 son para la conexión de alimentación y de tierra, que están marcados como A y B.


Si miramos por dentro el sensor, encontraremos un pequeño tubo. Este tubo es un sistema de calefacción que esta hecho de óxido de aluminio y dióxido de estaño, y dentro de este hay bobinas, que prácticamente producen el calor. Y también se pueden encontrar 6 pines. 2 pines que llamados son llamados pin H y están conectadas a las bobinas del calentador y los otros están conectados directo al tubo.


Como conectar el sensor


El sensor tal y como lo suelen vender en las tiendas distribuidoras es como el de la primer imagen mostrada aquí, lo cual aveces dificulta el uso del mismo ya que tenemos que soldar cuidadosamente los pines necesarios a cable, y por la estructura en que se encuentran suele ser un tanto batalloso.


Pero tuve la suerte de que al comprarlo me proporcionaron una pequeña placa especial para el sensor donde ya vienen marcadas exactamente las 4 salidas necesarias para la lectura del sensor y donde se facilita la forma de soldar.


Esta pequeña placa sigue exactamente las instrucciones para conectar al Arduino y recibir los datos del sensor.


Yo con cables para interconexión soldé a cada una de las 4 salidas (GND, A1, B1, H1) y me quedo lo siguiente.


Ejemplo para recibir la lectura del sensor


Armé un pequeño circuito para leer los datos del sensor y verlos desde el monitor serial.


El código que use para esta lectura.


Y por último les muestro la salida desde el monitor serial, después de haber usado un algodón impregnado con alcohol etílico.

Podemos notar que los datos recibidos van desde valores cercanos a 600 y llega a subir hasta valores cercanos a 1000.


Bibliografía
Blog de sensores
Breathalyzer with MQ-3 and Arduino

29 de abril de 2012

Arduino Uno y Flex Sensor

Cómputo Integrado
Laboratorio

Ahora vamos a hacer uso del flex sensor y crear un pequeño circuito con leds que nos indiquen el nivel de flexión. Recomiendo que para pruebas se utilice la el monitor serial, para conocer la lectura del sensor y aprendamos un poquito de como son sus mediciones.

Un sensor de flexibilidad o flex sensor de 4.5 pulgadas, funciona debido a que cuando el sensor es flexionado, la resistencia del sensor incrementa. Para nuestro Arduino la salida del sensor entra en uno de los pines analógicos que normalmente reciben valores de entre 0 y 1023, pero para nuestro sensor lo normal es estar recibiendo datos entre 130 y 275 aproximadamente.


Material

  • 10 leds de 5mm, de cualquier color
  • 9 resistencias de 330 ohms
  • 1 resistencia de 10k ohms
  • 1 flex sensor
  • Arduino Uno y cable para conexión USB
  • Cable para conexiones

Circuito


EL siguiente circuito difiere un poco del mostrado, pero fue del cual me base para crear el mio. La diferencia es que este esta de alguna forma separado en dos protoboards, pero el mio esta todo en uno solo.

El sensor como se puede apreciar esta en una de las entradas analógicas de nuestra placa Arduino.


Y esta es la imagen de como fue mi circuito para el uso del sensor de flexibilidad.


Código


El código es sencillo de entender sin tanta explicación, para los que ya están familiarizados con las funciones típicas de lectura y escritura para encender los leds y como se dice que cierto pin es de salida, etcétera.


Vídeo


Y que mejor que un vídeo para mostrar la funcionalidad y como esta flexionándose el sensor, y ver los destellos de los leds según el nivel de flexibilidad.


Otra cosa que hay que mencionar es que el sensor al flexionarse en sentido contrario da números negativos, pero yo coloque una condición en el programa de cuando este por debajo de cero se quede en cero.

Referencias
Flex sensor

28 de abril de 2012

Semáforo con Arduino Uno

Cómputo Integrado
Laboratorio

Programa y circuito para la creación de cruce de semáforos con Arduino Uno. El estado verde tiene una duración de 6 segundos, más el tiempo de parpadeo, el estado amarillo es de 3 segundos y el estado rojo se encuentra activo mientras el otro semáforo pasa por el estado verde y amarillo. El botón sirve para terminar el tiempo del semáforo con luz verde activo en el momento y así pasar la actividad al otro semáforo.

Material usado

  • Arduino Uno y cable para conexión USB
  • 1 push button
  • 1 resistencia de 10K ohms
  • 6 resistencias de 330 ohms
  • 2 leds de 10 mm, color verde difuso
  • 2 leds de 10 mm, color ámbar difuso
  • 2 leds de 10 mm, color rojo difuso
  • 1 protoboard
  • Cables para conexiones

Yo use cables para conexión macho-macho y algo de cable de ethernet. Los leds use de 10mm para que fuese más vistoso, pero pudo haber sido leds sencillos de 5mm.

Circuito


El circuito es sencillo y fácil de elaborar, yo use Fritzing para mostrárselos aquí y vean como son las conexiones.


Y aquí una imagen de como quedo el circuito ya montado en el protoboard.


Código


Este es el programa creado para hacer funcionar los dos semáforos. Cada semáforo es una función, y al termino de cada función se manda a llamar a la otra función. La función loop inicializa el semáforo con uno en luz verde y el otro en luz roja.


Esta es una imagen del circuito, con el programa ya subido al Arduino y funcionando.


Vídeo


Un vídeo de muestra con el semáforo funcionando.


Versión modificada


El semáforo anterior tiene un push button que cuando es presionado mientras el semáforo se encuentra en luz verde, termina su tiempo y empieza a parpadear la luz amarilla, para después cambiar a rojo, en pocas palabras el botón tiene la función de cambiar de semáforo.

Esta versión es de un semáforo manual, es decir, no cambia de un semáforo a otro hasta que es presionado el botón.
Aquí les dejo el código modificado, quite los comentarios ya que son prácticamente los mismos que en el anterior. Podemos ver el cambio dentro del ciclo while donde cambiamos la condición.


Y aquí esta el vídeo para ver cuál fue la diferencia que tenemos en este semáforo que cambia manualmente.


27 de abril de 2012

Prender un led con Arduino Uno

Cómputo Integrado
Laboratorio

Como dije en la publicación anterior, antes de crear el programa o sketch que prenderá nuestro led, veremos las partes esenciales de nuestro código para que todo ande bien.

Hay dos funciones esenciales para nuestro programa, veamos cuales son.

La función setup() se establece cuando se inicia un programa o sketch. Se emplea para iniciar variables, establecer el estado de los pins e inicializar librerías. Esta función se ejecutará una única vez después de que se conecte la placa Arduino a la fuente de alimentación, o cuando se pulse el botón de reinicio de la placa.

La función loop() hace justamente lo que su nombre sugiere, por lo tanto se ejecuta consecutivamente, permitiéndole al programa variar y responder.

Y lo que usamos para decir que un pin será salida o entrada tenemos lo siguiente:

pinMode() - Configura el pin especificado para comportarse como una entrada o una salida.

Y para indicar si el estado es alto o bajo de un pin tenemos:

digitalWrite() - Escribe un valor HIGH o LOW hacia un pin digital.

Si el pin ha sido configurado como OUTPUT con pinMode(), su voltaje será establecido al correspondiente valor: 5V para HIGH, 0V (tierra) para LOW. Si el pin es configurado como INPUT, escribir un valor de HIGH con digitalWrite() habilitará una resistencia interna de 20K conectada en pullup. Escribir LOW invalidará la resistencia. La resistencia es sufuciente para hacer brillar un LED de forma opaca, si los LEDs aparentan funcionar, pero no muy iluminados, esta puede ser la causa. La solución es establecer el pin como salida con la función pinMode().

Ahora si vamos a crear nuestra primer práctica con Arduino.

Material necesario


  • Una placa Arduino Uno

  • Un cable para conexión USB

  • Un led de 5mm, de cualquier color

Armado


Colocamos el led con la punta positiva (la más larga) en pin número 13, y la otra (la negativa) hacia el pin GND.

Conectamos la placa Arduino con el cable USB a la computadora.


Código


Este es el código que escribiremos en el IDE de Arduino como nuestro primer sketch, yo lo he guardado con el nombre de "led".


Al subirlo a la placa Arduino podremos ver su funcionamiento, y como prende nuestro led.


Vídeo


Por último les dejo mi vídeo de como quedo nuestro primer prigramita.


Referencia
Arduino - Función setup
Arduino - Fucnión loop
Arduino - pinMode
Arduino - digitalWrite

26 de abril de 2012

Opciones del IDE de Arduino

Cómputo Integrado
Laboratorio

Una vez que tenemos instalada la IDE de Arduino, es bueno echar un vistazo a las opciones que tenemos en el menú. Solemos no poner atención en estas cosas cuando recién instalamos un programa, pero son cosas que nos pueden ser de ayuda a lo largo del uso del programa.

Las siguientes son unas de las opciones y herramientas que tenemos en la IDE y les muestro para que sirven cada una.

¿Dónde se guardan los programas que creamos?


Yo como a muchos otros les gustaría saber o seleccionar la carpeta en donde se guardan los programas que vamos a crear con esta plataforma. La carpeta se suele ubicar en la carpeta principal del usuario, junto con la de Documentos, Imágenes y Vídeos.

La ubicación de la carpeta la podemos cambiar desde el menú File > Preferences.


Se nos muestra una ventana como la siguiente, y desde ahí podemos seleccionar la ubicación de la carpeta. Además nos dan otras opciones como verificar si hay actualizaciones del software y si usas un editor de textos diferente, seleccionar que los archivos no se abran en automático con la IDE de Arduino.


Ejemplos proporcionados


Algo que es de gran ayuda son los ejemplos que trae consigo la plataforma. Viene con una gran variedad de ejemplos que muestras como se usa cada una de las herramientas y librerías que vienen incluidas y que se pueden usar con las diferentes placas de Arduino.


Selección de la placa de Arduino


Algo que es importante saber es que es necesario seleccionar la placa con la que estamos trabajando. Yo he estado usando la placa Arduino Uno y Arduino Mega 2560, y al estar pasando de una a otra me tope con errores al pasar el programa a la placa, y era debido precisamente por que la placa que usaba en el momento no estaba seleccionada.

Así que no olvides seleccionar la placa con la que estas trabajando desde Tools > Board, ya que esto es causa de errores al pasar el programa.


Puerto serial


Al conectar tener conectada la placa a la computadora esta activa la opción de seleccionar o conocer en que puerto esta conectada la placa y que nos servirá para hacer otro tipo de programas que hagan uso de este puerto.

Esto se encuentra desde Tools > Serial Port.


¿Qué es el Sketch?


"Un sketch es el nombre que usa Arduino para un programa. Es la unidad de codigo que se sube y ejecuta en la placa Arduino."

Es aquí donde escribiremos nuestro código, y se acostumbra a empezar el programa con la información de la acción a realizar, no es obligatorio, pero suele ser buena práctica escribir en comentarios que cosa hace nuestro código.


En la siguiente publicación haré un sketch sencillo y adentraré un poco en las funciones necesarias de todo sketch.

25 de abril de 2012

Arduino IDE en Ubuntu 11.10

Cómputo Integrado
Laboratorio

Para los que apenas inician como yo con el uso de un Arduino, evidentemente lo primero que tenemos que hacer, suponiendo que ya tenemos el Arduino con el que trabajaremos, es instalar la IDE de Arduino en nuestra computadora, ya que esta nos facilitará el trabajo para pasar nuestro programa a este dispositivo.

"Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos."

Esta plataforma esta disponible para diferentes sistemas operativos, como lo son Mac OSX, Windows y Linux. En mi caso yo are uso de la IDE desde Ubuntu 11.10, y les adelanto que no he tenido ningún problema al instalarlo y tampoco en su uso.

Otras distribuciones Linux que también soportan la instalación de la IDE de Arduino son:
  • ArchLinux
  • Debian
  • Fedora
  • Gentoo
  • openSUSE
  • Puppy
  • Pussy
  • Slackware

Para los que tienen un Arduino Uno o un Arduino Mega 2560 no se preocupen por que en la página oficial se diga que para Ubuntu 10.10 estas tarjetas no son compatibles, y que por lo tanto pensemos que nuestra versión de Ubuntu tampoco lo sea, pero no fue así, porque la versión que se encuentra para descargar desde el centro de descargas de Ubuntu es más reciente a las que se muestran en la página.

Aquí verán más información: Arduino - Linux Ubuntu

Instalar desde interfaz gráfica


Lo primero que tenemos que hacer es abrir el Ubuntu Software Center, que puede ser abierta desde el dashboard.


En la esquina superior derecha tenemos el cuadro de búsqueda donde escribiremos "Arduino", para ver los resultados.


Al picar en el botón de más información del programa seleccionado podremos ver notas acerca de la versión y su tamaño de archivo. Podemos ver que la versión disponible para ahora que descargo es la 22 y en la página de Arduino hablan de la 18 como la más reciente.


Lo más seguro es que se nos pida permisos especiales para la instalación, así que se nos pedirá la contraseña.


Esto empezará la descarga e instalación del programa, y una vez instalado debemos de ver lo siguiente.


Y si buscamos desde el dashboard "Arduino" veremos que ya esta listo para usarse.


Al abrirlo veremos una ventana como la siguiente, y ahí será en donde empezaremos a trabajar.


Y ya esta todo listo, ahora es momento de empezar a trabajar.

Instalar desde terminal


Sin duda es mucho más fácil instalar desde la terminal, no hay que andar picando botones y si tenemos suerte con una sola línea en el terminal tendremos todo listo.

Solo basta con abrir un terminal y escribir lo siguiente para instalar la IDE de Arduino.

~$ sudo apt-get install arduino

Al estar usando sudo seguramente nos pedirá ingresar la contraseña de usuario para poder proceder con la operación.

Si al estar instalando surge algún error puede ser debido a que hace falta instalar algún paquete como java o algo como gcc-avr y avr-libc, y como nuestro terminal es tan buen amigo, seguramente nos dirá que línea ejecutar para instalar estos paquetes.

Una vez terminado el proceso de instalación desde terminal, podemos abrir la IDE desde la interfaz gráfica como ya se mencionó anteriormente o desde la misma terminal con la siguiente instrucción.

~$ arduino

Esto hará igualmente que se abra la ventana de la plataforma y es donde pondremos nuestro código.


En la siguiente publicación les muestro unas cosas que aunque simples, vale la pena saber acerca de la IDE de Arduino.

24 de abril de 2012

Week 15

Distributed and Parallel Systems
Contribution: Week 15
Para esta semana que toca ver el tema del Grid Computing busqué cuales son los usos que se le dan a nivel empresarial o de investigación científica por parte de organizaciones que dedican su estudio a ambientes que incluyen gran cantidad de variables y procesamiento.

También información de como un Grid comparte recursos entre los componentes del mismo.

Enlace al wiki: How a Grid Works

Nominaciones
Cecilia Urbina
Gabriela García
Roberto Martínez

23 de abril de 2012

Fritzing

Cómputo Integrado
Laboratorio

Fritzing es un programa de automatización de diseño electrónico libre que busca ayudar a diseñadores y artistas para que puedan pasar de prototipos a productos finales.

Fritzing fue creado bajo los principios de Processing y Arduino, y permite a los diseñadores, artistas, investigadores y aficionados documentar sus prototipos basados en Arduino y crear esquemas de circuitos impresos para su posterior fabricación.

Además cuenta con un sitio web complementario que ayuda a compartir y discutir bosquejos y experiencias y a reducir los costos de fabricación.


El enlace a la página oficial es el siguiente: Fritzing

Fritzing tiene varias versiones para diferentes sistemas operativos:
  • XP, Windows Vista y Windows 7
  • Mac OSX 10.4 y posteriores
  • Linux, con libc mayor o igual a 2.6
La lista de versiones para los diferentes sistemas los podemos encontrar aquí: Downloads

Instalar Fritzing en Ubuntu 11.10


Recién acabo de hacer uso de Fritzing en mi computadora, y no he tenido ningún problema al utilizarlo.

  1. Lo primero que tienes que hacer es descargarte la versión del programa que creas conveniente. Yo descargue la versión 0.7.1b para Linux de 32 bits. La versión fue lanzada según la página el 1o de abril del 2012.

    Aquí les dejo el enlace directo de la descarga: Download FRitzing 0.7.1 beta

  2. Después de descargar ese paquete, tenemos que descomprimirlo, puede ser desde la terminal o desde el entorno gráfico. Esto nos generará una carpeta con los archivos necesarios para correr el programa.


  3. Ahora solo es necesario correr el archivo llamado Fritzing desde la terminal.


    ~$ ./Fritzing

  4. Esto nos abrirá la ventana principal del programa, y ahora sí que comience el entretenimiento.


Al parecer la versión fue probada en Ubuntu 10.04, pero yo he lo hice en Ubuntu 11.10, y funciona de maravilla.

Vista rápida a los componentes


Como podemos ver en la imagen siguiente, lo que se nos muestra en la pantalla principal es un protoboard donde tenemos prácticamente la base para trabajar y armar nuestro circuito tal y como si lo hiciéramos en nuestras prácticas de laboratorio.

Tenemos una gran cantidad de componentes que podemos agregar, yo puse sin orden alguno algunos de los que más suelo utilizar, como lo son los leds, un pish button, regulador de voltaje, resistencias, cable para conexiones y un letrero de ocho leds.


El programa además de que nos brinda la interfaz para acomodar los componentes con las imágenes, también nos permite crear o visualizar nuestro circuito en forma esquemática.


Y no se queda con simples componentes, también tenemos las diferentes versiones de Arduino. Coloque algunos ejemplos más comunes, que son el Arduino Uno, Arduino Mega y el Arduino Ethernet.


Y componentes adicionales que pueden ser usados conjuntamente con el Arduino, como son la matriz de leds, un joystick, sensor de temperatura y la plaquita para el sensor de gas.


Y estos son solo algunos cuantos de los que podemos usar, además de que es posible modificar valores de los componentes como las resistencias, que nos permite cambiar los ohms, y en los leds y cables, que nos permite cambiar colores.

Bibliografía
Fritzing - Página oficial
Fritzing - Wiki