Articulo cientifico del Arduino.docx

Universidad Técnica del Norte EL ARDUINO Sandoval Sara, David Vásquez [email protected];[email protected] En

Views 182 Downloads 16 File size 722KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Universidad Técnica del Norte

EL ARDUINO Sandoval Sara, David Vásquez [email protected];[email protected]

En este artículo se analizará el Arduino, historia, funcionamiento, especificaciones de hardware y software, tipos de Arduino, tipo de conexiones, aplicaciones, interfases de programación, etc. Lo que nos facilita en el diseño de proyectos electrónicos.

Los principales responsables de la idea y diseño de Arduino fueron Massimo Banzi, David Cuartielles, David Mellis, Tom Igoe y Gianluca Martino.

Abstract—

El Arduino es una placa basada en un microcontrolador ATMEL.

Resumen—

This article will analyze the Arduino, history, functioning, hardware and software specifications, types of microcontrollers, type of connections, applications, programming interfaces, which facilitates us in the design of electronic projects.

Palabras clave: microcontrolador, hardware, software, interfases de programación. I.

INTRODUCCIÓN

Arduino es una herramienta la cual realiza que los ordenadores puedan sentir y controlar el mundo físico a través de tu ordenador personal. Es una plataforma de desarrollo basada en una placa electrónica de hardware y software libre que incorpora un microcontrolador reprogramable y una serie de pines hembra, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. El hardware libre son los dispositivos cuyas especificaciones y diagramas son de acceso público, de manera que cualquiera puede replicarlos. Esto quiere decir que Arduino ofrece las bases para que cualquier otra persona o empresa pueda crear sus propias placas, pudiendo ser diferentes ellas, pero igualmente funcionales al partir de la misma base. El software libre son los programas informáticos cuyo código es accesible por cualquiera para que quien quiera pueda utilizarlo y modificarlo. Arduino ofrece la plataforma Arduino IDE (Entorno de Desarrollo Integrado), que es un entorno de programación con el que cualquiera puede crear aplicaciones para las placas Arduino, de manera que se les puede dar todo tipo de utilidades.

II.

DESARROLO DE CONTENIDOS

A. HISTORIA Arduino Nació en el año 2005 el Instituto de Diseño Interativo de Ivrea (Italia). Arduino apareció por la necesidad de contar con un dispositivo para utilizar en aulas que fuera de bajo costo. La idea original fue, fabricar una placa para uso interno de la escuela. Sin embargo, el instituto se vio obligado a cerrar sus puertas precisamente en 2005. Ante la perspectiva de perder todo el proyecto Arduino en el proceso, se decidió liberarlo y abrirlo al público para que todo el mundo pudiese participar en la evolución del proyecto, proponer mejoras y sugerencias.

B. FUNCIONAMIENTO

Los microcontroladores son circuitos integrados en los que se pueden grabar instrucciones, las cuales las escribes con el lenguaje de programación que puedes utilizar en el entorno Arduino IDE. Estas instrucciones permiten crear programas que interactúan con los circuitos de la placa. El microcontrolador de Arduino posee lo que se llama una interfaz de entrada, que es una conexión en la que podemos conectar en la placa diferentes tipos de periféricos. La información de estos periféricos que conectes se trasladará al microcontrolador, el cual se encargará de procesar los datos que le lleguen a través de ellos. Las funciones de Arduino, como ocurre con la mayoría de las placas de microcontroladores, se pueden resumir en 3 factores: 1.

Cuenta con una interfaz de entrada. Esta puede estar directamente unida a los periféricos, o conectarse a ellos a través de puertos.

2.

La interfaz de entrada tiene como objetivo trasladar la información al microcontrolador. El microcontrolador es la pieza que se encarga de procesar esos datos. Además, varía dependiendo de las necesidades del proyecto en el que se desee usar la placa, y existe una gran variedad de fabricantes y versiones disponibles.

3.

También cuenta con interfaz de salida. Este se encarga de llevar la información procesada a los periféricos autorizados de hacer el uso final de esos datos. En algunos casos puede tratarse de otra placa en la que se centraliza y procesa la información de forma totalmente renovada, o sencillamente, puede ser una pantalla o un altavoz encargado de mostrar la versión final de los datos.

El tipo de periféricos que puedas utilizar para enviar datos al microcontrolador depende en gran medida de qué uso le estés pensando dar. Pueden ser cámaras para obtener imágenes, teclados para introducir datos, o diferentes tipos de sensores. También cuenta con una interfaz de salida, que es la que se encarga de llevar la información que se ha procesado en el Arduino a otros periféricos. Estos periféricos pueden ser pantallas o altavoces en los que reproducir los datos procesados, pero también pueden ser otras placas o controladores. Arduino es un proyecto y no un modelo concreto de placa, lo que quiere decir que compartiendo su diseño básico te puedes encontrar con diferentes tipos de placas. Las hay de varias formas, tamaños y colores para a las necesidades del proyecto en el que estés trabajando,

Universidad Técnica del Norte las hay sencillas o con características mejoradas, Arduino orientado al Internet de las Cosas o la impresión 3D y, por supuesto, dependiendo de estas características te encontrarás con todo tipo de precios. Además, las placas Arduino también cuentan con otro tipo de componentes llamados Escudos (Shields) o mochilas. Se trata de una especie de placas que se conectan a la placa principal para añadirle una infinidad de funciones, como GPS, relojes en tiempo real, conectividad por radio, pantallas táctiles LCD, placas de desarrollo, y un larguísimo etcétera de elementos.

C. ESPECIFICACIONES SOFTWARE

DE

HARDWARE

Y

Hardware

