domingo, 25 de marzo de 2012

Incorporando Protoboard y Arduino

Para esta entrada se usara todo lo aprendido en la anterior realizare un programa sencillo pero esta vez incorporando un protoboard. El objetivo es aprender a trabajar sobre el protoboard como mandar energía al proto y las acciones.

Material Requerido:

Arduino UNO:

Protoboard:

2 Leds:

2 Resistencias de 1KΩ:

1 Cable o Jumper:


Codigo:
Esta vez para identificar con más facilidad los pines los declaramos desde el inicio el pin 12 será el led rojo el pin 11 será el led verde. La función del programa es encender el led rojo apagarlo encender el verde y repetir sin fin.


Circuito:
Una vez acabado el código compilamos y lo cargamos al Arduino y procedemos a conectar todo. Primero que nada vemos los pines marcados como power y buscamos la tierra(GND) colocamos el cable y lo conectamos en tierra(-) en el proto, después colocamos una resistencia en los pines que utilizaremos en este caso el pin 11 y 12 y los colocamos en cualquier parte del proto que no sea la misma fila una para cada resistencia,después colocamos los leds un lado en la tierra y el otro lado en su respectiva resistencia.



Si todo anda bien deberíamos tener algo como esto
Resultados:
video

Bibliografía;
http://www.ladyada.net/learn/arduino/lesson3.html
http://arduino.cc/

Codigo y Funciones Arduino

En esta entrada analizaremos un poco más a detalle al código ya que en la pasada solo se tomo en cuenta como compilar, cargar programas al Arduino y trabajar con el IDE de Arduino. Primero que nada abrimos el código que utilizamos en el programa anterior de encendido de un LED. Abrimos nuevamente el IDE de Arduino vamos a File/Examples/Basics/Blink y ya tenemos el código para entender un poco que hace cada cosa, el lenguaje de programación que se maneja es C.

setup(): Esta función la mandamos a llamar cuando queremos iniciar un programa, cambiar el estado de los pines o empezar a usar librerías. En este caso se declara el estado del pin y entre paréntesis ponemos primero el número de pin que vamos a utilizar y si esperara una entrada o realizara una salida en este caso elegimos el pin 13 como salida.

pinMode: Como ya lo dije pinMode es para configurar uno de los pines del arduino como salida o entrada.

loop(): Después de haber iniciado nuestro programa con la función setup() podemos crear un ciclo con la función loop(), un ciclo nos sirve para realizar acciones con nuestro Arduino por ejemplo en este caso dentro del ciclo hacemos que el LED se encienda cierto tiempo y se apague otro cierto tiempo.

digitalWrite(): Esta función le da un valor de 0(LOW) o 1(HIGH) a alguno de los pines. Por ejemplo si el pin está en estado de salida y le damos un valor de 1 se envía un voltaje de 5v o en caso de que el valor sea 0 se mantiene o se envían 0v. Por otra parte si el pin está configurado como entrada si el valor es 1 se activa una resistencia de 20k y si el valor es 0 se desactiva la resistencia. Para este caso elegimos el pin 13 y se le envía un valor de 1(HIGH) lo cual manda voltaje al pin por consecuencia el LED se enciende después lo apagamos con el valor de 0(LOW).

delay(): Por ultimo tenemos la función delay() la cual sirve para pausar el programa por cierta cantidad de tiempo sus parámetros se manejan en milisegundos. En este caso se pausa el programa por un tiempo de mil milisegundos.

Ya explicada cada una de las funciones podemos modificar un poco el programa para entenderlo un poco mejor lo único que hare será cambiar los valores de tiempo y el pin que usamos.

Cambiamos el pin del 13 al 12 y utilizamos un tiempo de 10milisegundos.


Resultados:

Video del primero programa funcionando con delay de 1000ms
video


Video del programa funcionando con delay de 10ms parece como si el LED ya no parpadeara pero en realidad 10ms es tan rápido para ser apreciado por la vista humana pero si lo movemos se puede apreciar como enrealidad si esta parpadeando debido al camino de luz que se forma como lo podemos ver en la imagen de abajo.
video




Bibliografía:
http://www.ladyada.net/learn/arduino/lesson2.html
http://arduino.cc/en/Tutorial/Blink

jueves, 22 de marzo de 2012

Introduccion al Arduino

¿Que vamos a hacer?
Para empesar a moverle un poco al Arduino empesaremos a trabajar con un ejemplo muy sencillo que ya viene incluido en el programa de Arduino el cual consiste en hacer un LED encender y apagar en un ciclo infinito.

¿Que material ocupamos?

Cable USB


Aruino UNO


LED


Lo primero que haremos sera descargar el software lo obtenemos de la pagina oficial del Arduino http://www.arduino.cc/en/Main/Software elejimos el sistema operativo que utilizemos en este caso elejimos Linux.


Despues de aver descomprimido la carpeta,abrimos el ejecutable arduino elejimos run, y ya con esto iniciamos la IDE de Arduino.



Lo primero que debemos hacer es conectar el Arduino hecho esto procedemos a elejir la placa con la que trabajaremos en este caso Arduino UNO para hacer esto vamos a Tools/Board/Arduino UNO.

En versiones anteriores del software Arduino lo que debemos hacer es configurar el software de Arduino con el chip que corresponda a nuestro Arduino. La mayoria de utiliza el ATmega168 pero existe la posibilidad de que tengamos otro modelo por eso hay que verificar. Si en el chip aparece ATMEGA8-16P elejimos atmega8 en el software, encambio si leemos ATMEGA168-20P el elejimos atmega328p. Es recomendado usar mejor la version mas reciente.



Despues elejimos el puerto serial vamos a Tools nuevamente Serial port y elejimos la unica opcion que nos aparece en este caso /dev/ttyACM0.

Lo primero que haremos con el arduino para empesar a aprender a moverle sera utilizar uno de los ejemplos que ya vienen en los basicos, para esto vamos a File/Examples/Basics/Blink. Nos abrira la siguiente ventana con un codigo ya realizado cuya funcion es hacer encender y apagar un LED conectado al Arduino.


Despues lo compilamos para verificar que no haya ningun error para esto vamos a Sketch/Verify-Compile en caso de obtener algun error como Cannot run program “avr-gcc++” es porque ocupamos instalar algunas cosas instalamos openjdk-6-jre y gcc-avr, avr-libc y solucionara los problemas.

Obtenemos un mensaje en la parte de abajo de que no hay errores y algunos otros detalles como el tamaño y algunos otros aspectos del programa. Ahora esta listo nuestro programa para ser pasado al Arduino.


El siguiente paso consiste en reiniciar el Arduino manualmente para indicarle a este que se prepare para un nuevo programa que se le instalara lo hacemos presionando el boton de reiniciar. Ya hecho esto nos vamos a File y elejimos Upload si no hay ningun error el programa sera cargado al Arduino y estara listo para probarse.


Sino tenemos un Arduino con LED incorporado para poder ver los resultados usamos un LED posicionandolo en los pines 13 y tierra, el pin mas largo del LED va en la 13 y la mas cortita en la tierra(GND).



Bibliografia:

http://www.ladyada.net/learn/arduino/lesson1.html
http://arduino.cc/en/Guide/HomePage

Arduino Proyecto

Arduino para Proyecto

Bueno para realizar mi proyecto de la clase de computo integrado junto con la de dispositivos móviles estaré trabajando con el Arduino UNO R3 el cual conseguí aquí en Monterrey en la tienda 5hz. Como ya lo había explicado antes lo que intentare hacer será poder lograr abrir puertas de cocheras utilizando el dispositivo móvil el cual a su vez se comunicaría con el Arduino.



Características Generales

Microcontrolador ATmega328
Voltaje de Operacion 5V
Voltaje de Entrada (recomendado) 7-12V
Voltaje de Entrada (limites) 6-20V
I/O Pines Digitales 14 (de los cuales 6 pueden proporcionar una salida PWM)
Entradas Analogicas(Pines) 6
Corriente Directa por I/O Pin 40 mA
Corriente Directa 3.3V Pin 50 mA
Memoria Flash 32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Velocidad de reloj 16 MHz

Alimentación de energía

Puede utilizarse el USB como fuente de alimentación o puede utilizarse una fuente externa, en mi caso utilizare el USB por comodidad.

Memoria

El microcontrolador ATmega328 cuenta con 32KB de memoria. Además de 2KB de SRAM y 1KB de EEPROM (la cual puede ser utilizada como lectura o escritura con la librería EEPROM).

Entradas y Salidas

Los 14 pines con los que cuenta el Arduino UNO pueden ser utilizados como entradas o salidas utilizando las funciones pinMode(), digitalWrite(), digitalRead(). Los pines operan a 5 volts.

Serial: 0 (RX) y 1 (TX): Utilizados para recibir (RX) y transmitir (TX) datos en serie TTL.
Interruptores Externos 2 y 3: Se utilizan para crear una interrupción cuando se detecta un valor bajo o algún cambio en algún valor.
PWM pines 3, 5, 6, 9, 10 y 11: Estos pines proporcionan 8 bits de salida PWM con la función analogWrite().
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Estos pines se utilizan para la comunicación SPI utilizando la librería SPI.
LED13: Un led incorporado en el Arduino que muestra cuando un valor es alto se enciende y cuando es bajo permanece apagado.

Ejemplos relacionados con mi proyecto
La mayoría de los ejemplos que eh encontrado están conectados directamente al motor o utilizan un servo para poder presionar el botón de abrir o cerrar no es exactamente lo que busco yo pero es una relación.



Bibliografia:
http://arduino.cc/en/Main/arduinoBoardUno

Arduino


