arduino-investigación
TRANSCRIPT
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO
INSTITUTO DE CIENCIAS BÁSICAS E INGENIERÍA
ESCUELA SUPERIOR DE TLAHUELILPAN
LICENCIATURA EN SISTEMAS COMPUTACIONALES
ELECTRÓNICA BÁSICA
“INVESTIGACIÓN: ARDUINO”
PLANTEAMIENTO DEL PROBLEMA
Debido a la necesidad de conocer de donde es que surge el hardware-open source Arduino
y todos los misterios que le rodean es necesario investigar sobre este dispositivo. Dando a
conocer toda la información posible para que otros puedan conocerlo y animarse a trabajar
con él.
Una de los principales problemas es que no sabemos ¿qué es?, de ahí nos surgen otra serie
de preguntas que deseamos conocer sus respuestas; ¿cómo funciona?, ¿para que sirve?, sus
características, aplicaciones; por ello esta investigación que ayudará a conocer la
plataforma de arduino.
OBJETIVO:
El objetivo es adquirir conocimiento nuevo del arduino, que ayude a comprender la
plataforma y aproxime al lector a esta plataforma y sé anime a usarla para que desarrolle
sus propias creaciones haciendo uso de todas sus capacidades intelectuales que posee.
INTRODUCCIÓN:
Arduino nació debido a la necesidad de crear una herramienta para los estudiantes, que
fuera moderna, fácil de utilizar y de bajo costo, Massimo Banzi. El proyecto se vio
apresurado cuando el Instituto de Diseño Interactivo de Ivrea (IDII) se estaba quedando sin
fondos e iba a cerrar sus puertas. Así fue como todo se apresuró para que el proyecto no se
quedara solo en una idea o que el proyecto no sobreviviera y pudiese ser objeto de
apropiación indebida.
El nombre de Arduino surgió en la ciudad de Ivrea, famosa por sus reyes de desamparados.
En 1002, rey Arduin se convirtió en el gobernante del país. Hoy, el Bar di Re Arduino, un
pub en una calle de la ciudad, Cobblestoned rinde homenaje a su memoria, y es donde
nació un nuevo rey improbable. El bar es frecuentado por Massimo Banzi, el italiano
cofundador del proyecto electrónica que llamó “Arduino” en honor del lugar.
Arduino es un micro controlador de bajo costo lanzado en agosto de 2005 el cual permite
incluso a un novato hacer cosas realmente increíbles. Al arduino se le puede conectar todo
tipo de sensores, luces, motores y otros dispositivos y utilizar, aprender software para
programar cómo se comportará la creación. Todos los esquemas de hardware y código
fuente están disponibles gratuitamente bajo licencias públicas. Como resultado, Arduino se
ha convertido en el movimiento de hardware de código abierto más influyente de su época.
ANTECEDENTES
Arduino empezó como un proyecto que se hizo en el instituto de diseño interactivo de Ivrea
en el año 2005, dirigido por Massimo Banzi, un profesor del instituto. Uno de los
creadores se inspiro en otros proyectos que se habían trabajado porque se pretendía hacer
una herramienta para los estudiantes que fuera mas moderna que las que estaban
disponibles en el mercado, sobre todo porque la herramienta que se usaba es ese entonces
era una plataforma llamada BASIC Stamp, que en Italia costaba aproximadamente 76 euros,
resultaba muy caro para los estudiantes porque no querían gastar dinero en comprar muchas
placas así de caras. Comenzaron a buscando posibles alternativas; además de que ya se
estaba trabajando con Processing, el lenguaje de programación e intentaron descubrir un
Processing para el Hardware, de esta forma se trabajó con un estudiante que hizo una tesis
sobre el tema, y se llegó a la plataforma Wiring. Hernando Barragán, un estudiante
colombiano, trabajo en ello. Después de que Barragán hiciera Wiring, se comenzó a pensar
en como hacer toda la plataforma aún más simple, barata y fácil de usar. Básicamente se re
implemento todo como un proyecto open source para que todo el mundo pudiera contribuir.
Otro de los impulsos de este proyecto fue que la escuela iba a cerrar, así que sus inventores
decidieron avanzar lo más rápido posible en la plataforma.
¿Qué es arduino?
Es una plataforma electrónica de hardware programable muy flexible y fácil de usar;
basada en Wiring con entradas y salidas, analógicas y digitales que conecta el mundo físico
con el mundo virtual, o el mundo analógico con el digital. Arduino puede tomar
información del entorno a través de sus pines de entrada de toda una gama de sensores y
puede afectar aquello que le rodea controlando luces, motores y otros actuadores.
El entorno de desarrollo que implementa el lenguaje de programación es
Processing/Wiring, se puede descargar gratuitamente y el hardware se puede montar a
mano o comprarlo pre ensamblado puesto que es open source.
A continuación se describe lo que posee arduino uno:
14 entrada/salida digitales, de los cuales 6 pueden se usados como salidas PWM
Posee 6 entradas analógicas
Los pin 0 y 1 pueden funcionar como RX y TX serial.
Un oscilador de cristal de 16 MHz
Conector USB
Un Jack de poder
Una conector ICSP
Botón de Reset
Arduino tiene todo lo que se necesita para manejar el controlador, simplemente se conecta a
un computador por medio del cable USB o se puede alimentar utilizando una batería o un
adaptador AC-DC. Si se conecta por USB, la alimentación externa no es necesaria.
Para programar sólo se necesita el IDE de Arduino que se puede conseguir en la página
oficial.
Figura 1. Arduino uno
Sus especificaciones son:
Microcontrolador ATmega328
Voltaje al que opera 5V
Voltaje de entrada(recomendado) 7-12 V
Voltaje (limite) 6-20 V
Digital I/O Pins 14 (of which 6 provide PWM output)
Pines de entrada analógica 6
Corriente de I/O Pin 40 mA
Corriente continua de 3.3V Pin 50 mA
Memoria Flash32 KB (de los cuales 0,5 MB son utilizados por
gestor de arranque)
SRAM 2 KB
EEPROM 1 KB
Velocidad de reloj 16 MHz
Las Entradas analógicas son de 10 bits, por lo que entregan valores entre 0 y 1023. El rango
de voltaje está dado entre 0 y 5 volts, pero utilizando el pin AREF disponible, este rango se
puede variar a algún otro deseado.
Tipos de arduino
Debido a la gran aceptación del público fue necesario crear otros modelos que satisficieran
las necesidades de los usuarios así es como surge una gama de modelos de arduino.
Arduino Duemilanove/UNO Arduino Mega Arduino Mini Arduino Nano Arduino Lilypad Arduino Bluetooth Arduino Fio
Arduino Duemilanove
Figura 2. Arduino Duemilanove
El Arduino Duemilanove ("2009") es una placa con microcontrolador basada en el
ATmega168 o el ATmega328, 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 16
MHz, conexión USB, entrada de alimentación, una cabecera ISCP, y un botón de reset.
Contiene todo lo necesario para utilizar el microcontrolador; simplemente es necesario
conectarlo al ordenador a través del cable USB o aliméntalo con un transformador o una
batería para empezar a trabajar con el.
Especificaciones:
Microcontrolador ATmega368 (ATmega168 en versiones anteriores)
Voltaje de funcionamiento 5V
Voltaje de entrada (recomendado)
7-12V
Voltaje de entrada (limite) 6-20V
Pines E/S digitales 14 (6 proporcionan salida PWM)
Pines de entrada analógica 6
Intensidad por pin 40 mA
Intensidad en pin 3.3V 50 mA
Memoria Flash16 KB (ATmega168) o 32 KB (ATmega328) de las cuales 2 KB las usa el gestor de arranque(bootloader)
SRAM 1 KB (ATmega168) o 2 KB (ATmega328)
EEPROM 512 bytes (ATmega168) o 1 KB (ATmega328)
Velocidad de reloj 16 MHz
Alimentación
El Arduino Duemilanove puede ser alimentado vía la conexión USB o con una fuente de
alimentación externa. El origen de la alimentación se selecciona automáticamente.
Las fuentes de alimentación externas pueden ser tanto un transformador o una batería. El
transformador se puede conectar usando un conector macho de 2.1mm con centro positivo
en el conector hembra de la placa. Los cables de la batería pueden conectarse a los pines
Gnd y Vin en los conectores de alimentación (POWER).
La placa puede trabajar con una alimentación externa de entre 6 a 20 voltios. Si el voltaje
suministrado es inferior a 7V el pin de 5V puede proporcionar menos de 5 Voltios y la
placa puede volverse inestable, si se usan mas de 12V los reguladores de voltaje se pueden
sobrecalentar y dañar la placa. El rango recomendado es de 7 a 12 voltios.
Los pines de alimentación son los siguientes:
VIN. La entrada de voltaje a la placa Arduino cuando se esta usando una fuente externa de
alimentación (en opuesto a los 5 voltios de la conexión USB). Se puede proporcionar
voltaje a través de este pin, o, si se esta alimentado a través de la conexión de 2.1mm,
acceder a ella a través de este pin.
5V. La fuente de voltaje estabilizado usado para alimentar el microcontrolador y otros
componentes de la placa. Esta puede provenir de VIN a través de un regulador integrado en
la placa, o proporcionada directamente por el USB u otra fuente estabilizada de 5V.
3.3V. Una fuente de voltaje a 3.3 voltios generada en el chip FTDI integrado en la placa. La
corriente máxima soportada 50 mA.
GND. Pines de toma de tierra.
Memoria
El ATmega328 tiene 32 KB (el ATmega168 tiene 16 KB) de memoria flash para almacenar
código (2 KB son usados para el arranque del sistema (bootloader).El ATmega328 tiene 2
KB (Atmega168 1 KB) de memoria SRAM . El ATmega328 tiene 1KB (ATmega168 512
bytes) de EEPROM, que puede a la cual se puede acceder para leer o escribir con la
[Reference/EEPROM |librería EEPROM]].
Entradas y Salidas
Cada uno de los 14 pines digitales en el Duemilanove pueden utilizarse como entradas o
como salidas usando las funciones pinMode(), digitalWrite(), y digitalRead() . Las E/S
operan a 5 voltios. Cada pin puede proporcionar o recibir una intensidad máxima de 40 mA
y tiene una resistencia interna (desconectada por defecto) de 20-50 kOhms. Además,
algunos pines tienen funciones especializadas:
Serie: 0 (RX) y 1 (TX). Usado para recibir (RX) transmitir (TX) datos a través de puerto
serie TTL. Estos pins están conectados a los pines correspondientes del chip FTDI USB-to-
TTL.
Interrupciones Externas: 2 y 3. Estos pines se pueden configurar para lanzar una
interrupción en un valor LOW (0 V), en flancos de subida o bajada (cambio de LOW a
HIGH (5 V) o viceversa), o en cambios de valor
PWM: 3, 5, 6, 9, 10, y 11. Proporciona una salida PWM (Pulse Wave Modulation,
modulación de onda por pulsos) de 8 bits de resolución (valores de 0 a 255) a través de la
función analogWrite().
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines proporcionan comunicación
SPI, que a pesar de que el hardware la proporcione actualmente no esta incluido en el
lenguaje Arduino.
LED: 13. Hay un LED integrado en la placa conectado al pin digital 13, cuando este pin
tiene un valor HIGH(5 V) el LED se enciende y cuando este tiene un valor LOW(0V) este
se apaga.
El Duemilanove tiene 6 entradas analógicas, y cada una de ellas proporciona una resolución
de 10 bits (1024 valores). Por defecto se mide de tierra a 5 voltios, aunque es posible
cambiar la cota superior de este rango usando el pin AREF y la función analogReference().
Además algunos pines tienen funciones especializadas:
I2C: 4 (SDA) y 5 (SCL). Soporte del protocolo de comunicaciones I2C (TWI) usando la
librería Wire.
Hay unos otros pines en la placa:
AREF. Voltaje de referencia para las entradas analógicas. Usado poranalogReference().
Reset. Suministrar un valor LOW (0 V) para reiniciar el microcontrolador. Típicamente
usado para añadir un botón de reset a los shields que no dejan acceso a este botón en la
placa.
Comunicaciones
EL Arduino Duemilanove facilita en varios aspectos la comunicación con el ordenador,
otro Arduino u otros microcontroladores. Tanto el ATmega328 como el Atmega168
proporciona comunicación vía serie UART TTL (5V), disponible a través de los pines
digitales 0(RX) y 1(TX). Un chip FTDI FT232RL integrado en la placa canaliza esta
comunicación serie a través del USB y los drivers FTDI (incluidos en el software de
Arduino) proporcionan un puerto serie virtual en el ordenador. El software incluye un
monitor de puerto serie que permite enviar y recibir información textual de la placa
Arduino. Los LEDS RX y TX de la placa parpadearan cuando se detecte comunicación
transmitida través del chip FTDI y la conexión USB (no parpadearan si se usa la
comunicación serie a través de los pines 0 y 1).
La librería SoftwareSerial permite comunicación serie por cualquier par de pines digitales
del Duemilanove.
Tanto el ATmega168 y ATmega328 también soportan la comunicación I2C (TWI) y SPI.
El software de Arduino incluye una librería Wire para simplificar el uso el bus I2C.
Programación
El ATmega328 y el ATmega168 en las placas Arduino Duemilanove viene precargado con
un gestor de arranque (bootloader) que permite cargar nuevo código sin necesidad de un
programador por hardware externo. Se comunica utilizando el protocolo STK500.
También se te puede saltar el gestor de arranque y programar directamente el
microcontrolador a través del puerto ISCP (In Circuit Serial Programming).
Reinicio Automático (Software)
En vez de necesitar reiniciar presionando físicamente el botón de reset antes de cargar, el
Arduino Duemilanove esta diseñado de manera que es posible reiniciar por software desde
el ordenador donde este conectado. Una de las líneas de control de flujo (DTR) del
FT232RL esta conectada a la línea de reinicio del ATmega328 o ATmega168 a través de
un condensador de 100 nano faradios. Cuando la línea se pone a LOW(0V), la línea de
reinicio también se pone a LOW el tiempo suficiente para reiniciar el chip. El software de
Arduino utiliza esta característica para permitir cargar los sketches con solo apretar un
botón del entorno. Dado que el gestor de arranque tiene un lapso de tiempo para ello, la
activación del DTR y la carga del sketch se coordinan perfectamente.
Esta configuración tiene otras implicaciones. Cuando el Duemilanove se conecta a un
ordenador con Mac OS X o Linux, esto reinicia la placa cada vez que se realiza una
conexión desde el software (vía USB). El medio segundo aproximadamente posterior, el
gestor de arranque se esta ejecutando. A pesar de estar programado para ignorar datos mal
formateados (ej. cualquier cosa que la carga de un programa nuevo) intercepta los primeros
bytes que se envían a la placa justo después de que se abra la conexión. Si un sketch
ejecutándose en la placa recibe algún tipo de configuración inicial u otro tipo de
información al inicio del programa, asegúrate que el software con el cual se comunica
espera un segundo después de abrir la conexión antes de enviar los datos.
El Duemilanove contiene una pista que puede ser cortada para deshabilitar el auto-reset.
Las terminaciones a cada lado pueden ser soldadas entre ellas para rehabilitarlo. Están
etiquetadas con "RESET-EN". También se puede deshabilitar el auto-reset conectando una
resistencia de 110 ohms desde el pin 5V al pin de reset.
Protección contra sobretensiones en USB
El Arduio Duemilanove tiene un multifusible reinicializable que protege la conexión USB
del ordenador de cortocircuitos y sobretensiones. A aparte que la mayoría de ordenadores
proporcionan su propia protección interna, el fusible proporciona una capa extra de
protección. Si mas de 500 mA son detectados en el puerto USB, el fusible automáticamente
corta la conexión hasta que el cortocircuito o la sobretensión desaparece.
Arduino Mega
Figura 2. Arduino Duemilanove
El 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. Contiene todo lo necesario para hacer funcionar el microcontrolador; simplemente se conecta al ordenador con el cable USB o se alimenta con un trasformador o batería para empezar. El Mega es compatible con la mayoría de shields diseñados para el Arduino Duemilanove o Diecimila.
Especificaciones
Microcontrolador ATmega1280
Voltaje de funcionamiento 5V
Voltaje de entrada (recomendado) 7-12V
Voltaje de entrada (limite) 6-20V
Pines E/S digitales 54 (14 proporcionan salida PWM)
Pines de entrada analógica 16
Intensidad por pin 40 mA
Intensidad en pin 3.3V 50 mA
Memoria Flash 128 KB de las cuales 4 KB las usa el gestor de
arranque(bootloader)
SRAM 8 KB
EEPROM 4 KB
Velocidad de reloj 16 MHz
Arduino Mini
Figura 4. Arduino Mega
Arduino Mini es una placa con un pequeño microcontrolador basada en el ATmega168,
pensada para ser usada en placas de prototipo y donde el espacio es un bien escaso. Cuenta
con 14 entradas/salidas digitales (de las cuales 6 pueden ser usadas como salidas PWM), 8
entradas analógicas y un cristal de 16 MHZ. Puede ser programada con el adaptador Mini
USB u otros adaptadores USB o RS232 a TTL serial
El Arduino mini no se alimenta el con más de 9 voltios, y no se conecta la alimentación al
revés.
Especificaciones
Microcontrolador ATmega168
Voltaje de funcionamiento 5V
Voltaje de entrada 7-9 V
Pines E/S digital14 (de las cuales 6 pueden ser usadas como salidas PWM)
Pines entrada analógica 8 (de las cuales 4 se extienden en pines)
DC Corriente continua por pin E/S 40 mA
Memoria Flash 16 KB (de las cuales 2 KB son usadas por el bootloader)
SRAM 1 KB
EEPROM 512 bytes
Velocidad de reloj 16 MHz
Arduino Nano
Figura 7. 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 del cable estándar. El nano fue diseñado y está siendo producido
por Gravitech.
Figura 8. Arduino Nano 3.0 (ATmega328)
Especificaciones:
Microcontrolador Atmel ATmega168 o ATmega328
Tensión de Operación (nivel lógico) 5 V
Tensión de Entrada (recomendado) 7-12 V
Tensión de Entrada (límites) 6-20 V
Pines E/S Digitales 14 (de los cuales 6 proveen de salida PWM
Entradas Analógicas 8
Corriente máx por cada PIN de E/S 40 mA
Memoria Flash16 KB (ATmega168) o 32 KB (ATmega328) de
los cuales 2KB son usados por el bootloader
SRAM 1 KB (ATmega168) o 2 KB (ATmega328)
EEPROM 512 bytes (ATmega168) o 1 KB (ATmega328)
Frecuencia de reloj 16 MHz
Dimensiones 18,5mm x 43.2mm
LilyPad Arduino
Figura 9. 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 esta basada en el ARmega168V (la versión
de baja consumo del ATmega168, o el ATmega328V. El LilyPad Arduino ha sido diseñado
y desarrollado por Leah Buechley y SparkFun Electronics.
El LilyPad Arduino no se alimenta con más de 5,5 voltios, ni se invierte la polaridad al
conectarlo porque se dañaría.
Especificaciones:
Microcontrolador ATmega168V o ATmega328V
Voltaje de funcionamiento 2.7-5.5 V
Voltaje de entrada 2.7-5.5 V
Pines E/S Digitales 14 (de las cuales 6 proporcionan salida PWM)
Pines Entradas Analógicas Input
Pins6
Intensidad por pin 40 mA
Memora Flash16 KB (de las cuales 2 KB las usa el gestor de
arranque(bootloader))
SRAM 1 KB
EEPROM 512 bytes
Velocidad de reloj 8 MHz
Arduino BT
El Arduino BT es una placa Arduino con el módulo Blueetooh incorporado, que permite la
comunicación inalámbrica.
Además, tiene otras diferencias con un Arduino NG:
El uso de un convertidor DC-DC, lo que permite que la placa sea alimentada con un
mínimo de 1,2 V, pero con un máximo de 5,5 V. Los voltajes superiores o la polaridad
invertida en la fuente de alimentación estropearía la placa.
Un ATmega168 para montaje en superficie (como con el Arduino Mini). Esto duplica la
cantidad de espacio disponible para los sketches y agrega tres pines PWM más y dos
entradas analógicas.
El Pin 7 está conectado al pin de reinicio (reset) del módulo bluetooth.
Utiliza sólo la comunicación serie a 115200 baudios, que es la velocidad a la que el módulo
ha sido configurado para usar.
Arduino Fio
Figura 10. Arduino Fio
El Arduino Fio es una placa para microcontrolador basada en el ATmega328P. Funciona a
3.3V y 8 MHz. Tiene 14 pines de E/S digitales (de los cuales 6 pueden usarse como salidas
PWM), 8 entradas analógicas, un resonador 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.
El Arduino FIO está diseñado para aplicaciones inalámbricas. El usuario puede subir sus
sketches con un cable FTDI o una placa adicional adaptadora Sparkfun. Además, si utiliza
un adaptador de USB a XBee modificado, como el USB Explorador de XBee, el usuario
puede subir sketches de forma inalámbrica. La tarjeta viene sin conectores pre-montados,
permitiendo el uso de diversos tipos de conectores o la soldadura directa de los cables.
Especificaciones:
Microcontrolador ATmega328P
Voltaje de trabajo 3.3V
Voltaje de Entrada 3.35 -12 V
Voltaje de Entrada en Carga 3.7 - 7 V
Pines E/S Digital 14 (of which 6 provide PWM output)
Pines de Entrada Analógica 8
Corriente DC por pin E/S 40 mA
Memoria Flash 32 KB (of which 2 KB used by bootloader)
SRAM 2 KB
EEPROM 1 KB
Frecuencia de Reloj 8 MHz
También existen los llamados Arduino Shields, complementos para ampliar y mejorar las
características de cada placa, añadiendo conexión inalámbrica, conexión Ethernet o
módulos para controlar motores.
Estas placas se programan con el software de Arduino. A través del entorno podemos
escribir el código, depurarlo y cargarlo a la placa para realizar nuestros proyectos.
Aplicaciones
No hay una aplicación especifica por mencionar porque con arduino ya existen un sin
numero de proyectos desarrollados con esta plataforma. Principalmente hay proyectos de
diseño interactivo, sin embargo ya que tiene la característica de ser muy flexible la han
empleado para crear prototipos robóticos, entre muchos otros que son realmente
sorprendentes. El único límite tal vez para crear una aplicación se a la imaginación.
Referencias
http://www.arduinoacademy.com/2011/11/24/noticias-academy-fabuloso- documental-sobre-arduino-realizado-por-laboral-centro-de-arte-y-tecnologia/ (documental sobre arduino)
http://www.mediafire.com/?ku09zvwgntdb8qh manual de programación http://www.arduino.cc/