Shields Se llama así a las placas que se insertan sobre Arduino a modo de escudo ampliando sus posibilidades de uso. En el mercado existen infinidad de shields para cada tipo de Arduino. Algunas de las más comunes son las de Ethernet, Wi-Fi, Ultrasonidos, Pantallas LCD, relés, matrices LED’s, GPS. Arduino está constituido en el hardware por un micro controlador principal llamado Atmel AVR de 8 bits (que es programable con un lenguaje de alto nivel), presente en la mayoría de los modelos de Arduino El HW de Arduino es básicamente una placa con un microcontrolador. Un microcontrolador (abreviado µC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida. Características de un Microcontrolador:

Fig. 1. Partes de un Arduino.

Entradas Son los pines de nuestra placa que podemos utilizar para hacer lecturas. En la placa Uno son los pines digitales (del 0 al 13) y los analógicos (del A0 al A5).

          

Velocidad del reloj u oscilador Tamaño de palabra Memoria: SRAM, Flash, EEPROM, ROM, etc.. I/O Digitales Entradas Analógicas Salidas analógicas (PWM) DAC (Digital to Analog Converter) ADC (Analog to Digital Converter) Buses UART Otras comunicaciones.

Salidas Los pines de salidas se utilizan para el envío de señales. En este caso los pines de salida son sólo los digitales (0 a 13). Otros pines También tenemos otros pines como los GND (tierra), 5V que proporciona 5 Voltios, 3.3V que proporciona 3.3 Voltios, los pines REF de referencia de voltaje, TX (transmisión) y RX (lectura) también usados para comunicación serial, RESET para resetear, Vin para alimentar la placa y los pines ICSP para comunicación SPI. Alimentación Como hemos visto el pin Vin sirve para alimentar la placa pero lo más normal es alimentarlo por el jack de alimentación usando una tensión de 7 a 12 Voltios. También podemos alimentarlo por el puerto USB pero en la mayoría de aplicaciones no lo tendremos conectado a un ordenador. Comunicación En nuestros tutoriales nos comunicaremos con Arduino mediante USB para cargar los programas o enviar/recibir datos. Sin embargo no es la única forma que tiene Arduino de comunicarse. Cuando insertamos una shield ésta se comunica con nuestra placa utilizando los pines ICSP (comunicación ISP), los pines 10 a 13 (también usados para comunicación ISP), los pines TX/RX o cualquiera de los digitales ya que son capaces de configurarse como pines de entrada o salida y recibir o enviar pulsos digitales.

Fig. 2. Hardware del Arduino.

Software El software de Arduino es un IDE, entorno de desarrollo integrado (siglas en inglés de Integrated Development Environment). Es un programa informático compuesto por un conjunto de herramientas de programación. El IDE de Arduino es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, consiste en un editor de código, un compilador, un depurador y un constructor de

Universidad Técnica del Norte interfaz gráfica (GUI). Además incorpora las herramientas para cargar el programa ya compilado en la memoria flash del hardware.

o

Pines de entradas análogas: 6

o

Corriente DC por cada pin I/O: 40 mA

o

Corriente DC en el pin de 3.3 V: 50 mA

o

Memoria Flash: 32 KB (ATmega328) de los cuales 0.5 KB son utilizados por el bootloader

o

SRAM: 2 KB (ATmega328)

o

EEPROM: 1 KB (ATmega328)

o

Velocidad de reloj: 16 MHz



Arduino MEGA 2560

Fig. 5. Arduino Mega 2560.

Fig. 3. Sofware del Arduino.

Es destacable desde la aparición de la versión 1.6.2 la incorporación de la gestión de librerías y la gestión de placas muy mejoradas respecto a la versión anterior y los avisos de actualización de versiones de librerías y cores.

D. TIPOS DE ARDUINO Siendo Arduino una de las primeras plataformas microcontroladoras open source en el mundo, era de esperar que se desarrollaran varias versiones de ésta. Muchos principiantes dan sus primeros pasos con el Arduino UNO, pero a medida que se avanza en el dominio de la programación y la electrónica, los requerimientos de procesamiento y número de pines de entrada y salida, aumentan de manera que el UNO ya no es suficiente para nuestros proyectos. A continuación, puedes los diferentes modelos oficiales de Arduino:



o

Microcontrolador: ATmega2560

o

Voltaje de funcionamiento: 5 V

o

Pines I/O digitales: 54 (de los cuales 15 proveen salida PWM)

o

Pines de entradas análogas: 16

o

Corriente DC por cada pin I/O: 40 mA

o

Corriente DC en el pin de 3.3 V: 50 mA

o

Memoria Flash: 256 KB de los cuales 8 KB son utilizados por el bootloader

Arduino UNO o

SRAM: 8 KB (ATmega328)

o

EEPROM: 4 KB (ATmega328)

o

Velocidad del reloj: 16 MHz



Arduino MICRO

Fig. 4. Arduino Uno.

o

Microcontrolador: ATmega328

o

Voltaje de funcionamiento: 5 V

o

Pines I/O digitales: 14 (de los cuales 6 proveen salida PWM)

Fig. 5. Arduino MICRO.

o

Microcontrolador: ATmega32u4

Universidad Técnica del Norte

o

Voltaje de funcionamiento: 5 V

o

Pines I/O digitales: 20

o

Canales PWM: 7

o

Pines de entradas análogas: 12

o

Corriente DC por cada pin I/O: 40 mA

o

Corriente DC en el pin de 3.3 V: 50 mA

o

Memoria Flash: 32 KB (ATmega32u4) de los cuales 4 KB



Arduino LEONARDO

Fig. 7. Arduino LEONARDO.

son utilizados por el bootloader

o

Microcontrolador: ATmega32u4

o

SRAM: 2.5 KB (ATmega32u4)

o

Voltaje de funcionamiento: 5 V

o

EEPROM: 1 KB (ATmega32u4)

o

Pines I/O digitales: 20

o

Velocidad de reloj: 16 MHz

o

Canales PWM: 7



Arduino NANO

o

Pines de entradas análogas: 12

o

Corriente DC por cada pin I/O: 40 mA

o

Corriente DC en el pin de 3.3 V: 50 mA

o

Memoria Flash: 32 KB (ATmega32u4) de los cuales 4 KB son utilizados por el bootloader

Fig. 6. Arduino NANO.

o

SRAM: 2 KB (ATmega32u4)

o

EEPROM: 1 KB (ATmega32u4)

o

Velocidad de reloj: 16 MHz

o

Microcontrolador: ATmega168

o

Procesador Linux: Atheros AR9331

o

Voltaje de funcionamiento: 5 V

o

Arquitectura: MIPS @400MHz

o

Pines I/O digitales: 14 (de los cuales 6 proveen salida

o

Ethernet: IEEE 802.3 10/100Mbit/s

o

WiFi: IEEE 802.11b/g/n

o

USB Tipo A: 2.0

o

Lector de tarjeta: sólo Micro-SD

o

RAM: 64 MB DDR2

o

Memoria Flash:16 MB



Arduino YUN

PWM)

o

Pines de entradas análogas: 8

o

Corriente DC por cada pin I/O: 40 mA

o

Memoria Flash: 16 KB de los cuales 2 KB son utilizados por el bootloader

o

SRAM: 1 KB

o

EEPROM: 512 bytes



Velocidad de reloj: 16

Universidad Técnica del Norte

Fig.8 . Arduino YUN.

o

Microcontrolador AVR Arduino: ATmega32u4

o

Voltaje de funcionamiento: 5 V

o

Pines I/O digitales: 20

o

Canales PWM: 7

o

Pines de entradas análogas: 12

o

Corriente DC por cada pin I/O: 40 mA

o

Corriente DC en el pin de 3.3 V: 50 mA

o

Memoria Flash: 32 KB (de los cuales 4 KB son utilizados por el bootloader

o

SRAM: 2.5 KB

o

EEPROM: 1 KB

o

Velocidad de reloj: 16 MHz

E. ENTRADAS Y SALIDAS Mediante los conectores de Arduino correspondientes a las entradas y salidas podemos comunicar nuestros programas con el “mundo exterior”. Si queremos leer el valor de la magnitud física medida por un sensor, por ejemplo una LDR que detecta el nivel de luminosidad, lo tendremos que hacer conectando el sensor a uno de los pines de entrada (en este caso analógicas) de la tarjeta. De esta forma con una simple instrucción de lectura en el programa, podremos obtener el valor de la magnitud física. Si nuestra intención es actuar o “hacer algo” una vez leído el valor del sensor, por ejemplo encender un led si el sensor de luminosidad detecta oscuridad, tendremos que conectar el actuador (en este caso el led) a un pin de salida que proporcionará la corriente necesaria para activarlo. En Arduino las entradas pueden ser analógicas o digitales y las salidas sólo digitales. Cada pin digital tiene doble función entrada o salida. En la zona de configuración del programa hay que indicar explícitamente mediante una instrucción cuál es función desempeña un determinado pin. Entradas Analógicas o digitales

Los sensores utilizados en los proyectos que vamos a utilizar son de salida analógica, es decir proporcionan una variación de voltaje dentro de un rango (normalmente de 0 a +5V) dependiendo de lo que varíe la magnitud física medida. Muchos sensores son resistivos (luz, temperatura, humedad ), es decir que varían su resistencia eléctrica con la magnitud física, pero mediante un sencillo montaje de divisor de tensión conseguimos una variación de voltaje apta para Arduino. Estos montajes los veremos en las prácticas del manual. Una vez realizadas las conexiones, si midiéramos la salida del sensor con un voltímetro nos daría un valor decimal, por ejemplo, un nivel de luz “intermedio” (rango de 0 a 5V) de un sensor de luz podría dar 3,3 voltios. Este tipo de información el microcontrolador no la entiende tal cual, sólo es capaz de interpretar números binarios (“0” ó “1”) por lo que para traducir los valores analógicos dispone internamente de un conversor analógico – digital que hará la conversión entre los dos sistemas, de forma que podremos tener valores discretos de la medida de los sensores analógicos. Las entradas digitales son útiles cuando las señales a leer son valores discretos. Por ejemplo, queremos poner un pulsador o un interruptor que encienda un led. Hacemos un montaje que cuando se pulse, entren 5 voltios en el pin digital de entrada y cuando no se pulse que “entren” 0 voltios. De esta manera la lectura del pin digital de entrada será “HIGH” con 5 voltios o “LOW” con 0 voltios. Son salidas digitales que simulan una salida analógica. Las siglas significan Modulación por Ancho de Pulso (Pulse Width Modulation) o proporcionan una onda cuadrada con un nivel alto (+5V) de “cierta”duración. Es muy útil para activar servomotores y llevarlos a una posición determinada o variar la luminosidad de un led. Lo puedes ver más explicado en la siguiente sección.

F. BENEFICIOS Bajo costo. La placa Arduino estándar (Arduino UNO) tiene un valor aproximado de $17.000(pesos chilenos). Incluso uno mismo la podría construir(una gran ventaja del hardware libre), con lo que el precio de la placa seria incluso menor. Multiplataforma. El software de Arduino se ejecuta en sistemas operativos Windows, Macintosh OSX y GNU/Linux. La mayoría de los sistemas microcontroladores están limitados a Windows. Entorno de programación simple y claro El entorno de programación de Arduino es fácil de usar para principiantes, pero su cientemente flexible para que usuarios avanzados puedan aprovecharlo también. está convenientemente basado en el entorno de programación Processing. Código abierto y software extensible El software Arduino está publicado como herramientas de código abierto, disponible para extensión por programadores experimentados. El lenguaje puede ser expandido mediante librerias C++, y la gente que quiera entender los detalles técnicos pueden hacer el salto desde Arduino a la programación en lenguaje AVR C en el cual está basado. De forma similar, puedes añadir código AVR-C directamente en tus programas Arduino si quieres.

Universidad Técnica del Norte Código abierto y hardware extensible El Arduino está basado en microcontroladores ATMEGA8 y ATMEGA168 de Atmel. Los planos para los módulos están publicados bajo licencia Creative Commons, por lo que diseñadores experimentados de circuitos pueden hacer su propia versión del módulo, extendiéndolo y mejorándolo. Incluso usuarios relativamente inexpertos pueden construir la versión de la placa del módulo para entender como funciona y ahorrar dinero.

2.

Juego de sogatira

Hacer un juego con 7 leds y dos botones. El led central se ilumina y en función de quien más veces pulsa el botón el led encendido se va desplazando hacia él, hasta que gana cuando ha llegado al último led. En el inicio el led central parpadea y comienza el juego cuando se queda fijo, cada vez que se gana una posición el led parpadea y cuando gana el led final se queda parpadeando en un bucle infinito hasta que reseteo el Arduino para volver a jugar.

G. APLICACIONES

Existen multitud de entornos de aplicación de Arduino: automatización industrial, domótica, herramienta de prototipado, plataforma de entrenamiento para aprendizaje de electrónica, tecnología para artistas, eficiencia energética, monitorización, adquisición de datos, DIY, aprendizaje de habilidades tecnológicas y programación, etc… En la educación tanto en institutos en secundaria y bachillerato como en formación profesional y la universidad, Arduino ha entrado con mucha fuerza para entrenar habilidades y como herramienta pedagógica. Ejemplos: Fig.8 . Diseño en Arduino de un juego de sogatira.

1.

Arranque y parada de motor DC controlado

Mover un motor DC de 9V usando un integrado L293D (Quadruple Half-H driver). Para controlar la velocidad del motor se usará un potenciómetro conectado al pin A0. Además se usarán dos botones, uno conectado al pin digital 4 para controlar el sentido de giro del motor y otro conectado al pin digital 5 que controlará el encendido y apagado del motor. Con cada pulsación encendemos y apagamos el motor o usamos una dirección de giro u otra con el otro botón. Sobre este montaje, añadir una rampa de arranque y otra de parada cuando se detecte el encendido y apagado. También añadir una rampa de parada y arranque cuando se detecte un cambio de sentido. Añadir un botón de parada de emergencia, que al pulsarlo, se pare el motor inmediatamente.

Fig.8 . Diseño en Arduino de un controlador de motor.

H. LENGUAJE DE PROGRAMACIÓN ARDUINO La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje de programación de alto nivel Processing. Sin embargo, es posible utilizar otros lenguajes de programación y aplicaciones populares en Arduino, debido a que Arduino usa la transmisión serial de datos soportada por la mayoría de los lenguajes mencionados. Para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicación fluida. Algunos ejemplos son: 

3DVIA Virtools: aplicaciones interactivas y de tiempo real.



Adobe Director



BlitzMax (con acceso restringido)



C, C++, C#



Cocoa/Objective-C (para Mac OS X)



Flash (mediante ActionScript)



Gambas



Isadora (Interactividad audiovisual en tiempo real)



Instant Reality (X3D)



Java



Liberlab (software de medición y experimentación)



Mathematica



Matlab

Universidad Técnica del Norte

III.

CONCLUSIONES 

Conocer el uso del Arduino es de gran utilidad, como en el ahorro de elementos electrónicos y en sustitución de ello usar un lenguaje de programación lo que hace que sea de muy fácil uso.



Aplicar conocimientos de electrónica es mucho mas sencillo con el uso de un Arduino, así como su aprendizaje.



Al realizar este articulo científico a creado curiosidad sobre el uso y ejecución del Arduino,

IV.

V.

RECOMENDACIONES 

Arduino es una herramienta bastante útil, y con gran variedad de aplicaciones, por lo cual recomendamos investigar y realizar proyectos con el fin de fomentar el conocimiento.



Arduino es una herramienta sencilla de programación lo que hace ideal para el desarrollo y simulación de proyectos, se recomienda familiarizarse con los diferentes tipos de programación y probar cada uno de ellos.



Tomar en cuenta los diferentes tipos de Arduino según sus características para su correcta utilización de los proyectos que se desee desempeñar.

BILIOGRAFÍA [1] G.A López Pedro, Electrotecnia. (2017) Robótica y domótica básica con Arduino pp.43 [2] J. Goliav Nicolas (2016) Arduino aprender a desarrollar objetos inteligentes pp 141. [3] E. Vicuña Johnny (2018) Arduino y el internet de las cosas pp 15. [4] A. López Eugenio (2016) Arduino Fundamentos guía práctica y simulaciones pp 141.