¿Qué es un Arduino?
Un Arduino es una plataforma electrónica de hardware libre basada en un micro controlador y un entorno de desarrollo, diseñada 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.


La placa Arduino se compone de diferentes partes como podemos ver en la imagen de arriba (puede variar según el modelo y tipo de Arduino).

Esquema: Entradas, Salidas y Pines

Consta de 14 entradas digitales configurables entrada i/o salidas que operan a 5 voltios. Cada pin puede proporcionar o recibir como máximo 40 mA.

Pines 3, 5, 6, 8,10 y 11: Salida PWM (Pulse Width Modulation)
Pin 0 y 1: No se debe conectar nada aquí ya que ocasionaría que se interfiriera con la comunicación del USB.
Terminales de referencia analógicas (naranja)
Tierra digital (verde claro)
Terminales digitales 2-13 (verde)
Terminales de entrada analógica 0-5 (azul claro)
Terminales de alimentación y tierra (alimentación: naranja, tierras: naranja claro)
Entrada de alimentación externa (9-12VDC) - X1 (rosa)
Selector de alimentación externa o por USB - SV1 (púrpura)(En alguno casos los arduinos nuevos cuentan con alimentación de otra forma)
USB (utilizado para subir programas a la placa y para comunicaciones serie entre la placa y el ordenador; puede utilizarse como alimentación de la placa) (amarillo)
Micro controlador: ATmega168 (utilizado en la mayoría de las placas Arduino)

Tipos de Arduino

Arduino Diecimila: La Diecimila es la última de la serie de placas USB, fue un nombrada de este modo para celebrar el hecho de que más de 10.000 placas Arduino han sido ya fabricadas. La Arduino Diecimila es una placa microcontroladora basada en el chip ATmega168. Tiene 14 E/S digitales (6 de las cuales se puedes utilizar como salidas PWM), 6 entradas analógicas, un cristal de 16MHz, conexión USB y botón de reseteo.


Arduino Duemilanove: El Duemilanove es el mas popular en dentro de las series de placas con USB, es una placa con microcontrolador basada en el ATmega168 o elATmega328. Tiene 14 pines con entradas/salidas digitales (6 de las cuales pueden ser usadas como salidas PWM), 6 entradas analógicas, un cristal oscilador a 16Mhz, conexión USB, entrada de alimentación, una cabecera ISCP, y un botón de reset.


Arduino Uno: Es la versión mejorada de su predecesor Duemilanove. Incluye función de autoreset, protección de sobrecargas, conector USB para programarlo, totalmente montado con componentes miniatura SMD (salvo el microcontrolador, para poder cambiarlo facilmente) y nuevo bootloader OptiBoot a 155kbps.


Arduino Mega: Es una placa microcontrolador basada ATmeg1280. Tiene 54 entradas/salidas digitales (de las cuales 14 proporcionan salida PWM), 16 entradas digitales, 4 UARTS (puertos serie por hardware), un cristal oscilador de 16MHz, conexión USB, entrada de corriente, conector ICSP y botón de reset.


Arduino Mega 2560: Utiliza un potente procesador de AVR ATMEGA2560 con un amplio espacio de memoria para programar y corriendo a 16Mhz. Es ideal para proyectos de robótica ya que lo más destacado es su elevada cantidad de pines de entrada y salida y sus 4 puertos UART por hardware.


Arduino Fio: El Arduino Fio es una placa para microcontrolador basada en el ATmega328P Funciona a 3.3V y 8MHz. Tiene 14 pines de E/S digitales (de los cuales 6 pueden usarse como salidas PWM), 8 entradas analógicas, un resonator en placa, un botón de reinicio (reset), y agujeros para montar conectores de pines. Tiene conexiones para una batería de polímero de Litio e incluye un circuito de carga a través de USB. En el reverso de la placa tiene disponible un zócalo para módulos XBee.


Arduino Nano: El Arduino Nano es una pequeña y completa placa basada en el ATmega328 (Arduino Nano 3.0) o ATmega168 (Arduino Nano 2.x) que se usa conectándola a una protoboard. Tiene más o menos la misma funcionalidad que el Arduino Duemilanove, pero con una presentación diferente. No posee conector para alimentación externa, y funciona con un cable USB Mini-B en vez de el cable estandar.


LilyPad Arduino: El LilyPad Arduino es una placa con microcontrolador diseñado para prendas y e-textiles. Puede utilizar con complementos similares como fuentes de alimentación, sensores actuadores unidos por hilo conductor. La placa está basada en el ARmega168V (la versión de baja consumo del ATmega168), o el ATmega328V.


Ejemplos de uso del Arduino

Este video muestra un carrito siendo controlado atreves de un dispositivo móvil el cual se comunica con un modulo de BlueTooth el cual está conectado a un Arduino Mega 2560.


Este video muestra una cámara siendo contralada atreves de un Arduino la cual se controla atreves de internet.


Bibliografia:

http://arduino.cc/
http://es.wikipedia.org/wiki/Arduino