Mostrando entradas con la etiqueta Cómputo Integrado. Mostrar todas las entradas
Mostrando entradas con la etiqueta Cómputo Integrado. Mostrar todas las entradas

11 de marzo de 2013

Contador 00 a 99 con Arduino Mega

Cómputo Integrado

Aquí les dejo el material y código para la realización de un contador del 00 al 99 con Arduino Mega, es una implementación simple, y que posiblemente pueda ser mejorada.

Herramientas usadas

  • Arduino IDE en Ubuntu 11.10

Material utilizado

  • Cable para conexión USB
  • Arduino Mega
  • 2 displays de siete segmentos de cátodo común
  • 4 resistencias de 330 ohms
  • Cables para conexión

Código



Imágenes





Vídeo


17 de mayo de 2012

Proyecto Arduino: Alcoholímetro

Cómputo Integrado
Proyecto Arduino

Como última entrega de proyecto para la materia de Cómputo Integrado usando un Arduino, decidí hacer un alcoholímetro sencillo, esto para hacer uso del sensor de alcohol. Pudo haber sido cualquier otro sensor de gases, pero para fines prácticos y de demostración frente al grupo, el más adecuado fue el de alcohol, ya que existen otros que detectan, por ejemplo, el gas butano o metano.


Descripción


La idea es crear un alcoholímetro, que mediante el sensor, se reciba como dato el grado o nivel de alcohol de la persona que sopla frente al sensor. Según el nivel o grado de alcohol detectado por el sensor, se encenderán de 1 a 10 leds de diferentes colores, empezando con el verde, que indica un bajo nivel de alcohol, amarillo un nivel medio y rojo un nivel alto.

Además como muchos alcoholímetros portátiles o de mano ofrecen la opción de guardar el estado actual de alcohol, también agregue dos botones, uno es para guardar el estado marcado actualmente por el sensor, y el segundo es para ver los estados guardados, que son tres, aunque pudieron haber sido más. Al picar el botón para ver los estados guardados por primera vez, se muestra el estado recién guardado, al picar por segunda vez, se ve el penúltimo estado, y al picar por tercera vez se muestra el antepenúltimo, y para salir de vuelve a picar por cuarta vez, y volver a recibir información del sensor.

Herramientas usadas

  • Arduino IDE en Ubuntu 11.10
  • Cable para conexión USB
  • Arduino Uno

Material utilizado

  • 4 leds de 5mm, color verde difuso
  • 3 leds de 5mm, color amarillo difuso
  • 3 leds de 5mm, color rojo difuso
  • 1 led de 5mm, color amarillo
  • 11 resistencias de 330 ohms
  • 3 resistencias de 10K ohms
  • 2 micro switch, de push, con 4 terminales
  • 1 sensor de alcohol MQ-3
  • Arduino Uno
  • Cables de interconexión macho-macho de 6 pulgadas

Código


Este es el código completo de mi proyecto. Las partes que están en comentarios fueron utilizadas como prueba para la consola del monitor serial desde el Arduino IDE.

Nota: Si se usa "Serial" para imprimir contenido en el monitor, la salida digital A0 y A1, quedan automáticamente programadas para salida serial, como yo necesitaba una salida digital más, comente las líneas de salida serial, para tener dos salidas digitales extras.


Circuito creado en Fritzing


Dibuje el circuito desde Fritzing y lo hice en dos partes para no amontonar componentes y que estén bien visibles, por si en algún momento alguien sigue estos pasos para armar el suyo propio, no se pierda viendo solo imágenes.

Esta es la parte donde se conectan todas las salidas del Arduino al protoboard donde se encuentran incrustados los leds.


Y aquí esta por separado lo que conecta al sensor y los botones push.


Imágenes







Vídeo


Y por último les dejo un vídeo que tomé del alcoholímetro funcionando, para dejar evidencia del trabajo realizado. Cabe mencionar que en el vídeo no muestro el uso de los botones, aunque ya estaban funcionales, ya que no tenía quién me ayudará a grabar en ese momento.


Si esta publicación te ayudo en algo para crear tu proyecto, o haces uso del código que yo he creado, no te olvides de incluir el enlace a este blog en tu bibliografía.

Recursos consultados
Sensor Report
MQ-3 and Arduino

8 de mayo de 2012

Proyecto PIC: Semáforo

Cómputo Integrado
Proyecto PIC

Para esta entrega del proyecto PIC decidí hacer algo simple, un semáforo, con la idea de que nos encontramos en un cruce donde solo hay dos semáforos que controlan el flujo de autos, por lo que tengo dos semáforos que están intercambiando de estado para conceder luz verde de uno a otro y sus estados intermedios de la luz ámbar y luz roja.

Enseguida les muestro material, código y un vídeo del circuito funcionando.

Descripción


Bueno la idea ya quedo planteada, pero ahora veamos un tanto la lógica de un semáforo.

El semáforo pasa por una serie de estados marcados por diferentes colores de luces, verde, ámbar y rojo, cada uno representa una acción diferente para la persona que conduce. El verde significa que el vehículo puede avanzar, y cuando el tiempo esta por terminarse este empieza a parpadear para avisar a los conductores, luego este se apaga para encenderse la luz color ámbar que significa precaución y el conductor debe disminuir velocidad y detenerse, luego se enciende la luz roja que indica alto total, y así da paso a el encendido de la luz verde de otro semáforo, y esto se vuelve un ciclo.

Herramientas usadas

  • Mikro Basic Pro for PIC
  • Programador para PIC-600

Material utilizado


Los componentes utilizados no son muy caros, a excepción del PIC y el protoboard.
  • 1 PIC16F628A
  • 2 LED gigante de 10 mm, color ámbar difuso
  • 2 LED gigante de 10 mm, color verde difuso
  • 2 LED gigante de 10 mm, color rojo difuso
  • 6 resistencias de 330 ohms
  • 1 regulador de voltage MC7805CT
  • 1 protoboard
  • 1 pila de 9 volts
  • 1 broche para pila

