Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos...

10
Interfaces y Periféricos. Guía 1. 1 Introducción a la Plataforma Arduino. Conocer la plataforma de hardware libre Arduino. Desarrollar aplicaciones mediante sketches. Conectar el Arduino a la PC mediante la interface USB y comunicarlos serialmente. Utilizar la terminal serie para comunicarse con el dispositivo. 1 Computadora con sistema operativo Windows y con el programa Arduino IDE instalado. 1 Cable USB (tipo A hacia tipo B). 1 Tarjeta Arduino UNO R2 o R3. 4 Resistencias de 4.7 kΩ. 4 LEDs. 4 Botones (pulsadores). 1 Breadboard. 1 Pinza punta plana. 1 Cortadora (pinza de corte diagonal). Cables UTP. El proyecto Arduino, de origen italiano, pertenece a un movimiento denominado hardware de código abierto (open source hardware), en el cual sus participantes plantean que así como existe el software libre, el cual es compartido a nivel de código fuente para poder ser modificado, deberían existir también plataformas de hardware con la misma filosofía, donde se comparten los detalles de los diagramas de circuito para que los usuarios puedan introducir sus propias modificaciones. La plataforma Arduino es lo que se conoce como un entrenador de microcontrolador (pequeñas computadoras contenidas en un solo circuito integrado), para la cual hace uso de herramientas de software en PC para su programación. De tal forma que la programación del Arduino puede realizarse en un lenguaje de alto nivel como lo es C++, permitiendo manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software han sido diseñados considerando la facilidad de uso como una prioridad. ObjetivosEspecíficos. Materiales y equipos. Facultad: Ingeniería Escuela: Electrónica Asignatura: Interfaces y Periféricos (IYP111). Lugar de Ejecución: Microprocesadores (3.23). Introducción Teórica.

Transcript of Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos...

Page 1: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

Interfaces y Periféricos. Guía 1. 1

Introducción a la Plataforma

Arduino.

Conocer la plataforma de hardware libre Arduino.

Desarrollar aplicaciones mediante sketches.

Conectar el Arduino a la PC mediante la interface USB y comunicarlos serialmente.

Utilizar la terminal serie para comunicarse con el dispositivo.

1 Computadora con sistema operativo Windows y con el programa Arduino IDE

instalado.

1 Cable USB (tipo A hacia tipo B).

1 Tarjeta Arduino UNO R2 o R3.

4 Resistencias de 4.7 kΩ.

4 LEDs.

4 Botones (pulsadores).

1 Breadboard.

1 Pinza punta plana.

1 Cortadora (pinza de corte diagonal).

Cables UTP.

El proyecto Arduino, de origen italiano, pertenece a un movimiento denominado hardware

de código abierto (open source hardware), en el cual sus participantes plantean que así

como existe el software libre, el cual es compartido a nivel de código fuente para poder ser

modificado, deberían existir también plataformas de hardware con la misma filosofía,

donde se comparten los detalles de los diagramas de circuito para que los usuarios puedan

introducir sus propias modificaciones.

La plataforma Arduino es lo que se conoce como un entrenador de microcontrolador

(pequeñas computadoras contenidas en un solo circuito integrado), para la cual hace uso de

herramientas de software en PC para su programación. De tal forma que la programación

del Arduino puede realizarse en un lenguaje de alto nivel como lo es C++, permitiendo

manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware

como el entorno de desarrollo de software han sido diseñados considerando la facilidad de

uso como una prioridad.

ObjetivosEspecíficos.

Materiales y equipos.

Facultad: Ingeniería

Escuela: Electrónica

Asignatura: Interfaces y Periféricos (IYP111).

Lugar de Ejecución: Microprocesadores (3.23).

Introducción Teórica.

Page 2: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

2 Interfaces y Periféricos. Guía 1.

La tarea de compilación de programas en Arduino es llevada a cabo mediante una versión

modificada de gcc (el compilador de C usado en GNU/Linux) la cual ha sido adaptada

especialmente para poder generar programas específicamente para el microcontrolador

AVR que posee el Arduino. La invocación de dicho compilador es automática, bastando

solamente con hacer un clic para compilar los programas.

Por tanto, la plataforma Arduino es un proyecto tanto de software libre como de Hardware

abierto, donde los autores hacen de conocimiento público todos los detalles de su

implementación, ayudándose asimismo de otros proyectos de software libre para su

creación. Puede encontrarse toda la información pertinente a la plataforma, así como

descargar el software de desarrollo en el sitio web: http://www.arduino.cc

Plataforma de hardware del Arduino.

