Tutorial Básico Arduino

29
Universidad de San Carlos de Guatemala Facultad de Ingeniería CONOCIMIENTOS BÁSICOS DE ARDUINO

description

Con este manual podras aprender a configurar e instalar tu arduino desde 0.

Transcript of Tutorial Básico Arduino

Page 1: Tutorial Básico Arduino

Universidad de San Carlos de GuatemalaFacultad de Ingeniería

CONOCIMIENTOS BÁSICOS DE ARDUINO

Elio Josué Alvarado Velásquez16 de septiembre de 2014

Page 2: Tutorial Básico Arduino

PREFACIO

El siguiente trabajo fue desarrollado por Elio Josué Alvarado Velásquez en el mes de Septiembre del año 2014, en la ciudad de Guatemala, Guatemala. Debido a que es muy poco el conocimiento que se tiene en Guatemala sobre recursos de OpenSource como por ejemplo el dispositivo electrónico llamado Arduino, se planteo realizar un trabajo informativo de lo qué se necesita y como usarlo para crear aplicaciones ó proyectos en este dispositivo. El trabajo se desarrollo únicamente con contenido de internet, por lo que cualquiera con un ordenador e internet será capaz de ver las fuentes consultadas, cabe resaltar que los ejemplos de configuraciones se hicieron en la plataforma de MacOs X y que estas varían según el sistema operativo a usar.

Page 3: Tutorial Básico Arduino

INDICE

1. ÍNDICE ……..……..…….…..……..……..……..……..……..……..……..……..……..……..……… 32. INTRODUCCIÓN.……..…….…..……..……..……..……..……..……..……..……..……..……… 43. OBJETIVOS ..……..……..……..……..……..……..……..….……..……..……..……..……………. 54. JUSTIFICACIÓN...……..……..……..……..…….…..……..……..……..……..……..……..……… 65. CONTENIDO..……..……..……..……..……..……..……..……..……..…….…..……..……..…….. 7

5.1 Por Qué Usar Arduino….….….….….….….….….….…….….….….….….….….….….…. 75.2 Ventajas de Usar Arduino….….….….….….….….….….….…..….….….….….….….…. 75.3 Instalación y Configuración.….….….….….….….….….….…..….….….….….….….. 7-105.4 Tipos de Arduinos….….….….…...….….….….….….….….….….….….….….….….…. 10-115.5 Estructura del Lenguaje, Funciones Principales, Ejemplos ….….….….…. 11-13

6. ERRORES COMUNES………..……..……..……..……..……..……..……..………..……..…… 147. PREGUNTAS FRECUENTES…..………..……..……..………..……..……..……..……..…… 158. CONCLUSIONES ……..……..………….…..……..……..……..……..………..……..……..…… 169. RECOMENDACIONES ……..……………..……..……..……..……..……..……..……..……... 1710. BIBLIOGRAFÍA ………...……..……..……..……..……..……..……..……..……..……..……... 1811. ENLACES DE AYUDA ……..……….……..……..……..……..……..……..……..……..……… 1912. ANEXOS ……..……..……..……..……..……..……..……..……..……..……..……..……..….20-23

Page 4: Tutorial Básico Arduino

INTRODUCCIÓN

Arduino es un dispositivo electrónico relativamente nuevo en la actualidad que llega al mundo con el objetivo de facilitarle la vida a las personas y de poder crecer como proyecto con la ayuda del mundo entero, por esta misma razón cualquiera puede comprar o crear su propio Arduino e inventar sus propios proyectos y subirlos a internet para que más personas puedan apreciar las capacidades de este dispositivo y compartir información del mismo sin ningún interés lucrativo. En este documento se muestra la forma en que se debe trabajar con Arduino, desarrollando temas sobre configuraciones, programación, tipos de software y las ventajas que trabajar con Arduino conlleva.

Page 5: Tutorial Básico Arduino

OBJETIVOS

OBJETIVO GENERAL

Crear interés en las personas para utilizar la plataforma de open-source llamado Arduino

OBJETIVO ESPECIFICO

Mostrar de qué manera se debe configurar Arduino para cargar programas.

Enseñar cómo se debe programar para la plataforma Arduino.

Demostrar que el aprendizaje de Arduino tiene beneficios.

Page 6: Tutorial Básico Arduino

JUSTIFICACIÓN

El gran auge que el internet tiene en la actualidad permite que cualquier persona con un ordenador pueda aprender absolutamente cualquier cosa que desee pero muchas veces el conocimiento tiene un costo, inclusive si este yace en internet por lo que hace varios años se empezaron proyectos de open-source que tiene por objetivo el libre aprendizaje y modificación de proyectos tanto de software teniendo por ejemplo a Linux así también como de hardware teniendo de ejemplo a Arduino, este documento se creo con el objetivo de explicar el funcionamiento de un proyecto de open-source llamado Arduino de forma gratuita para que cualquier persona en el mundo que lea este documento quede sin dudas de ¿cómo? y el ¿por qué? utilizar este dispositivo electrónico.

Page 7: Tutorial Básico Arduino

¿Por qué usar Arduino?:

Debido a que Arduino es un Hardware de open-source el conseguirlo es sumamente fácil por lo que el precio es bajo o puede incluso ser gratis si nos proponemos quemar en placa en circuito y soldar por nuestra cuenta los integrados y componentes electrónicos necesarios, por otro lado el programar aplicaciones para Arduino no implica ser un Ingeniero Electrónico, basta con conocer como funciona un lenguaje de programación básico como Java para familiarizarse rápido con este lenguaje. Ventajas de usar Arduino:

Varios Modelos existentes: Arduino puede venir en varias presentaciones de acuerdo a las necesidades del cliente por lo que la gran variedad hace posible que Arduino en general tenga un amplio campo de aplicación.

Documentación Fácil de Conseguir: En la red existen varios tipos de documentación con el fin de enseñar cómo trabajar con Arduino, hay contenidos de todo tipo como Documentos, Presentaciones, Videos y Audios.

OpenSource: Sí ningún modelo de Arduino satisface nuestras necesidades podemos hacer modificaciones a nivel de Hardware o Software sin ligar problemas legales, cabe mencionar que Arduino es muy flexible con esta idea sin embargo si se deben respetar algunas políticas de la empresa si se desean realizar modificaciones.

Instalación y Configuración de Arduino Uno ( MacOs X ):

Antes de seguir leyendo asegurarse que la versión de arduino a utilizar sea “Uno” en caso contrario buscar la guía de instalación para su versión de arduino1. En esencia la instalación y configuración se caracterizan por su simpleza, tomando un panorama general para cargar un programa a arduino basta con conectarlo al ordenador, cargar un programa en él y listo, pero para una mejor explicación a continuación se explicará paso a paso la instalación del software de arduino y la configuración del mismo:

1. Tener a mano el Arduino “Uno” y un cable USB del tipo de impresora.2. Descargar el IDE2 (Integrated Development Envirioment) para configurar y

darle funcionalidad al arduino cargándole programas o Sketches.3. Conectar el arduino al ordenador, independientemente del tipo de maquina,

el arduino tomará corriente del ordenador y se encenderá una luz verde indicando que esta conectado, al mismo tiempo aparecerá un cuadro de dialogo indicando que se ha conectado un nuevo dispositivo. Veremos que el ordenador nos indicará que el dispositivo no esta configurado pero esto no es impedimento para empezar a utilizar y configurar el Arduino.

1. http://arduino.cc/en/Guide/HomePage

2. http://arduino.cc/en/Main/Software

Page 8: Tutorial Básico Arduino

4. Cargar el IDE, saldrá una ventana que dirá “Sketch” que debe entenderse como “Nuevo Programa” para empezar a codificar, hay que saber que el IDE es muy simple así que al ver la simpleza de la ventana no hay que preocuparse, siempre y cuando luzca así ( omitir el texto ):

Por ahora vamos a suponer que tenemos un programa ya creado en nuestro nuevo sketch y que será hora de cargarlo a nuestro arduino, más adelante se explicará como crear un programa para arduino desde 0, por ahora tomando una salida fácil podemos cargar un ejemplo del IDE, dando clic en el recuadro que contiene una flecha apuntando hacía arriba, veremos desplegar un menú de ejemplos así que elegimos cualquiera ( para fines prácticos es mejor si seleccionamos algún ejemplo de Basics ).

Page 9: Tutorial Básico Arduino

5. Seleccionar el tipo de Arduino con el que estamos trabajando siguiendo los siguientes paso: HerramientasTarjeta y seleccionar a partir de ese menú, en este caso será “Arduino Uno”

6. Seleccionar el “Puerto Serial” seleccionando la opción de HerramientasPuerto Serial. Para las versionas para Mac regularmente las opciones a elegir son las que empiezan con /dev/tty. Para versiones nuevas seleccionar “usbmodem...” y para versiones antiguas seleccionar “usbserial…”, a continuación se presentará la siguiente imagen1 de cómo debe verse el menú

1. Fuente: http://arduino.cc/en/uploads/Guide/ToolsMenu.png

Page 10: Tutorial Básico Arduino

7. Cargar el programa, para esto basta con ir al encabezado del IDE de arduino, dar clic en la flecha que apunta a la derecha y listo, mientras se carga el programa se notaran dos leds intermitentes, si se carga exitosamente aparecerá un dialogo indicando que la operación se realizo con éxito

Luego de terminar, se observará una led intermitente de color anaranjado, si esto sucede se ha terminado de cargar correctamente el programa.

Tipos de Arduino:

1. Arduino Uno:

Es un microcontrolador con dimensiones de 2.7 pulgadas x 2.1 pulgadas de largo y ancho respectivamente, tiene un dispositivo en el puerto USB que permite proteger el puerto USB del ordenador en caso de sobrecarga o problemas de corriente. En su placa se sitúan 14 pines para ser exactos, cada uno de los cuales pueden usarse como entrada y salida programándolos con métodos como pinMode (), digitalWrite (), y las funciones digitalRead (). En casi todos las presentaciones de Arduinos hay dos pines llamados RX y TX que se utilizan para recibir y transmitir datos en serie respectivamente, también pueden configurarse para activar interrupciones con la función attachInterrupt(). Tiene 32 KB usando 0.5 Kb para el gestor e arranque, 2 Kb de SRAM. El Arduino Uno puede alimentarse por USB o por cargador externo.

2. Arduino Yun:

Las dimensiones del Yun son de 2,7 x 2,1 pulgadas para largo y ancho respectivamente , con un peso de 0.0406 Kg. Tiene Ethernet, Wifi, entrada para Micro-SD y 20 pines de entrada y salida, de los que 7 son para salidas de PWM y el resto son entradas análogas, un cristal de 16 MHz oscilador, una conexión micro USB, una cabecera ICSP, y un 3 botones de reposición ( ver imagen#3 ). Tiene 32 Kb usando 4 Kb para el gestor de arranque, tiene también 2,5 KB de SRAM y 1 KB de EEPROM . Para administrar los 20 terminales se debe auxiliar de los métodos: pinMode (), digitalWrite (), y digitalRead (). Además, algunos pines tienen funciones especializadas: (RX) y (TX), Se utiliza para recibir (RX) y transmitir (TX) TTL datos en serie. Para ver como es físicamente este tipo de arduino ver las imágenes 3, 4 y 5 en la sección de Anexo.

Page 11: Tutorial Básico Arduino

3. Arduino Micro:

El Arduino Micro se compone de 20 pines digitales de entrada / salida, de los cuales 7 se utilizan para salidas PWM y 12 entradas como analógicas, un oscilador de cristal de 16 MHz, una conexión micro USB, un header ICSP, y un botón de reinicio. Para su funcionamiento basta con conectarlo a un ordenador con un cable micro USB para empezar. Tiene 32 Kb con 4 Kb utilizados por el gestor de arranque, también tiene 2,5 KB de SRAM y 1 KB de EEPROM . Cada uno de los terminales 20 digitales en el Micro se pueden utilizar como una entrada o salida, utilizando pinMode (), digitalWrite (), y digitalRead ().

Algunos pines especiales como (RX) y (TX) son utilizados para recibir (RX) y transmitir (TX) datos en serie, y al igual que con los Arduinos uno o yun, estos pines pueden ser configurados para provocar una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio en el valor. Para ver como es físicamente este tipo de arduino ver las imágenes 6, 7 y 8 en la sección de Anexo.

4. Arduino Robot:

Con una memoria de 32 KB usando 4 Kb por el gestor de arranque, tiene también 2,5 Kb de SRAM y 1 Kb de EEPROM. Cuenta también con un lector de tarjetas SD externa conectada a la pantalla GTFT que se puede acceder por el procesador de la tarjeta de control para el almacenamiento adicional. Se distingue fácilmente de los demás modelos por ser el primer Arduino sobre ruedas, teniendo 19cm de diámetro (ver imagen#9 e imagen#10 en la sección de Anexos). El dispositivo Incluye las ruedas, pantalla GTFT y otros conectores. El Arduino Robot tiene dos lados o tableros en los cuales tiene dos procesadores en total ( 1 procesador por cada tablero ), estos tableros se programan utilizando el IDE antes descrito. El robot viene con una serie de conectores pre-soldadas. Hay una serie de puntos adicionales para usted para instalar piezas adicionales si es necesario ( ver imagen#11 e imagen#12 ).

Estructura del Lenguaje de Programación de Arduino:

Un programa o Sketch en arduino se compone de tres partes esenciales que son: Estructuras, Valores y Funciones.

Estructuras: Existen estructuras de control relacionadas como bifurcaciones, ciclos, etc. Así como estructuras referentes a la sintaxis del programa por ejemplo: la manera de definir un comentario, operadores aritméticos o lógicos ó acceso con apuntadores; Pero de todo lo más importante son dos estructuras llamadas “setup()” y “loop()”.

Page 12: Tutorial Básico Arduino

La estructura Setup, juega el rol de un constructor de clase visto desde el punto de vista del lenguaje Java, es decir, nada más se ejecuta una sola vez y en esa ejecución se inicializan las variables, los modos de los pines ( definiendo cuales será de entrada o salida ) y como se menciono antes, solo se ejecutará una vez cada que se encienda el arduino o se reinicie.

La estructura Loop, hace exactamente lo que su nombre dice, es un ciclo repetitivo del cual se auxilia arduino para pruebas y poder observar el comportamiento de este bajo ciertos casos que se especifican con programación.

Valores: Este se divide en valores constantes y valores variables, como panorama general se mencionará que el lenguaje de programación de este es muy parecido a java.

Constantes:

o Hi/Low: Referentes a los valores que puede tomar un pin en su lectura o escritura, sí el voltaje en el pin es mayor o igual a 3 voltios se debe usar Hi en caso contrarío sí el voltaje es menor o igual a 2 voltios se usa Low, cabe mencionar que esto dependerá mucho de si el pin es para Input o OutPut y también dependerá de qué pin es el que se utilizará.

o True/False: Entendidos como valores lógicos como en cualquier lengauje de programación con la diferencia que True debe entenderse como cualquier valor diferente de 0, es decir -20 ó 20 pueden representar un valor de true mientras que el 0 siempre representará un false.

o Led_Builtin: Es un led que se puede manipular como variable a nivel de programación, usualmente en los modelos de arduino se trabaja con el pin 13.

Variables: La forma de declarar variables es colocando primero el tipo de la

variable, en segundo lugar el nombre ( declaración simple ) y puede llevar como tercer lugar una asignación de la variable ( esta asignación puede venir en la misma declaración o ir en otra línea )

o Void: Usado únicamente en métodos haciendo referencia a que el método no devolverá ningún valor, Ejemplo:

void encenderLed() { // sentencias }

Page 13: Tutorial Básico Arduino

o Boolean: Usa 1 byte de memoria y puede almacenar solo dos valores True o False, Ejemplo:

boolean flag = true;

o Char: Define un solo carácter entre comilla simpe “ ’ ” y ocupa 1 byte de memoria, Ejemplo:

char carácter = ‘a’ ;

o Int: Se almacena en 2 bytes de memoria logrando guardar números enteros que van de -32,768 a 32,767, Ejemplo:

int numero = 0;

o Double: Se almacena en 4 bytes de memoria y guarda valores de coma flotante o números decimales, Ejemplo:

doble decimal ;decimal = 3.12;

o Word: Se almacena 2 bytes de información guardando números enteros sin signos que van de 0 a 65536, Ejemplo:

word numero = 123;

Métodos: La sintaxis para un método es:

Tipo nombre ( parámetros ) {// sentencias}

Tipo: Se refiere al tipo de variable que el método devolverá.Nombre: Nombre del métodoParámetros: pueden venir o no y su sintaxis es: tipo nombre. Sentencias: Acá ya va el código de programación.

Ejemplo: int getSuma( int numero1, int numero2){return numero1+numero2;}

Page 14: Tutorial Básico Arduino

Errores Comunes:

1. No puedo cargar mi programa a mi arduino? Esto puede deberse a una serie de causas tanto de software ( tener el driver incorrecto del arduino por ejemplo ) como de hardware ( tener un cable usb no funcional ) pero la mayoría de veces se resuelve revisando el cable usb, puertos usb del arduino y 3 veces, para solucionar este problema del ordenador y se el problema sigue, verificar que el “Serial Port” sea el correcto para el arduino con el que se trabaja.

2. Por qué no corre mi programa en mi arduino cuando lo enciendo con una fuente externa? La mayoría de veces se debe a que un pin de la placa esta desconectada, suele ser el pin RX que debe ir a tierra con una resistencia de 10k.

3. Por qué mi arduino tarda mucho en cargar un sketch? Este problema esta ligado comúnmente al bootloader llamado NG, para identificar que el arduino posee este bootloader basta con resetear (con software ) el arduino y verificar que el led en el pin 13 se apagará y encenderá 3 veces, para solucionar este problema se debe instalar un bootloader más actualizado al arduino.

4. Al compilar el sketch no me encuentra la Main Class? Seguramente no se descomprimió correctamente el archivo de arduino, el archivo que no se encuentra específicamente es este: pde.jar localizado en la carpeta “lib”.

5. Mi programa se carga exitosamente pero mi arduino no hace nada? Este problema se resuelve en su mayoría de veces seleccionando el arduino correcto en el momento de seleccionar algún modelo especifico para cargar el sketch. Asegurar que el modelo seleccionado coincida con el modelo con el que se trabaja.

Page 15: Tutorial Básico Arduino

Preguntas Frecuentes:

1. ¿Puedo crear un proyecto basado en arduino y hacer dinero con ello? Sí, de hecho la idea de arduino sea de open-source hardware es esa, que cada quien modifique y use a su conveniencia el arduino siempre y cuando respetando las políticas de uso.

2. ¿Al modificar el hardware de arduino, corro algún problema legal? No, el propósito de arduino es ese mismo, ya que al ser de open-source cada quien puede comprar o crear su propio arduino de desearlo, solo basta con bajar los circuitos de la pagina de arduino, conseguir los componentes, soldarlos y listo.

3. ¿Tengo que informar a la empresa de Arduino obligatoriamente cada proyecto que creo, aunque este sea de uso personal sin fines de lucro? No, el objetivo que se busca es que cada proyecto que se haga usando arduino se suba a internet y se comparta para que más personas en el mundo aprendan, se inspiren y colaboren, pero no es una obligación.

4. Puedo usar otros IDE’s para cargar mis sketches a mi arduino? Si, se recomienda que se use el IDE “Arduino” pero no es una obligación.

5. En donde se crean los Arduinos Oficiales? Italia.

Page 16: Tutorial Básico Arduino

CONCLUSIONES

Aprender a usar Arduino sin conocer absolutamente nada es fácil

Trabajar con Arduino es barato

Hay mucha documentación de Arduino en internet

Arduino es una buena opción para crear proyectos propios debido a la gran comunidad que se aloja en internet que apoya los proyectos ajenos

Page 17: Tutorial Básico Arduino

RECOMENDACIONES

Se recomienda al lector que de una atención especial a la versión de Arduino ( Uno ) con el que se creo este trabajo ya que hay otras versiones como el Omega que trabajan y se configuración de la misma forma que el Arduino Uno pero la gran mayoría de estos dispositivos electrónicos siguen lineamientos diferentes por lo que si se trabaja con un Arduino como el Yun por ejemplo lo más probable esta teoría no respalde el funcionamiento de este.

Page 18: Tutorial Básico Arduino

BIBLIOGRAFÍA

http://arduino.cc/en/Guide/Troubleshooting

http://arduino.cc/en/Guide/MacOSX

http://arduino.cc/en/Guide/HomePage

http://arduino.cc/en/Main/Products

http://arduino.cc/en/Reference/HomePage

http://arduino.cc/en/Main/FAQ

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

http://gizmologia.com/2014/03/hardware-novatos-arduino

http://alt1040.com/2013/04/usos-creativos-de-arduino

http://www.arduteka.com/arduino/

Page 19: Tutorial Básico Arduino

ENLACES DE AYUDA

https://www.youtube.com/watch?v=Kgz0vD1vSxY

https://www.youtube.com/watch?v=UoBUXOOdLXY

https://www.youtube.com/watch?v=lQNCwEGOUUE

Page 20: Tutorial Básico Arduino

ANEXOS

Imagen#1: Arduino Uno, Vista Frontal.

Imagen#2: Arduino Uno, Vista Trasera.

Imagen#3: Arduino Yun, Esquema General:

Page 21: Tutorial Básico Arduino

Imagen#4: Arduino Yun, Vista Frontal:

Imagen#5: Arduino Yun, Vista Trasera:

Imagen#6: Arduino Micro, Esquema General:

Imagen#7: Arduino Micro, Vista Frontal:

Page 22: Tutorial Básico Arduino

Imagen#8: Arduino Micro, Vista Trasera:

Imagen#9: Arduino Robot, Vista Trasera:

Imagen#10: Arduino Robot, Vista Trasera:

Page 23: Tutorial Básico Arduino

Imagen#11: Arduino Robot, Vista Frontal:

Imagen#12: Arduino Robot, Vista Frontal: