viernes, 18 de mayo de 2012

Arduino UNO en windows 7

Bien pondre este tutorial ya que para mi me fue de mucha ayuda ya que me vi forzada en ocasiones a usar windows.... y windows no detecta arduino [ tristemente :( ]


Bien para lograr que fuera  detectado primero tuve que descargar el driver para el arduino UNO aqui anexo un link en donde pueden descargar solo el driver para este arduino.  [DRIVER].
Aclaro que previamente debemos tener instalado el IDE de arduino. 


Para empezar debemos tener conectado al puerto USB nuestro arduino.
Ahora el primer paso es buscar como aparece el puerto:  (para esto podemos buscar en la barra de búsqueda de windows 7: buscamos device manager y abrimos)
Después identificamos como aparece el puerto, en este caso a mi me apareció de la siguiente manera:



Ahora damos clic con el botón derecho y seleccionamos la opción  Update Driver Software y nos mostrara dos opciones y seleccionamos la que nos indica que es de forma manual.

Después de esto nos aparecerá la siguiente pantalla y seleccionamos esta opción:
Y damos clic en next, a continuación nos aparece una lista de la cual seleccionaremos la opción siguiente:
Nuevamente damos clic en Next y nos aparecerá lo siguiente:
Y seleccionamos la opción que aparece en rojo, esto nos dirige a buscar el driver en el lugar donde lo hayamos descomprimido, después de esto nos aparecerá algunas cosas de que si se desea continuar y a todo le damos que si. Una ves hecho esto aparecerá que la instalación fue finalizada y nos aparecerá el puerto de la siguiente manera:



Y listo! :D 


Referencias:

jueves, 10 de mayo de 2012

Secuencia de Luces utilizando FOR

Esta entrada es similar a la anterior solo que esta vez la secuencia realizada utiliza un FOR en el codigo.
La secuencia ira inicialmente en un sentido y despues en sentido contrario y asi sucesivamente.
Para realizar esto necesitamos:
  • 6 Leds
  • 6 Resistencias de 220
  • 6 cables para conexion
  • Un protoboard
  • Arduino
Este es el codigo que se cargara al arduino:

:)
 Y este es el diagrama de como debe ser armado el circuito:

Una vez que se ha subido el programa al arduino y conectamos todo correctamente esto es lo que debemos obtener: 




Esta secuencia tambien es posible realizarla de otra manera, pero el codigo seria muy extenso, y con el for ahorramos muchas lineas de codigo.

Secuencia de luces con arduino

En esta entrada mostrare un sencillo tutorial de como hacer una secuencia de luces con arduino.
Para realizar esto es necesario lo siguiente:
  • Arduino
  • cables de conexion
  • 3 Leds de colores
  • 3 resistencias de 330 
  • Protoboard
A continuacion muestro el codigo que utilice:



Y aqui el circuito de como debe ser armado:

Y este es el video de la secuencia funcionando :)






miércoles, 9 de mayo de 2012

Proyecto Integrador 1 - PIC

Para mi proyecto con pic lo que hice es un moderador de pulsos en un led en secuencia. Lo que hace esto es que la intensidad de corriente al led valla aumentando o dismuniyendo por medio de dos botones (subir-bajar).

Para elaborar esto fueron necesarios los siguientes materiales:

  • PIC 16F628A

  • Resistencias de 330 y 4.7K

  • Push buttons

  • Cables para conecciones

  • protoboard

  • Fuente de energia
  • Programador 
Las herramientas que utilice para la programacion del pic fueron MicroCode Studio y IC-prog que ya anteriormente habia mencionado en otra entrada.
A continuacion muestro el circuito hecho en Fritzing:

Y ahora pongo el código que utilice


:)
Y la imagen de cuando lo programe:
Tambien les comparto el circuito ya armado:

Como Funciona?

Para controlar los pulsos de los leds utilice la instrucción PWM esto quiere decir (Pulse with Modulation- pulsos con modulacion) o modular el ancho del pulso. En mi proyecto lo utilice para variar la iluminacion de varios leds, inicialmente estos leds tienen una intensidad de 30 y al pulsar el push button conectado al puerto b.4 se subira la intensidad del led en 25, lo contrario sucede si se pulsa el boton conectado al puerto b.5 se hara un decremento de la intensidad.


Y a continuación dejo unas imagen en donde muestro el cambio de intensidad de los leds:







Ref:
intensidades de los leds

martes, 8 de mayo de 2012

Controlar la intensidad de un LED con Arduino

En esta entrada mostrare como podemos controlar la intensidad de un led con el Arduino.
Los materiales que utilice son los siguientes:


  • LED y cables para conexion

  • Fotocelda

  • Resistencias de 220Ohm y 10K

  • Protoboard

  • Arduino UNO


El codigo es el siguiente:


:)
Aqui les dejo el circuito de como quedaria armado:




Despues de haber hecho esto podemos agregar otros componentes que podamos modificar su intensidad en este caso aniadire un motor y aqui dejo el circuito de como armarlo:


Y aqui dejo una imagen de mi circuito armado y funcionando.




Despues subire mas mini proyectos con arduino :)





domingo, 6 de mayo de 2012

Bibliotecas en Arduino

Para hacer uso de una biblioteca en Sketch (el IDE de Arduino), basta con hacer clic sobre “Import Library” en el menú, escoger una biblioteca y se añadirá el #include correspondiente. 
A continuación mencionare algunas de las librerias estandar que maneja Arduino:

  • EEPROM:   Para leer y escribir en memorias "permanentes".
  • Ethernet: Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como servidor que acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones simultaneas.
  • Firmata:  Para comunicarse con aplicaciones en la computadora usando un protocolo estándar Serial.
  • LiquidCrystal: Esta librería es para controlar Displays, soporta modos de 4 y 8 bits.
  • Servo: Para el control de Servo motores. La biblioteca soporta hasta 12 motores en la mayoría de placas Arduino y 48 en la Arduino Mega.  El manejo de la biblioteca es bastante sencillo. Mediante attach(número de pin) añadimos un servo y mediante write podemos indicar los grados que queremos que tenga el motor.
  • Stepper: Control de motores paso a paso. Se indica la velocidad a la que queramos que gire en revoluciones por minuto con setSpeed(rpm) y se indican los pasos que queremos que avance con step(pasos).
  • Wire:  Envió y recepción de datos sobre una red de dispositivos o sensores.
Ademas de estas librerías existen otras que también son compatibles como:
  • Matrix - Libreri­a para manipular displays de matrices de LED básicas.
  • Sprite - Libreri­a básica para manipulacion de sprites para usar en animaciones con matrices de LEDs.

Además de las librerías base, las que son compatibles y las que han aportado otras personas tenemos la posibilidad de escribir nuestra propia biblioteca.

Esto es muy interesante por varias razones: permite disponer de código que puede reutilizarse en otros proyectos de forma cómoda; nos permite mantener el código fuente principal separado de las bibliotecas de forma que sean mantenibles de forma separada; y la organización de los programas construidos es más clara y elegante.






Referencias:

http://arduino.cc/es/Reference/Libraries
http://es.wikipedia.org/wiki/Arduino#Bibliotecas_en_Arduino

viernes, 4 de mayo de 2012

Jugando con el Arduino Parte 2

Jaja como habia mencionado en una de las entradas anteriores, en esta entrada hablare de un pequeno programa para hacer prender un led con el arduino.

Para hacer esto necesitamos:

  • Arduino UNO y su cable 

  • Un Led o Dos

Para programar es necesario descargar el software de Arduino, el cual podemos encontrarlo en la siguiente liga:
Dentro de la pagina podemos encontrar el software para diferentes sitemas operativos, aqui seleccionamos la opcion segun nos corresponda. Despues de haber descargado el software, descomprimimos el archivo y abrimos el ejecutable (aparece con el nombre de Arduino) para asi iniciar el IDE de Arduino.

Una vez abierto el IDE podemos conectar el arduino a nuestra pc, una vez conectado seleccionamos la placa con la que estaremos trabajando, nos vamos a la opcion TOOLS/BOARD/Arduino UNO despues vamos a seleccionar el modelo del chip que lleva nuestro arduino. Podemos identificar el chip leyendo el nombre con el que aparece asi como se muestra acontinuacion:



Una vez realizado todo esto vamos a utilizar uno de los ejemplos que vienen en el ide de arduino :)
Vamos a File/Examples/Basics/Blink y nos abre otra pantalla del ide con el siguiente codigo:




En el codigo vemos como asigna el pin 13 para el led esto quiere decir que aqui es donde lo vamos a colocar mientras que la otra patita del led ira a tierra (GND).



Para programa el arduino, primero compilamos el programa para verificar que este todo en orden, despues de haber realizado esto el programa esta listo para pasarlo al arduino :D.
Nos vamos a la pestana File y seleccionamos la opcion upload y el programa se cargara al arduino y listo! 
Otra opcion para programar y verificar es ubicando los siguientes botones:

El area encerrada en color blanco es para verificar y el area en color negro es para Upload.

Bien! Y este es el resultado:





Referencias:
http://www.ladyada.net/learn/arduino/lesson1.html



Programando algo base en pic!

En esta entrada mostrare un programa sencillo para programar pic.


Para esto utilize el pic 16F628A (18 pines) es el siguiente:


Como había mencionado en una entrada anterior sobre la arquitectura de los pics cada patita tiene una función especifica, pueden ser de entrada y/o salida, entre otras funciones. Ademas de que en la entrada anterior escribi algunas caracteristicas referentes a este pic.

Para programar el pic utilice:

  • mikroBasic
  • Pic 16F628a
  • protoboard
  • cables para conexiones y Leds
  • Programador de Puerto serial
  • Ic-Prog 




Para llevar la programacion primero utilice un codigo sencillo en mikrobasic que es el siguiente:

En este codigo se programan todos los puertos A y los puertos B como salidas y se les da un tiempo de espera de 1 segundo. Una vez construido el programa seleccionamos la opcion Build lo que nos generara el codigo .hex , con esto pasamos al Ic-prog para ahora si programar nuestro Pic.

Una vez programado conectamos nuestro pic al protoboard y colocamos el Led en cualquier patita. El led debe prender asi como se muestra:



En este Link se puede encontrar el Ic-prog asi como su driver para utilizarlo en Windows XP







lunes, 30 de abril de 2012

Shield Ethernet



En esta entrada hablare sobre el Shield de Ethernet para Arduino

Este shield permite a una placa Arduino conectarse a internet. 
Esta basada en el chip ethernet Wiznet W5100 (datasheet). El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP. Soporta hasta cuatro conexiones de sockets simultaneas. Usa la libreri­a Ethernet para escribir programas que se conecten a internet usando la shield.


El ethernet shield dispone de unos conectores que permiten conectar a su vez otras placas encima y apilarlas sobre la placa Arduino.


La shield provee un conectore ethernet estandar RJ45, El boton de reset en la shield resetea ambos, el W5100 y la placa Arduino.


La shield contiene un numero de 

  • LEDs para información:
  • PWR: indica que la placa y la shield están alimentadas
  • LINK: indica la presencia de un enlace de red y parpadea cuando la shield envía o recibe datos
  • FULLD: indica que la conexión de red es full duplex
  • 100M: indica la presencia de una conexión de red de 100 Mb/s (de forma opuesta a una de 10Mb/s)
  • RX: parpadea cuando la shield recibe datos
  • TX: parpadea cuando la shield envi­a datos
  • COLL: parpadea cuando se detectan colisiones en la red

Shield Ethernet con placa Arduino

Aqui dejo un video de un tutorial de como conectar el arduino a Internet



Referencias

domingo, 29 de abril de 2012

Memoria en PIC y Arduino


Los microcontroladores PIC tienen una serie de registros que funcionan como una RAM de propósito general
que esta destinada a guardar las variables y los datos.
Otra parte de la memoria es de tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicación.

Existen una gran cantidad de micro-controladores diferentes por lo tanto la aplicación y utilización de los mismos es diferente.




Ya que el microcontrolador está diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control, Existen varios tipos de memoria:


  • ROM con máscara: se graba mediante el uso de máscaras. Sólo es recomendable para series muy grandes debido a su elevado coste. Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip.
  • OTP: El microcontrolador contiene una memoria no volátil de sólo lectura "programable una sola vez" por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código contenido.
  • EPROM:  Erasable Programmable Read-Only Memory
    se graba eléctricamente con un programador controlador por un PC. Disponen de una ventana en la parte superior para someterla a luz ultravioleta, lo que permite su borrado. Puede usarse en fase de diseño, aunque su coste unitario es elevado.
    Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. Hoy día se utilizan poco, siendo sustituidas por memorias EEPROM o Flash.
  • EEPROM:  Electrically Erasable Programmable Read-Only Memory
    Es un tipo de memoria ROM que puede ser programada, borrada y reprogramada eléctricamente, a diferencia de la EPROM que ha de borrarse mediante un aparato que emite rayos ultravioletas. Son memorias no volátiles.
    Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede ser borrada y reprogramada entre 100.000 y un millón de veces.
  • Flash:  La memoria flash es una forma avanzada de EEPROM, que permite la lecto-escritura de múltiples posiciones de memoria en la misma operación. Gracias a ello, la tecnología flash, siempre mediante impulsos eléctricos, permite velocidades de funcionamiento muy superiores frente a la tecnología EEPROM primigenia, que sólo permitía actuar sobre una única celda de memoria en cada operación de programación.
Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados "en circuito", es decir, sin tener que sacar el circuito integrado de la tarjeta.La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto.


Memoria en Arduino

Existen tres tipos de memoria en los microcontroladores utilizados por las placas Arduino (ATmega168, ATmega328, ATmega1280, etc.): 



  • Memoria Flash:  La memoria Flash (espacio del programa) es donde Arduino almacena el sketch. Un sketch es el nombre que usa Arduino para un programa. Es la unidad de código que se sube y ejecuta en la placa Arduino. Esta memoria es no volátil, si Arduino deja de ser alimentado eléctricamente los datos que haya en esta memoria permanecerán. El tamaño de la memoria Flash de Arduino puede variar dependiendo del microcontrolador, aunque no es muy grande. Por ejemplo, para el chip ATmega168 el tamaño de la memoria Flash es de 16 kilobytes, de los cuales 2 kilobytes son utilizados por el bootloader. Para el caso del microcontrolador ATmega328 (como el que incorpora Arduino UNO) el tamaño de la memoria Flash es de 32KB, de los cuales el bootloader usa 0,5KB. Se recomienda que se realicen programas de manera optimizada.
  • Memoria SRAM:   Static Random Access Memory ó memoria estática de acceso aleatorio es de tipo volátil, es el espacio donde los sketches (programas) almacenan y manipulan variables al ejecutarse. La información guardada en esta memoria será eliminada cuando Arduino pierda la alimentación. Esta memoria es de uso exclusivo para el programa en ejecución.  La memoria SRAM de Arduino es muy pequeña, por lo que debemos optimizar nuestros programas al máximo y no abusar de variables de tipo char muy grandes. Hay que tener en cuenta que cada carácter de una variable char utiliza un byte. En el microcontrolador ATmega 168 el tamaño de la memoria SRAM es de 1024 bytes, para el caso de un chip ATmega328 (como el que incorpora Arduino UNO) el tamaño es de 2KB (2048 bytes).
  • Memoria EEPROM: es un espacio de memoria que puede ser utilizada por los programadores para almacenar información de largo plazo.  El tamaño de la EEPROM para un chip ATmega128 es de 512 bytes, para un chip ATmega328 es de 1KB (1024 bytes). Hay que tener en cuenta que el tamaño de la memoria EEPROM interna de Arduino es "pequeño" pero Arduino admite añadir módulos de memoria EEPROM externa de mayor tamaño.



El almacenamiento en Arduino es posible ampliarlo, una manera de hacerlo es usando una memoria EEPROM externa.
También es posible ampliar la memoria con una SD Card, para esto existen varios módulos SD Card para arduino un ejemplo es el siguiente:



Para utilizar estos módulos existen varias librerías que pueden ser muy útiles.


Referencias



domingo, 25 de marzo de 2012

PIC 16F628A


El pic 16f628a es un microcontrolador de 8 bits, es el remplazo al pic 16f84a, ya que sus pines son compatibles. Posee una arquitectura RISC ( reduced instruction set computer) así como un juego reducido de 35 instrucciones.

El lenguaje de este microcontrolador es el asm, y ya que es un lenguaje que esta mucho mas cerca del hardware que del programador, han surgido compiladores de lenguajes de alto nivel, entre ellos se encuentran el BASIC y C.

Este es su diagrama de pines:

Cuenta con 16 pines de entrada/salida, dos temporizadores de 8 bits y uno de 16, ademas de dos comparadores. El pin # 5 es el que se conecta al negativo en la fuente de alimentación para los puertos de i/o. El pin # 14 es el que se conecta al positivo, pin #4 es el reset del dispositivo.


Pines principales


Características del PIC 16F628a:
  • Velocidades de operacion de DC - 20 MHz
  • Capacidad de interrupcion
  • Pila de 8 niveles
  • Modos de direccionamiento directos, indirectos y relativo
Algunas características especiales del microcontrolador:
  • Opciones de oscilador externo e interno
  • Modo de ahorro de energía
  • Multiplexado del pin reset/entrada-pin
  • Alta durabilidad de la memoria Flash/EEPROM
Tipos de memoria del pic 16f628a:
  • Memoria flash: memoria de tipo no volátil, aquí se almacena el programa que realicemos.
  • Tiene una capacidad de 2048 words osea 2048 lineas de código que se pueden escribir en assembler
  • Memoria RAM: sirve para guardar datos y variables, esta memoria es tipo volátil.
  • Memoria eeprom: memoria de tipo no volátil de poca capacidad sirve para guardar datos, aun cuando deje de recibir alimentación la información no se pierde.

Referencias: