Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Tutorial Básico Arduino
1. Universidad de San Carlos de Guatemala
Facultad de Ingeniería
CONOCIMIENTOS BÁSICOS DE ARDUINO
Elio Josué Alvarado Velásquez
16 de septiembre de 2014
2. 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.
4. 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.
5. 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.
6. 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.
7. ¿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
8. 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 ).
9. 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
10. 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.
11. 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()”.
12. 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
}
13. 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étodo
Pará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;
}
14. 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.
15. 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.
16. 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
17. 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.
19. ENLACES DE AYUDA
https://www.youtube.com/watch?v=Kgz0vD1vSxY
https://www.youtube.com/watch?v=UoBUXOOdLXY
https://www.youtube.com/watch?v=lQNCwEGOUUE
20. ANEXOS
Imagen#1: Arduino Uno, Vista Frontal.
Imagen#2: Arduino Uno, Vista Trasera.
Imagen#3: Arduino Yun, Esquema General:
21. Imagen#4: Arduino Yun, Vista Frontal:
Imagen#5: Arduino Yun, Vista Trasera:
Imagen#6: Arduino Micro, Esquema General:
Imagen#7: Arduino Micro, Vista Frontal:
22. Imagen#8: Arduino Micro, Vista Trasera:
Imagen#9: Arduino Robot, Vista Trasera:
Imagen#10: Arduino Robot, Vista Trasera: