[arqui1]practica2 200815555

17
ARDUINO Por: Ángel Gómez 2008-15555 Universidad de San Carlos de Guatemala Arquitectura de Computadores y Ensambladores 1

Upload: angeo-gomez

Post on 24-Jun-2015

89 views

Category:

Devices & Hardware


2 download

DESCRIPTION

Iniciacion con el dispositivo ARDUINO

TRANSCRIPT

Page 1: [Arqui1]practica2 200815555

ARDUINO

Por: Ángel Gómez2008-15555

Universidad de San Carlos de GuatemalaArquitectura de Computadores y Ensambladores 1

Page 2: [Arqui1]practica2 200815555

Este Documento tiene licencia COPYLEFTTodos los Errores Reservados.

Page 3: [Arqui1]practica2 200815555

Prefacio

El siguiente documento no pretende ser una especificación precisa sobre la plataforma ARDUINO. La información contenida es de propositivo general y orientada para incentivar y motivar el uso de la plataforma ARDUINO de una forma introductoria para desarrollar proyectos tipo “Hazlo tu Mismo” con dispositivos electrónicos de bajo costo y una filosofía similar al software libre aplicado al Hardware. Para tener una pequeña pincelada no solo de los pequeños hombrews, sino también de los posibles grandes proyectos que se pueden lograr y desarrollar con el pequeño y poderoso micro controlador ARDUINO presento el siguiente trabajo, dirigido a entusiastas de la electrónica.

Ángel Gómez2008-15555

Page 4: [Arqui1]practica2 200815555

ÍNDICE

• Introducción• Objetivo General• Objetivos Específicos• Justificación• Contenido

• Instalación y Configuración• Tipos, partes, teoría en general (agregar imágenes)• Funciones principales• Estructura del lenguaje• Ejemplos

• Errores comunes• Preguntas Frecuentes• Conclusiones (relacionadas con los objetivos)• Recomendaciones• Bibliografía• Enlaces de Ayuda• Anexo

Page 5: [Arqui1]practica2 200815555

Introducción

ARDUINO es un micro controlador con filosofía open source/hardware es un dispositivo el cual permite obtener información por medio de sus entradas Analógicas y Digitales. Permite el procesamiento de los datos y generar una salida por medio de pines de salida específicos. ARDUINO es una plataforma completa con una gran comunidad de usuarios en internet donde se pueden ver proyectos realizados en cualquier parte del mundo. También está orientado a un fácil manejo y uso de la electrónica, proyectos únicos con el cual el límite es la imaginación.

Page 6: [Arqui1]practica2 200815555

Objetivo General

• Aprender el uso básico de la plataforma ARDUINO• Implementación de Proyectos con ARDUINO• Programación de ARDUINO

Objetivos Específicos

• Uso básico del dispositivo ARDUINO• Identificación de las entradas/salidas físicas• Lenguaje de programación de ARDUINO• Programación de código para recibir datos con las entradas digitales• Programación de código para enviar datos con los pinout• Precauciones básicas• Distinción de las distintas plataformas basadas en ARDUINO

Justificación

Demostrar la versatilidad de la plataforma ARDUINO y su micro controlador en proyectos sencillos así como complejos, despertar el interés del lector sobre la plataforma desarrollada con hardware Libre, no necesitar conocimientos previos muy específicos sobre la electrónica o programación. Este documento pretende dar una visión clara y sin complicaciones sobre ARDUINO y su primer uso de frente de una forma fácil.

Page 7: [Arqui1]practica2 200815555

Instalación y Configuración

Para iniciarse en el mundo de la plataforma ARDUINO es necesario contar con una placa ya sea ensamblada por nosotros (pieza por pieza) o una que ya esté lista e integrada con todos sus componentes como lo puede ser ARDUINO UNO, LEONARDO o NANO etc. Que fácilmente se pueden adquirir vía internet o en una tienda electrónica especializada.

ARDUINO IDE

Es el entorno grafico para la programación de aplicaciones para el micro controlador arduino, como recomendación para una buena ejecución del entorno de desarrollo se recomienda tener instalado GCC y JAVA en sus últimas versiones para LINUX.

Pasos para configuración

• Descargar de la pagina http://arduino.cc/en/Main/Software#toc1 la versión del IDE que vayamos utilizar sea Windows, Mac o Linux. Para nuestro caso será la versión para Linux de 64 bits que el tipo de sistema instalado en nuestra PC

Paso1: Descargar IDE de Desarrollo

Page 8: [Arqui1]practica2 200815555

• Debido a que estamos en un entorno Linux procedemos a descomprimir el archivo descargado en paso anterior en un directorio de fácil acceso ejecutando los siguientes comandos en una consola de comandos Linux:

cd PATH_DONDE_SE DESCOMPRIMIO_EL_ARCHIVO

Luego para ejecutar el IDE de ARDUINO escribimos en consola como se muestra../arduino 

2.1- Descompresión de IDE ARDUINO

2.2Ejecución del IDE ARDUINO

Page 9: [Arqui1]practica2 200815555

Como se ha podido observar en unos cuantos pasos se ha logrado tener el entorno listo para empezar a programar en la plataforma del micro controlador ARDUINO.

El último paso sería conectar el nuestro ARDUINO vía USB y empezar a imaginarse todas las aplicaciones que tendría nuestro ARDUINO en proyectos simples o sumamente complicados.

Teoría General sobre ARDUIINO

ARDUINO tiene muchas variantes debido a que es open hardware/software cualquiera hace uso de los diagramas para la construcción de ARDUINOS por lo cual en el mercado se encuentran una variedad para distintas necesidades. Nuestro objetivo no es adentrarnos en cada variante más bien dicho nos enfocaremos en su variedades oficiales del proyecto como podemos observar en el anexo con la imagen de la “Evolución de ARDUINO” así como todas la bondades que nos ofrece la plataforma completa.

Hasta el momento todo bien, pero nuestro micro controlador no se queda ahí debido al gran auge de la plataforma otras iniciativas han agregado funcionalidades con hardware algunas open y otras no, pero han hecho del micro controlador se pueda comunicar con muchos más dispositivos (SHIELDS) como lo son los siguientes:

• BlueTooth• Wireless• RJ45 wire connection• Sensores huellas Dactilares• Pantallas LCD• Controladores para Motores• GSM (telefonía), • GPS

Page 10: [Arqui1]practica2 200815555

Partes de ARDUINO:

A continuación se muestra un diagrama de las partes que componen un arduino LEONARDO identificando sus principales entradas/salidas por medio de las cuales arduino obtiene información la procesa y entrega un resultado.

Todos los arduinos están basado en el Chip ATMEGA XX el cual se puede ver en la evolución de arduino es el core principal del micro controlador y la evolución está en la prestación de velocidades con las que opera la plataforma así como la capacidad de almacenar nuestros programas por lo regular en una memoria de 32 KB.

Page 11: [Arqui1]practica2 200815555

Funciones Principales Para un programa de ARDUINO su sintaxis es similar a la de ANSI C con algunas

variantes Tenemos la siguiente estructura

• Declaración de Constantes y variables• Void Setup{} -> Encargado de cómo estarán definidos el Set de Pines de Arduino.• Void Loop{} -> Aquí ira el código de lo que necesitemos que arduino realice en

forma de un ciclo infinito

Ejemplo Básico de Programación con ARDUINO./* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards.// give it a name:int led = 13;

// the setup routine runs once when you press reset:void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); }

// the loop routine runs over and over again forever:void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second}

Estructuras, Variables, Funciones Lenguaje Arduino IDE

A continuación se presenta el conjunto de instrucciones utilizadas para programar en la plataforma del IDE de ARDUINO. Como veremos es un set de instrucciones muy similares a JAVA y ANSI C. Por lo cual si se tiene experiencia con estos lenguajes programación no será mayor reto. Puesto que ARDUINO nos dota con otras posibilidades si no manejamos muy bien los lenguajes de Programación y poder realizar lo que queremos de una forma intuitiva con ArduBlock que es programación con bloques.

Page 12: [Arqui1]practica2 200815555

Structure Variables FunctionsConstants

Control Structures

Data Types

Further Syntax

Arithmetic Operators

Conversion

Comparison Operators

Variable Scope & Qualifiers

Boolean Operators Utilities

Pointer Access Operators

Bitwise Operators

Compound Operators

setup() Digital I/O loop() HIGH | LOW pinMode()

INPUT | OUTPUT| INPUT_PULLUP digitalWrite() if true | false digitalRead() if...else integer constants Analog I/O for floating point constants analogReference() switch case analogRead() while void analogWrite() - PWM do... while boolean Advanced I/O break char tone() continue unsigned char noTone() return byte shiftOut() goto int shiftIn()

unsigned int pulseIn() ; (semicolon) word Time {} (curly braces) long millis() // (single line comment) unsigned long micros() /* */ (multi-line comment) float delay() #define double delayMicroseconds() #include string - char array Math

String - object min() = (assignment operator) array max() + (addition) abs() - (subtraction) char() constrain() * (multiplication) byte() map() / (division) int() pow() % (modulo) word() sqrt()

long() Trigonometry == (equal to) float() sin() != (not equal to) cos() < (less than) variable scope tan() > (greater than) static Random Numbers <= (less than or equal to) volatile randomSeed() >= (greater than or equal to) const random()

Bits and Bytes && (and) sizeof() lowByte() || (or) highByte() ! (not) bitRead()

bitWrite() * dereference operator bitSet() & reference operator bitClear()

bit() & (bitwise and) External Interrupts | (bitwise or) attachInterrupt() ^ (bitwise xor) detachInterrupt() ~ (bitwise not) Interrupts << (bitshift left) interrupts() >> (bitshift right) noInterrupts()

Communication ++ (increment) Serial -- (decrement) Stream += (compound addition) -= (compound subtraction) *= (compound multiplication)

Page 13: [Arqui1]practica2 200815555

Ejemplo Completo Y Demostración con ARDUINO NANO

Justo para finalizar nuestra introducción al mundo ARDUINO es el momento de ver un ejemplo completo de con todas las configuraciones realizadas previamente.

Que necesitamos:

• Un ARDUINO en cualquier versión.

• Pasos descritos en la instalación y Configuración

• El programa en lenguaje arduino descrito en la sección Funciones Principales

Qué resultados esperamos:

• Conectar por primera vez nuestro ARDUINO.

• Controlar el LED en el ARDUINO cambiando le el tiempo

Start:1. Seleccionar nuestro modelo de micro controlador ARDUINO adquirido.

Page 14: [Arqui1]practica2 200815555

2. Conectar ARDUINO al puerto USB del PC3. Verificar que se detecto correctamente el dispositivo en el Menú Herramientas ->

Puerto Serial

4. Si todo ha ido bien no nos queda más que cargar nuestro ejemplo de Blink en el IDE de ARDUINO y proceder a presionar el Cargar y nuestro programa será enviado al micro controlador.

5. Ver Nuestro resultado con el LED de testeo del ARDUINO y el tiempo que le otorgamos para el encedido y apagado del mismo.

Page 15: [Arqui1]practica2 200815555

Errores Comunes

Los errores pueden ser distintos tipos los cuales hacemos mención:

• Hardware:1. El dispositivo venga defectuoso de fabrica no es reconocido por el

ordenador. Por lo cual se deberá intentar resetear desde el botón incluido en la placa. Si todo lo anterior no funciona se deberá adquirir una nueva placa.

2. No saber que Voltaje maneja la versión de ARDUINO.

• Software:1. La instalación de los drivers no sea la correcta, posibles errores de puerto

serial con otros SO como Windows.

Preguntas Frecuentes

Debido a la gran cantidad de usuarios y comunidades formadas en internet basta con suscribirse y plantear los problemas e incluso soluciones en dichas comunidades. Para ayudar a la comunidad del OPEN HW de ARDUINO.

Debido a que el micro controlador está hecho de una forma robusta puede soportar ciertos errores no al 100% pero si para poder practicar o inclusive crear nuevos proyecto y soluciones antes de dejar la placa sin funcionar.

Conclusiones:

El principal razón del documento presentado no es hacer mención honorifica a todos los conocimientos previos que se deben tener para iniciarse en la electrónica y la programación puesto que perdería el principal objetivo de fomentar el interés del lector en descubrir, el poder crear algo propio con su ingenio de una forma económica, y sobre todo inspiración por el auto aprendizaje realizando algo que le apasione, puesto que con esta motivación le llevara a alcanzar sus metas y objetivos sobre el aprendizaje de la plataforma de ARDUINO y sus innumerables apliaciones descritas de una forma sencilla como se ha planteado en este documento.

Page 16: [Arqui1]practica2 200815555

Recomendaciones

Buscar mucha información gracias al internet hay una vasta biblioteca, proyectos con los cuales se puede empezar a disfrutar de las bondades de la plataforma.

Consultar a personas que sepan del tema. Para adquirir los conocimientos básicos, esto ayudara a tener un progreso del cómo se debe y así como del no se debe. Para evitar pequeños tropiezos al iniciarse.

Bibliografía Debido a que mucha información está en Internet se dejan los enlaces que describen lo que posiblemente se encontraría en un libro.

• http://arduino.cc • http://es.wikipedia.org/wiki/Arduino

Enlaces de Ayuda • http://playground.arduino.cc/Es/Es • http://forum.arduino.cc/index.php/board,49.0.html • http://www.arduteka.com/arduino/ • http://www. youtube.com

Anexos

Page 17: [Arqui1]practica2 200815555