El Arduino consta de una tarjeta de circuito relativamente pequeña, que incluye todos los

componentes básicos que requiere el microcontrolador, así como de una interface USB que

le permite conectarse a una PC para poder descargar los programas y proveer suministro

eléctrico. Asimismo, el Arduino cuenta con la opción de alimentarse mediante un Jack de

5mm, al cual puede conectarse un transformador de pared que tenga una salida de tensión

entre 7 y 12V DC.

Figura 1. Tarjeta del circuito de Arduino UNO

El Arduino cuenta con un total de 14 pines (numerados del 0 al 13) con capacidad de

entrada y salida digital, así como de 6 pines (numerados del A0 al A5) con capacidad de

entrada analógica y también de entrada y salida digital.

Adicionalmente, 6 de los pines digitales (denotados con un símbolo ~) permiten realizar

salida analógica por medio de modulación de ancho de pulso (también conocida como

PWM), mientras que 2 pines (denominados como TX y RX) permiten la comunicación

serial mediante el puerto USB o bien hacia un dispositivo externo.

Aparte de los pines de entradas y salidas, el Arduino cuenta con varios pines que permiten

compartir su fuente de suministro hacia circuitos externos. Es así, que cuenta con un total

de 3 conexiones de tierra (de las cuales al menos una debe ser conectada al tierra del

circuito externo), una salida de 5V y una salida de 3.3V.

Page 3: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

Interfaces y Periféricos. Guía 1. 3

Finalmente, existen 3 pines adicionales que son: AREF (Referencia analógica), Vin (voltaje

de entrada sin regular), y RESET (reinicio), cuya función no es fundamental para la

operación del Arduino y que por tanto no se verán en esta guía introductoria.

Estructura de los programas de Arduino.

Un programa de Arduino (conocido en inglés como sketch), usa primordialmente la sintaxis

de C/C++ para definir todas las operaciones que llevara a cabo el microcontrolador, con la

diferencia de que los programas no hacen uso de la función main() para especificar su

inicio, sino más bien se utilizan otras dos funciones:

void setup()

Esta función es la primera que se ejecuta cuando el Arduino da inicio al programa, y es

efectuada una sola vez. Su propósito es llevar a cabo todas las tareas de inicialización

(como la configuración de los pines) antes que inicie el programa principal.

void loop()

Esta otra función es ejecutada tras terminar la función setup(), y en caso que loop() termine,

esta es re-ejecutada continuamente por el Arduino hasta que se reinicie, se reprograme o se

apague el suministro. Su propósito es llevar a cabo el programa principal mientras el

Arduino permanezca operando.

Nótese que el Arduino, a diferencia de una computadora personal, no cuenta con un sistema

operativo al cual retornar en caso que los programas terminen. Por tanto los programas

tienen que ser ejecutados de manera permanente mientras el sistema cuente con suministro

eléctrico. Sin embargo, si el usuario así lo desea, puede detener la ejecución del programa

por medio de atraparlo en un lazo infinito. Sentencias como for(;;); o bien while(1){ }

pueden ser usadas en ese caso.

Nota:

La introducción teórica no pretende ahondar más en los detalles de la sintaxis del lenguaje

C/C++, por lo que se recomienda al estudiante que consulte otros libros o documentación

referentes al tema. El resto de la introducción se enfocará más en los detalles que se

refieren al uso de periféricos externos que al lenguaje en sí.

Funciones de acceso y configuración de entradas y salidas digitales.

Una de las bondades de la plataforma Arduino es que los detalles de implementación del

hardware son abstraídos mediante funciones especiales de acceso, liberando al programador

de la tarea de manejar la complejidad del mismo. Existen diferentes funciones de acuerdo a

la clase de hardware con que se interactúa, de las cuales las que se presentan a continuación

son las referentes a las entradas y salidas digitales:

Page 4: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

4 Interfaces y Periféricos. Guía 1.

pinMode (numero_pin, modo): Permite establecer la modalidad de los pines ya sea

como entradas o como salidas. Los nombres de pines validos son los números del 0 al

13 y los pines analógicos del A0 al A5, mientras que los modos válidos son INPUT

(entrada) y OUTPUT (salida). Nótese que si se configuran los pines del A0 al A5 con

esta función, los mismos se pueden usar como cualquier otra entrada o salida digital.

digitalRead (numero_pin): Efectúa la lectura de un pin digital que haya sido

configurado como entrada, devolviendo su valor lógico ya sea como la constante LOW

(0) o la constante HIGH (1).

digitalWrite (numero_pin, valor): Efectúa la escritura sobre un pin digital que haya