Las uniones están hechas con cables cortados de un cable del usado para conexiones Ethernet.
Además use un poco el voltímetro para verificar el voltaje que estaba pasando por el circuito y no quemar el PIC.

Procedimiento


No quiero entrar en detalles de la elaboración, pero resumo en forma general los pasos que yo seguí.
  1. Instalar el programador de PIC en la PC
  2. Instalar Mikro Basic Pro for PIC
  3. Armar el circuito en el protoboard
  4. Verificar el circuito
  5. Pasar programa al PIC
  6. Probar en el protoboard

Código


El código que hice no es el mejor que pueda haber para un semáforo, pero funciona. Tengo en cuenta que hay cosas que se pueden haber simplificado, como por ejemplo al indicar cuales son las entradas o salidas del PIC y reducirlo a una sola línea, y el cambio de semáforo pudo haber sido realizado con funciones, pero por falta de tiempo este fue el que se compilo para luego pasar al PIC.


Imagen del circuito


Aquí les dejo una imagen del circuito creado. En realidad ayuda mucho hacer un circuito un tanto ordenado y no con cables largos pasando por cualquier lado, ya que así tenemos una visión clara de por donde se está pasando el voltaje y el flujo del circuito, además de que nos ayuda a identificar errores fácilmente.

Cabe mencionar que cerca del regulador de voltaje hay un led que use de prueba para verificar si estaba ingresando corriente, ya que por momentos tenía problemas con los cables que van del broche de la pila y que conectan al circuito.


Vídeo


Tome un vídeo corto del funcionamiento del proyecto para dejar evidencia de que sí funciona, por lo menos en este momento, y con esto término mi entrada.


Esto fue todo para la entrega de este proyecto.

Agradecimientos:
Cecilia Urbina por asesorarme con el uso del programador.
Juan Espinosa por ayudarme a verificar el circuito.
Eduardo Triana por su asesoría en los componentes.
Isaias Garza por encontrar el driver del programador para mi sistema operativo.
Roberto Martínez por su apoyo moral.

Proyectos similares:
Alejandro Avendaño

2 de mayo de 2012

Prender un Led con un Push Button en Arduino Uno

Cómputo Integrado
Laboratorio

Ahora vamos a realizar un circuito básico para el uso de un botón o push button para prender un led con nuestro Arduino Uno.

Material

  • 1 push button de cuatro terminales
  • 1 resistencia de 10k ohms
  • 1 led de 5mm de color rojo
  • Arduino Uno y cable para conexión USB
  • Cable para conexión
  • Un protoboard

Circuito montado


Por si no se nota en la imagen la punta más larga del led de 5mm esta conectada en el pin número 13 del Arduino y la otra en el pin del GND.
El cable de color rojo indica la salida de 5V desde el Arduino y esta conectado a la línea roja del protoboard.
El cable azul es el que va a tierra o GND del Arduino y también va conectado al protoboard pero a la línea azul.
El cable de color verde esta conectado de la salida del push button al pin número 2 en el Arduino.


Código realizado



Circuito funcionando


Aquí podemos ver en la imagen que cuando es presionado el botón, el led prende inmediatamente.


Esto fue un uso simple, pero la función que nosotros le demos al botón puede ser la que nosotros queramos como para botones de control de un carro o botones que cuando se presionen guarden datos en memoria, etcétera.

1 de mayo de 2012

Aumentar Pines Digitales en Arduino Uno

Cómputo Integrado
Laboratorio

Mientras experimentaba un poco con mi Arduino Uno encontré información valiosa en internet, acerca del uso de los pines que tenemos disponibles.

Una de las cosas con las que aveces lidiamos es la cantidad de salidas/entradas digitales en nuestra placa Arduino, pero podemos hacer un poco de maravillas con ella sin necesidad de comprar un componente más. Esto es usando todos los pines como salidas o entradas digitales.

Mi compañera Cecilia Urbina hizo una entrada para aumentar en número de pines pero cuando se tiene a la mano otro Arduino.

Enlace directo a la publicación: Aumentar I/O en Arduino

Veamos como están distribuidas las entradas y salidas digitales, seriales y analógicas de nuestra placa de Arduino Uno.


De forma predeterminada los pines del Arduino están distribuidos de la siguiente manera.
  • Terminales digitales 0-1 E/S serie - TX/RX (verde oscuro).
  • Terminales digitales 2-13 (color verde).
  • Terminales de entrada analógica 0-5 (azul claro).

Pero algo que es bueno saber cuando se necesitan más entradas o salidas digitales es que las terminales 0 y 1 (TX y RX) si no estan siendo utilizadas como salidas seriales, como por ejemplo, usando Serial.begin(9600); pueden usarse sin problema como salidas digitales donde podemos usar digitalWrite();.

Y también tenemos 6 entradas analógicas (A0 - A5) que podemos utilizar, siempre y cuando no estemos usando ninguna de ellas para la lectura de algún sensor, ya que con una sola terminal que necesitemos para un sensor, en automático todos los demás también se activan para el mismo uso. Así que mientras no usemos ningún sensor, hemos ganado 6 entradas y salidas digitales.

Cree un pequeño ejemplo donde utilizo todas las terminales del Arduino para prender leds.


Si podemos ver las terminales A0, A1, A2, A3, A4 y A5 son usadas como 14, 15, 16, 17, 18 y 19, al ser usadas en pinMode();.

Y esto es una forma fácil de tener más salidas o entradas digitales en nuestro Arduino sin gastar en más componentes.

Referencias
Arduino Uno - Board

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.