Que Es Arduino

16
Que es arduino?? Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, y Atmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que es ejecutado en la placa. Desde octubre de 2012, Arduino se usa también con microcontroladoras CortexM3 de ARM de 32 bits, que coexistirán con las más limitadas, pero también económicas AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel binario, pero se pueden programar con el mismo IDE de Arduino y hacerse programas que compilen sin cambios en las dos plataformas. Eso sí, las microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayoría de las placas con AVR, que generalmente usan 5V. Sin embargo, ya anteriormente se lanzaron placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como Adobe Flash, Processing, Max/MSP, Pure Data. Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente.

Transcript of Que Es Arduino

Que es arduino??Arduinoes una plataforma dehardware libre, basada en unaplacacon unmicrocontroladory unentorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares.Elhardwareconsiste en una placa con un microcontroladorAtmel AVRy puertos deentrada/salida.Los microcontroladores ms usados son elAtmega168,Atmega328,Atmega1280, yAtmega8por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa ellenguaje de programacin Processing/Wiring y elcargador de arranqueque es ejecutado en la placa.Desde octubre de 2012, Arduino se usa tambin con microcontroladoras CortexM3 de ARM de 32 bits,que coexistirn con las ms limitadas, pero tambin econmicas AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel binario, pero se pueden programar con el mismo IDE de Arduino y hacerse programas que compilen sin cambios en las dos plataformas. Eso s, las microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayora de las placas con AVR, que generalmente usan 5V. Sin embargo, ya anteriormente se lanzaron placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje.Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software tal comoAdobe Flash,Processing,Max/MSP,Pure Data. Las placas se pueden montar a mano o adquirirse. Elentorno de desarrollo integrado libre se puede descargar gratuitamente.Arduino puede tomar informacin del entorno a travs de sus entradas analgicas y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador. Tambin cuenta con su propio software que se puede descargar de su pagina oficial que ya incluye los drivers de todas las tarjetas disponibles lo que hace mas fcil la carga de cdigos desde el computador El proyecto Arduino recibi una mencin honorfica en la categora de Comunidades Digital en elPrix Ars Electrnicade 2006.Arduino utilizado en el proyecto?El Atmega328AVR8-bites unCircuito integradode alto rendimiento que est basado un microcontroladorRISC, combinando 32KBISPflashuna memoria con la capacidad de leer-mientras-escribe, 1KB de memoriaEEPROM, 2KB deSRAM, 23 lineas de E/S de propsito general, 32registrosde proceso general, tres temporizadores flexibles/contadorescon modo de comparacin,interrupcionesinternas y externas, programador de modoUSART, una interface serial orientada a byte de 2 cables,SPIpuerto serial, 6-canales 10-bitConversor A/D(8-chanales enTQFPyQFN/MLFpackages), "watchdog timer" programable conosciladorinterno, y cinco modos de ahorro de energa seleccionables por software. El dispositivo opera entre 1.8 y 5.5 voltios. Por medio de la ejecucin de poderosas instrucciones en un solo ciclo de reloj, el dispositivo alcanza una respuesta de 1MIPS, balanceando consumo de energa y velocidad de proceso .

ParmetrosPARMETROSVALORES

Flash32 Kbytes

RAM2 Kbytes

Cantidad Pines28

Frecuencia mxima de operacin20MHz

CPU8-bit AVR

Numero de Canales variables16

Pines mximos de E/S26

Interrupciones externas24

RemplazosUna remplazo alternativo comn al ATmega328 es el ATmega328P. Una lista bastante completa de otros integrantes de megaAvr puede ser encontrada en[1]AplicacionesHoy el ATmega328 se usa comnmente en mltiples proyectos y sistemas autnomos donde un micro controlador simple, de bajo consumo, bajo costo es requerido. Tal vez la implementacin ms comn[citarequerida]de este chip es en la popular plataformaArduino, en sus modelos Uno y Nano.Usando el ATmega328 como una alternativa a ArduinoUna gua fcil de como usar el Atmega328 como una alternativa a Arduino puede ser encontradaaqu. Ademas tambin se encuentra el ATmega328p (pico power) que consiste en un ahorro de energa que es tan solo una caracterstica adicional del ATmega328 pero su funcionamiento es el mismo.Especificaciones del arduinoLos modelos Arduino Diecimila, Arduino Duemilanove y Arduino Mega estn basados en los microcontroladores ATmega168, ATmega328 y ATmega1280ATmega328

Voltaje operativo5 V

Voltaje de entrada recomendado7-12 V

Voltaje de entrada lmite6-20 V

Contactos de entrada y salida digital14 (6 proporcionanPWM)

Contactos de entrada analgica6

Intensidad de corriente40 mA

Memoria Flash32KB (2KB reservados para el bootloader)

SRAM2 KB

EEPROM1 KB

Frecuencia de reloj16 MHz

Seales analgicas y digitales

Cuando un equipo electrnico nos muestra una informacin, puede hacerlo de formaanalgicao de formadigital.

Analgicaquiere decir que la informacin, la seal, para pasar de un valor a otro pasa por todos los valores intermedios, es continua.

La sealdigital, en cambio, va a saltos, pasa de un valor al siguiente sin poder tomar valores intermedios.Una sealanalgicaes continua, y puede tomar infinitos valores.

Una sealdigitales discontinua, y slo puede tomar dos valores o estados: 0 y 1, que pueden ser impulsos elctricos de baja y alta tensin, interruptores abiertos o cerrados, etc.

Lenguaje de programacin ArduinoLa plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje de programacin de alto nivelProcessingque es similar a C++.Interface con otro softwareEs posible comunicar una aplicacin que corra sobre Arduino con otros dispositvos que corran otros lenguajes de programacin y aplicaciones populares,21debido a que Arduino usa la transmisin serial de datos, la cul es soportada por la mayora de los lenguajes que se mencionan acontinuacin. Y 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 comunicacin fluida. Algunos ejemplos de lenguajes son: 3DVIA Virtools: aplicaciones interactivas y de tiempo real. Adobe Director BlitzMax(con acceso restringido) C C++(mediante libSerial o en Windows) C# Cocoa/Objective-C(paraMac OS X) Flash(mediante ActionScript) Gambas Isadora(Interactividad audiovisual en tiempo real) Instant Reality(X3D) Java Liberlab(software de medicin y experimentacin) Mathematica Matlab MaxMSP: Entorno grfico de programacin para aplicaciones musicales, de audio y multimedia Minibloq: Entorno grfico de programacin, corre tambin en las computadorasOLPC Perl Php Physical Etoys: Entorno grfico de programacin usado para proyectos de robtica educativa Processing Pure Data Python Ruby Scratch for Arduino (S4A): Entorno grfico de programacin, modificacin del entorno para niosScratch, delMIT Squeak: Implementacin libre de Smalltalk SuperCollider: Sntesis de audio en tiempo real VBScript Visual Basic .NET VVVV: Sntesis de vdeo en tiempo realComunicacin por puerto serieLas funciones de manejo del puerto serie deben ir precedidas de la palabra "Serial" aunque no necesitan ninguna declaracin en la cabecera del programa. Por esto se consideran funciones base del lenguaje.23Estas son las funciones para transmisin serial: begin(), available(), read(), flush(), print(), println(), write()Manipulacin de puertosLos registros de puertos permiten la manipulacin a ms bajo nivel y de forma ms rpida de los contactos de entrada/salida del microcontrolador de las placas Arduino.24Los contactos elctricos de las placas Arduino estn repartidos entre los registros B(0-7), C (analgicos) y D(8-13). Mediante estas variables ser observado y modificado su estado: DDR[B/C/D]: Data Direction Register (o direccin del registro de datos) del puerto B, C D. Es una variable de Lectura/Escritura que sirve para especificar cuales contactos sern usados como entrada y salida. PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C D. Es una variable de Lectura/Escritura. PIN[B/C/D]: Input Pins Register (o registro de pines de entrada) del puerto B, C D. Variable de slo lectura.Por ejemplo, para especificar los contactos 9 a 13 como salidas y el 8 como entrada (puesto que el puerto D usa los pines de la placa Arduino 8 al 13 digitales) bastara utilizar la siguiente asignacin: DDRD = B11111110;Como se ha podido comprobar, el conocimiento del lenguaje C, permite la programacin en Arduino debido a la similitud entre ste y el lenguaje nativo del proyecto, lo que implica el aprendizaje de algunas funciones especficas de que dispone el lenguaje del proyecto para manejar los diferentes parmetros. Se pueden construir aplicaciones de cierta complejidad sin necesidad de muchos conceptos previos.AVR LibcLos programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan contra AVR Libc22por lo que tienen acceso a algunas de sus funciones. AVR Libc es un proyecto de software libre con el objetivo de proporcionar unabibliotecaC de alta calidad para utilizarse con el compilador GCC sobre microcontroladores Atmel AVR. Se compone de 3 partes: avr-binutils avr-gcc avr-libcLa mayora del lenguaje de programacin Arduino est escrita con constantes y funciones de AVR y ciertas funcionalidades slo se pueden obtener haciendo uso de AVR.PROCESSINGProcessinges una herramienta de idioma desarrollo de cdigo abierto para la escritura de programas enotrosordenadores.til cuando se quiere esos otros ordenadores a "hablar" con un Arduino, por ejemplo para mostrar o guardar algunos datos recogidos por el Arduino.Es uncdigo abiertolenguaje de programaciny elentorno de desarrollo integrado(IDE) construido para las artes electrnicas,nuevos mediosydiseo visualcomunidades con el propsito de ensear los fundamentos dela programacin de computadorasen un contexto visual, y para servir de base para cuadernos electrnicos.El proyecto fue iniciado en 2001 porCasey ReasyBenjamin Fry, tanto antes del Grupo de Esttica y Computacin en elMIT Media Lab.Uno de los objetivos declarados de Procesamiento es actuar como una herramienta para obtener los no programadores comenzaron con la programacin, a travs de la gratificacin instantnea de informacin visual.El lenguaje se basa en ellenguaje Java, pero utiliza un modelo de programacin sintaxis simplificada y grficos.En este programa ingresamos coordenadas de donde se encuentra el vehculo y hasta donde se quiere llegar. Estas coordenadas se ingresan con un mapa en pantalla ubicando los puntos. Las coordenadas son insertadas y ledas como una cadena de texto que lleva distintos campos en donde se conoce latitud y longitud. Arduino y la comunicacin serie: librera Serial

Todas las placas de Arduino disponen de al menos un puerto serie, que permite la comunicacin con un ordenador o con otros dispositivos haciendo uso de esta interfaz. Los pines que se usan para la comunicacin por puerto serie vienen marcados en la placa con las siglas RX y TX, que corresponden al pin por el que se enviarn los datos, y al pin por el que se recibirn los datos respectivamente.En el caso que nos ocupa, usaremos el puerto serie no para comunicarnos con un ordenador, sino para poder comunicarnos con determinados sensores. En este epgrafe se expondrn las funciones necesarias para establecer la comunicacin e intercambiar datos, y en el captulo cuarto se vern ejemplos de sensores conectados por el puerto serie.

ConexionesComo se ha comentado en la introduccin de este epgrafe, se van a usar los pines TX y RX de la placa de Arduino. En las pruebas realizadas se ha usado la placa Arduino Mega 2560, la cual dispone de 8 pines destinados para ello, en lugar de los 2 de los que disponen el resto de placas. Estos pines vienen marcados en la placa y son las siguientes parejas (0,1), (14,15), (16,17), (18,19) y (20,21).Para un correcto funcionamiento, se debe conectar el pin de recepcin de la placa (RX) al pin de transmisin del dispositivo externo, y el pin de transmisin de la placa (TX) al pin de recepcin de dicho dispositivo. Adems, para comunicar el sistema de desarrollo con un dispositivo TTL es necesario conectar las tierras entre ellas.

Principales funcionesLas principales funciones usadas en la comunicacin por puerto serie vienen incluidas en la librera Serial() y son las siguientes: Serial.begin(velocidad).Establece la velocidad en bits por segundo (baudios) para la transmisin de datos en serie. Elparmetro velocidad se puede configurar con el valor que se desee para comunicarse con un dispositivo externo (hasta un mximo de 115200 baudios), sin embargo si la comunicacin por puerto serie va a ser con un ordenador, se deber elegir una de las siguientes: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 o 115200. Serial.end().Desactiva la comunicacin serie, permitiendo que los pines de recepcin y transmisin puedan ser usados como pines de entrada / salida digitales. Si se desee reanudar la comunicacin serie, se deber invocar nuevamente Serial.begin(). Serial.available().Devuelve, ecomo entero, el nmero de bytes (caracteres) disponibles para ser ledos por el puerto serie. Se refiere a datos ya recibidos y disponibles en el buffer de recepcin del puerto, cuya capacidad es de 128 bytes. En el caso de Arduino Mega, existen adems las funciones Serial1.available(), Serial2.available() y Serial3.available(). Serial.read().Lee los datos entrantes al puerto serie. Devuelve como entero el primer byte disponible recibido por el puerto serie, o -1 si no hay datos disponibles. Al igual que en el caso anterior, para la placa Arduino Mega existen tambin las funciones Serial1.read(), Serial2.read() y Serial3.read(). Serial.flush().Vaca el buffer de la entrada de datos serie. Esto quiere decir que si se llama a la funcin Serial.read() o Serial.available(), estas slo devolvern los datos recibidos despus de que se haya realizado esta llamada. No requiere parmetros ni devuelve nada. Para la placa Arduino Mega existen disponibles las llamadas Serial1.flush(), Serial2.flush() y Serial3.flush() adems de la principal. Serial.print(valor, formato).Esta funcin imprime los datos al puerto serie como texto ASCII. El primer parmetro, valor, es el propio valor que se desea imprimir. Esto se podr realizar de distintas formas: Los nmeros son impresos mediante un juego de caracteres ASCII para cada dgito. Los valores de tipo flotante (float) se imprimen en forma de dgitos ASCII con 2 decimales por defecto, es decir, si ejecutamos Serial.print(1.23456) se imprimir 1.23. Los valores de tipo byte se enviarn como un nico carcter. Los caracteres y las cadenas se enviarn tal cual. Adems, existe el segundo parmetro es opcional y permite especificar el formato que se desea usar. As, este parmetro puede tomar el valor BYTE, BIN (valores binarios, en base 2), DEC (valores decimales, en base 10), HEX (valores hexadecimales, en base 16). Si lo que se est imprimiendo son nmeros con coma flotante, este parmetro especificar el nmero de decimales a usar. Serial.println(valor, formato).Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro(ASCII 13 o \r) y un carcter de avance de lnea (ASCII 10 o \n). Por lo dems, este comando tiene la misma forma y los mismos parmetros que Serial.print() descrito anteriormente. Serial.write().Esta funcin escribe datos binarios en el puerto serie. Estos se enviarn como un byte o como una serie de bytes. Si lo que se desea es envar los caracteres que representan los nmeros, es mejor usar la funcin Serial.print() en su lugar. Puede tomar distintos parmetros: Serial.write(valor) enviar un solo byte. Serial.write(str) enviar una cadena como una serie de bytes. Serial.write(buf, len) enviar un array como una serie de bytes. El tamao del array se indicar en el segundo parmetro.

GPSGPS (Global Positioning System) es la abreviatura de Global Positioning System. Es un sistema de radionavegacin basado en satlites desarrollado y controlado por el Departamento de Defensa de Estados Unidos de Amrica que permite a cualquier usuario saber su localizacin, velocidad y altura, las 24 horas del da, bajo cualquier condicin atmosfrica y en cualquier punto del globo terrestre.

Despus de la segunda guerra mundial, el Dpto.de Defensa se empe en encontrar una solucin para elproblema del posicionamiento preciso y absoluto. Pasaron varios proyectos y experiencias durante los siguientes 25 aos, incluyendo Loran,Transitetc. Todos permitan determinar la posicin pero eran limitados en precisin o funcionalidad. En el comienzo de la dcada de 70, un nuevo proyecto fue propuesto, elGPS.

El GPS tiene tres componentes: el espacial, el de control y el de usuario.

El componente espacial est constituido por una constelacin de 24 satlites en rbita terrestre aproximadamente a 20200 km, distribuidos en 6 planos orbitales. Estos planos estn separados entre s por aproximadamente 60 en longitud y tienen inclinaciones prximas a los 55 en relacin al plano ecuatorial terrestre.Fue concebido de manera que existan como mnimo 4 satlites visibles por encima del horizonte en cualquier punto de la superficie y en cualquier altura.

El componente de control est constituido por5 estaciones de rastreo distribuidas a lo largo del globo y una estacin de control principal (MCS- Master Control Station).Este componenterastrea los satlites, actualiza sus posiciones orbitales y calibra y sincroniza sus relojes. Otra funcin importante es determinar las rbitas de cada satlite y prever su trayectoria durante las 24 horas siguientes. Esta informacin es enviada a cada satlite para despus ser transmitida por este, informando al receptor local donde es posible encontrar el satlite.

El componente del usuario incluyetodos aquellos que usan un receptor GPSpara recibir y convertir la seal GPS en posicin, velocidad y tiempo. Incluye adems todos los elementos necesarios en este proceso, como lasantenasy elsoftwarede procesamientoCmo funciona el GPS?

Losfundamentos bsicos del GPSse basan en la determinacin de la distancia entre un punto: el receptor, a otros de referencia: los satlites. Sabiendo la distancia que nos separa de 3 puntos podemos determinar nuestra posicin relativa a esos mismos 3 puntos a travs de la interseccin de 3 circunferencias cuyos radios son las distancias medidas entre el receptor y los satlites.En la realidad, son necesarios como mnimo 4 satlites para determinar nuestra posicin correctamente, pero dejemos eso para despus.

Cadasatlitetransmite una seal que es recibida por el receptor, ste, por su parte mide el tiempo que las seales tardan a llegar hasta l. Multiplicando el tiempo medido por la velocidad de la seal (la velocidad de la luz),obtenemos la distancia receptor-satlite, (Distancia= Velocidad x Tiempo).

Sin embargo el posicionamiento satelital no es as de simples. Obtener la medicin precisa de la distancia no es tarea fcil.

La distancia puede ser determinada a travs de los cdigos modulados enla onda enviada por el satlite(cdigos C/A y P), o por el anlisis de la onda portadora. Estos cdigos son complicados. El receptor fue preparado de modo la que solamente descifre esos cdigos y ninguno ms, de este modo l est inmune a interferencias generadas por fuentes naturales o intencionales.Esta es una de las razones para la complejidad de los cdigos.SensorUnsensores un dispositivo capaz de detectar magnitudes fsicas o qumicas, llamadas variables de instrumentacin, y transformarlas en variables elctricas. Las variables de instrumentacin pueden ser por ejemplo: temperatura, intensidad lumnica, distancia, aceleracin, inclinacin, desplazamiento, presin, fuerza, torsin, humedad, movimiento,pH, etc. Una magnitud elctrica puede ser unaresistencia elctrica(como en unaRTD), unacapacidad elctrica(como en unsensor de humedad), unatensin elctrica(como en untermopar), unacorriente elctrica(como en unfototransistor), etc.Un sensor se diferencia de untransductoren que el sensor est siempre en contacto con la variable de instrumentacin con lo que puede decirse tambin que es un dispositivo que aprovecha una de sus propiedades con el fin de adaptar la seal que mide para que la pueda interpretar otro dispositivo. Como por ejemplo eltermmetrode mercurio que aprovecha la propiedad que posee el mercurio de dilatarse o contraerse por la accin de la temperatura. Un sensor tambin puede decirse que es un dispositivo que convierte una forma de energa en otra.reas de aplicacin de los sensores: Industria automotriz, robtica, industria aeroespacial, medicina, industria de manufactura, etc.Los sensores pueden estar conectados a un computador para obtener ventajas como son el acceso a una base de datos, la toma de valores desde el sensor, etc .Sensor de odstaculoDetector de obstculos por infrarrojos, permite a los robots hacer una navegacin bsica evitando los obstculos. El circuito utiliza dos emisores de infrarrojos modulados y un receptor de IR amplificado, que permite captar las seales reflejadas por los objetos a una distancia de entre 20 y 65 cm. El sensor de infrarrojos se conecta con el microcontrolador principal mediante 2 salidas y 1 entrada digital. Alimentacin 5 V regulados. Consumo medio 8 mA. Circuito totalmente montado y ajustado listo para su uso.Sensor ultrasonicoLossensores de ultrasonidosson detectores de proximidad que trabajan libres de roces mecnicos y que detectan objetos a distancias que van desde pocos centmetros hasta varios metros. El sensor emite un sonido y mide el tiempo que la seal tarda en regresar. Estos reflejan en un objeto, el sensor recibe el eco producido y lo convierte en seales elctricas, las cuales son elaboradas en el aparato de valoracin. Estos sensores trabajan solamente en el aire, y pueden detectar objetos con diferentes formas, colores, superficies y de diferentes materiales. Los materiales pueden ser slidos, lquidos o polvorientos, sin embargo han de ser deflectores de sonido. Los sensores trabajan segn el tiempo de transcurso del eco, es decir, se valora la distancia temporal entre el impulso de emisin y el impulso del eco.Puente H UnPuente HoPuente en Hes uncircuito electrnicoque permite a unmotor elctrico DCgirar en ambos sentidos,avanceyretroceso. Son ampliamente usados enrobticay como convertidores de potencia. Los puentes H estn disponibles comocircuitos integrados, pero tambin pueden construirse a partir de componentes discretos.

Revisar conexin Ubicar coordenadas de posicin en GPSSe ubic la posicin entre coordenadas?Se obtuvo distancia entre los punto?Mover vehculoSe Lleg al destino?