sido configurado como salida. El valor puede especificarse como la constante LOW (0)

o la constante HIGH (1).

Parte I: Descarga de programas en el Arduino.

1. Encienda la computadora. Cuando cargue el sistema operativo utilice las siguientes

credenciales:

Usuario: usuario0

Contraseña: usuario

2. Conecte la tarjeta de circuito del Arduino a su PC mediante el cable USB provisto (no

conecte ningún componente externo aún). Inicie el entorno de desarrollo de Arduino

haciendo doble clic izquierdo sobre el archivo ejecutable llamado arduino.exe. Su

docente dará indicaciones de la ubicación del programa en caso de ser necesario.

Figura 2. Descripción de los elementos del entorno de desarrollo de software Arduino.

Procedimiento.

Page 5: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

Interfaces y Periféricos. Guía 1. 5

3. Proceda a configurar el Arduino IDE para que trabaje con su hardware. Acceda al menú

Tools->Board y asegúrese que se encuentra seleccionada la tarjeta Arduino Uno.

Asimismo, asegúrese que se encuentra seleccionado el puerto serie correcto en el menú

Tools->Serial Port (el número correcto de puerto dependerá de si ya existen otros

puertos seriales definidos en la PC).

4. A continuación haga clic izquierdo en el botón de abrir sketch de la barra de

herramientas, y abra el demo llamado blink en la categoría basics. A continuación se

desplegará un programa simple en la pantalla.

5. Para correrlo, haga clic izquierdo en el botón de subir el sketch en la barra de

herramientas. El programa compilará automáticamente el código fuente en pantalla y

procederá de inmediato a programarlo en el hardware.

6. Estudie lo que hace el programa y verifique el LED rotulado como L en la tarjeta de

circuito. Como podrá apreciar en el programa, el LED se encuentra físicamente

conectado al pin 13 del Arduino.

7. Modifique su sketch de tal manera que el LED parpadee más rápido. Pruebe con

retardos de 100 milisegundos y suba el programa nuevamente al Arduino usando el

botón de la barra de herramientas.

8. Desconecte el Arduino del puerto USB y espere unos breves segundos. Reconecte el

Arduino nuevamente y observe lo que hace la tarjeta. ¿Qué puede concluir al respecto?

Parte II: Manejo de salidas digitales.

9. Con el Arduino desconectado del puerto USB proceda a ensamblar el circuito de la

figura 3 en una breadboard. Asegúrese de unir el tierra proveniente de su circuito con

uno de los pines de tierra del Arduino. Note también que para este circuito no necesita

una fuente externa.

Figura 3. Diagrama de circuito para la parte 2.

Page 6: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

6 Interfaces y Periféricos. Guía 1.

10. Con el circuito correctamente armado, proceda a conectar el cable USB al Arduino, y

suba el siguiente sketch:

void setup() {

//Configura los pines con los LEDs como salidas

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

//Inicializa el puerto serie

Serial.begin(9600);

}

void loop() {

//Verifica si se han recibido datos

if (Serial.available() > 0) {

//Si existen datos, comprueba de cual se trata, y enciende

//o apaga un LED acordemente

switch(Serial.read()) {

case '1': digitalWrite(2, HIGH); break;

case '2': digitalWrite(2, LOW); break;

case '3': digitalWrite(3, HIGH); break;

case '4': digitalWrite(3, LOW); break;

case '5': digitalWrite(4, HIGH); break;

case '6': digitalWrite(4, LOW); break;

case '7': digitalWrite(5, HIGH); break;

case '8': digitalWrite(5, LOW); break;

}

}

}

Código 1. Sketch para la parte 2.

11. Una vez descargado el sketch en el Arduino, abra el monitor serial desde el botón

respectivo en la barra de tareas.

Figura 4. Ventana de terminal de Arduino IDE.

Page 7: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

Interfaces y Periféricos. Guía 1. 7

12. Digite el número 1 en la linea de entrada y presione la tecla Enter o bien haga clic

izquierdo en send. El LED conectado al pin 2 deberá encenderse inmediatamente.

Pruebe con los números del 1 al 8 y verifique las acciones que efectúan.

13. Pruebe también encender o apagar simultáneamente varios LEDs enviando mensajes

como 1357 o bien 2468, note que si bien los datos son enviados uno tras otro, el

Arduino los procesa tan rápido que parece que se encienden o se apagan

simultáneamente.

14. Notifique a su docente que ha terminado esta parte para que le evalúe.

Parte III: Lectura de entradas digitales.

15. Una vez más, con el cable USB desconectado, proceda a armar el circuito de la figura 5.

Procure tomar suministro de los mismos conectores de 5V y tierra que se incluyen en

tarjeta de circuito del Arduino, ya que se aprovechará el suministro de 5V que otorga el

bus USB de la computadora. Nota: No conecte la fuente de laboratorio de 5V a su

circuito.

Figura 5. Diagrama de circuito para la parte 3.

16. Con el circuito correctamente armado, conecte nuevamente el cable USB y suba el

siguiente sketch:

void setup() {

//Configura los pines conectados a los botones como entradas

pinMode(9, INPUT);

pinMode(10, INPUT);

pinMode(11, INPUT);

pinMode(12, INPUT);

//Inicializa el puerto serie

Serial.begin(9600);

}

Page 8: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

8 Interfaces y Periféricos. Guía 1.

void loop() {

//Envía el estado de cada uno de los botones

Serial.print(digitalRead(9));

Serial.print(digitalRead(10));

Serial.print(digitalRead(11));

Serial.print(digitalRead(12));

//Envia un final de linea

Serial.print("\n");

//Produce un breve retardo entre envíos

delay(1000);

}

Código 2: Sketch para la parte 3.

17. Una vez subido el sketch al Arduino, abra nuevamente el monitor serial.

18. En esta ocasión, notará que en la pantalla aparecen datos de forma periódica y

automática. Active los botones conectados a los pines de entrada y verifique su

operación. Note que si activa simultáneamente varios botones, el estado de los mismos

aparece sin problemas en la pantalla.

19. Notifique a su docente que ha terminado esta parte para que le evalúe.

1. ¿Qué ocurre con el programa almacenado en el Arduino cuando se interrumpe el

suministro eléctrico?

2. ¿Qué debería ocurrir en el programa de la segunda parte si se envían datos que no sean

los números del 1 al 8?

1. Determine cómo se puede hacer para agregar entradas adicionales en el sketch de la

tercera parte.

2. En caso que se necesite comunicación bidireccional simultánea, ¿Que estructura

debería poseer el programa? Y ¿Cuál sería la estrategia de solución?

3. Investigue acerca de las variantes que existen de la plataforma Arduino que son

producto de la apertura de la plataforma.

Sitio web de los desarrolladores: www.arduino.cc

Referencia en línea del lenguaje: http://arduino.cc/en/Reference/HomePage

Massimo Banzi, “Getting started with Arduino” O'Reilly Media / Make Publisher,

Marzo 2009, ISBN: 978-0-596-15551-3

Actividad complementaria.

Bibliografía.

Análisis de Resultados.

Page 9: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

Interfaces y Periféricos. Guía 1. 9

https://vimeo.com/18390711

https://botscience.wordpress.com/2012/06/05/historia-de-arduino-y-su-nacimiento/

Figura 6: Descripción de pines de tarjeta Arduino Uno.

Anexos.

Page 10: Introducción a la Plataforma Arduino. Asignatura ... · manipular elementos de hardware externos con relativa facilidad, pues tanto el hardware como el entorno de desarrollo de software

10 Interfaces y Periféricos. Guía 1.

EVALUACION

% 1-4 5-7 8-10 Nota

CONOCIMIENTO

25%

Conocimiento

deficiente de los

fundamentos

teóricos

Conocimiento y

explicación

incompleta de

los fundamentos

teóricos

Conocimiento

completo y

explicación clara

de los

fundamentos

teóricos

APLICACIÓN

DEL

CONOCIMIENTO

70%

No Terminó

completamente

el programa y

comentó mal el

código (30%)

No realizó el

circuito

correctamente

(40%)

Terminó

completamente

el programa

pero los

comentarios no

estaban del todo

correctos

El circuito

funcionó

Terminó

completamente el

programa con sus

comentarios

correctos

El circuito

funcionó

ACTITUD 2.5%

Es un

observador

pasivo.

Participa

ocasionalmente

o lo hace

constantemente

pero sin

coordinarse con

su compañero.

Participa

propositiva e

integralmente en

toda la práctica.

2.5%

Es ordenado;

pero no hace un

uso adecuado de

los recursos

Hace un uso

adecuado de los

recursos, respeta

las pautas de

seguridad; pero

es desordenado.

Hace un manejo

responsable y

adecuado de los

recursos

conforme a pautas

de seguridad e

higiene.

TOTAL 100%

Hoja de cotejo: 1

Guía 1: Introducción a la plataforma Arduino.

Alumno:

Docente:

Maquina N°:

GL: Fecha: