Vous êtes sur la page 1sur 15

Que es arduino??

Arduino es una plataforma de hardware libre, basada en una placa con


un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la
electrnica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos
de entrada/salida. Los
microcontroladores
ms
usados
son
el Atmega168, Atmega328, Atmega1280, y Atmega8 por 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 el lenguaje de programacin
Processing/Wiring y el cargador de arranque que 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 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.
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 el Prix
Ars Electrnica de 2006.
Arduino utilizado en el proyecto?
El Atmega328 AVR 8-bit es un Circuito integrado de alto rendimiento que est
basado un microcontrolador RISC, combinando 32 KB ISP flash una memoria con

la capacidad de leer-mientras-escribe, 1 KB de memoria EEPROM, 2 KB


de SRAM, 23 lineas de E/S de propsito general, 32 registros de proceso general,
tres
temporizadores
flexibles/contadores con
modo
de
comparacin, interrupciones internas y externas, programador de modo USART,
una interface serial orientada a byte de 2 cables, SPI puerto serial, 6-canales 10bit Conversor A/D (8-chanales en TQFP y QFN/MLF packages), "watchdog timer"
programable con oscilador interno, 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 1 MIPS, balanceando consumo de energa y velocidad
de proceso .

Parmetros
PARMETROS

VALORES

Flash

32 Kbytes

RAM

2 Kbytes

Cantidad Pines

28

Frecuencia mxima de operacin

20 MHz

CPU

8-bit AVR

Numero de Canales variables

16

Pines mximos de E/S

26

Interrupciones externas

24

Remplazos
Una remplazo alternativo comn al ATmega328 es el ATmega328P. Una lista bastante
completa de otros integrantes de megaAvr puede ser encontrada en [1]

Aplicaciones
Hoy 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 [cita requerida] de este chip es en la popular plataforma Arduino, en sus
modelos Uno y Nano.

Usando el ATmega328 como una alternativa a Arduino


Una gua fcil de como usar el Atmega328 como una alternativa a Arduino puede ser
encontrada aqu. 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 arduino


Los modelos Arduino Diecimila, Arduino Duemilanove y Arduino Mega estn basados en los
microcontroladores ATmega168, ATmega328 y ATmega1280

ATmega328

Voltaje operativo

Voltaje de entrada
recomendado

Voltaje de entrada lmite

5V

7-12 V

6-20 V

Contactos de entrada y salida


digital

Contactos de entrada
analgica

Intensidad de corriente

Memoria Flash

14 (6 proporcionan PWM)

40 mA

32KB (2KB reservados para el


bootloader)

SRAM

2 KB

EEPROM

1 KB

Frecuencia de reloj

16 MHz

Seales analgicas y digitales


Cuando un equipo electrnico nos muestra una informacin, puede hacerlo de
forma analgica o de forma digital.
Analgica quiere decir que la informacin, la seal, para pasar de un valor a otro pasa
por todos los valores intermedios, es continua.
La seal digital, en cambio, va a saltos, pasa de un valor al siguiente sin poder
tomar valores intermedios.

Una seal analgica es continua, y puede tomar infinitos valores.


Una seal digital es 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 Arduino


La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el
lenguaje de programacin de alto nivel Processing que es similar a C++.

Interface con otro software


Es posible comunicar una aplicacin que corra sobre Arduino con otros dispositvos que corran
otros lenguajes de programacin y aplicaciones populares,21 debido 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++ (mediante libSerial o en Windows)

C#

Cocoa/Objective-C (para Mac 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 computadoras OLPC

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 nios Scratch, del MIT

Squeak: Implementacin libre de Smalltalk

SuperCollider: Sntesis de audio en tiempo real

VBScript

Visual Basic .NET

VVVV: Sntesis de vdeo en tiempo real

Comunicacin por puerto serie


Las 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.23 Estas son las funciones para transmisin serial:

begin(), available(), read(), flush(), print(), println(), write()

Manipulacin de puertos
Los 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. 24 Los 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 Libc

Los programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan
contra AVR Libc22 por lo que tienen acceso a algunas de sus funciones. AVR Libc es un
proyecto de software libre con el objetivo de proporcionar una biblioteca C de alta calidad para
utilizarse con el compilador GCC sobre microcontroladores Atmel AVR. Se compone de 3
partes:

avr-binutils

avr-gcc

avr-libc

La 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.

PROCESSING
Processing es una herramienta de idioma desarrollo de cdigo abierto para la
escritura de programas en otros ordenadores. 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 un cdigo abierto lenguaje de programacin y el entorno de desarrollo
integrado (IDE) construido para las artes electrnicas, nuevos medios y diseo
visual comunidades con el propsito de ensear los fundamentos de la
programacin de computadoras en un contexto visual, y para servir de base para
cuadernos electrnicos. El proyecto fue iniciado en 2001 por Casey
Reas y Benjamin Fry , tanto antes del Grupo de Esttica y Computacin en el MIT
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 el lenguaje 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.

Conexiones
Como 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 funciones
Las 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.

El parmetro 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.

GPS

GPS (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 el problema del posicionamiento preciso
y absoluto. Pasaron varios proyectos y experiencias durante los siguientes
25 aos, incluyendo Loran,Transit etc. 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, el GPS.
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 por 5 estaciones de rastreo
distribuidas a lo largo del globo y una estacin de control principal
(MCS- Master Control Station). Este componente rastrea 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 incluye todos aquellos que usan un
receptor GPS para recibir y convertir la seal GPS en posicin,
velocidad y tiempo. Incluye adems todos los elementos necesarios en
este proceso, como las antenas y el software de procesamiento

Cmo funciona el GPS?


Los fundamentos bsicos del GPS se 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.
Cada satlite transmite 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 en la 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.

Sensor
Un sensor es 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 una resistencia elctrica (como en una RTD),
una capacidad elctrica (como en un sensor de humedad), una tensin elctrica (como en
un termopar), una corriente elctrica (como en un fototransistor), etc.
Un sensor se diferencia de un transductor en 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 el termmetro de 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 odstaculo
Detector 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 ultrasonico
Los sensores de ultrasonidos son 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
Un Puente H o Puente en H es un circuito electrnico que permite a un motor elctrico
DC girar en ambos sentidos, avance y retroceso. Son ampliamente usados en robtica y como
convertidores de potencia. Los puentes H estn disponibles como circuitos integrados, pero
tambin pueden construirse a partir de componentes discretos.

Revisar conexin Ubicar coordenadas de posicin en GPS


Se ubic la posicin entre coordenadas?
Se obtuvo distancia entre los punto?
Mover vehculo
Se Lleg al destino?

Vous aimerez peut-être aussi