Anda di halaman 1dari 6

Resumen

1 Generalidades

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 microcontrolador en la placa Arduino se programa mediante el lenguaje de
programacin Arduino y el entorno de desarrollo Arduino.

Arduino UNO: Consta de 14 entradas/salidas digitales configurables que operan a 5 voltios

Shield: es un complemento para tarjetas Arduino que extienden sus capacidades ofreciendo
nuevos servicios, por ejemplo: puertos de red, tarjetas bluetooth, USB, entre otros.

2 Lenguaje de Programacin

Ambiente de Programacin Arduino:
El ambiente de programacin est escrito en Java y basado en software open source como avr-
gcc. El ambiente contiene un editor de texto, un rea de mensajes, una consola de texto, una
barra de herramientas con funciones comunes y una serie de mens.
Es muy sencillo, en el mismo ambiente uno selecciona el tipo de arduino que se est utilizando,
uno puede:
Verificar el cdigo en busca de errores (cdigo muy fcil basado en java)
Subir el cdigo al arduino. Solo se necesita un cable usb y el IDE se encarga de
compilar el programa y cargarlo en la memoria del arduino.

Estructura de un programa arduino:
Un programa arduino (extensin .ino) est compuesto de dos partes:
el mtodo void setup():
Aqu va la configuracin inicial del chip, podemos inicializar variables, modos de
pin, empezar a utilizar libreras. Se ejecuta al inicio una vez (o cuando
reiniciamos el arduino)
el mtodo void loop()
Mtodo que se ejecutar infinitamente. Aqu va la funcionalidad de lo que
estamos implementando. Puede ser una mquina de estados simple o simples
operaciones que ejecutamos continuamente (ejemplo mediciones peridicas)

Para ms informacin acerca de los tipos, operadores, variables, funciones, interrupciones y
otras cosas ms del lenguaje vea el enlace: http://www.arduino.cc/en/Reference/HomePage
(tambin est en la ayuda del IDE)

3 Ventajas y Debilidades
Ventajas:
Asequible: Las placas Arduino son ms asequibles comparadas con otras plataformas
de microcontroladores.
Multi-Plataforma: El software de Arduino funciona en los sistemas operativos Windows,
Macintosh OSX y Linux.
Entorno de programacin simple y directo: El entorno de programacin de Arduino es
fcil de usar para principiantes y lo suficientemente flexible para los usuarios
avanzados.
Software ampliable y de cdigo abierto: El software Arduino esta publicado bajo una
licencia libre y preparado para ser ampliado por programadores experimentados. El
lenguaje puede ampliarse a travs de libreras de C++ o se puede dar el salto a la
programacin en el lenguaje AVR C en el que est basado.
Hardware ampliable y de cdigo abierto: Arduino est basado en los microcontroladores
ATMEGA168, ATMEGA328, ATMEGA1280. Los planos de los mdulos estn
publicados bajo licencia Creative Commons, por lo que diseadores de circuitos con
experiencia pueden hacer su propia versin del mdulo, amplindolo u optimizndolo.

Debilidades:
No ofrece simulacin con software IDE.
Requiere conocimientos en programacin

4 Requerimientos
Un arduino
Una USB Host Shield.
Un telfono o dispositivo Android
Android versin 1.5+ para utilizar MicroBridge y 2.3.4 para utilizar el ADK.

5 Precios
Kit bsico arduino UNO (cables, protoboard, cable usb) $36
Dispositivo android: precio variable
Arduino USB Shield : $ 25

6 Programacin en Android
a MicroBridge
Es una implementacin del Android Debug Bridge (ADB) para microcontroladores. Permite a
los dispositivos android comunicarse directamente con un host USB.
El protocolo ADB soporta abrir un shell en el dispositivo android o emitir comandos shell
directamente, poniendo archivos en el dispositivo, leyendo logs (logcat), y enviando a puertos
TCP y sockets Unix. Utilizando sockets TCP es posible establecer comunicacin bidireccional
entre un Arduino y un dispositivo Android. La aplicacin Android escucha en un puerto, y el
Arduino se conecta a ese puerto a travs del ADB.

Cuando se pierde la conexin porque la aplicacin se cae o el dispositivo USB fue
desconectado, MicroBridge peridicamente intenta reconectar. Cuando el dispositivo se vuelve
a conectar, el enlace es automticamente restablecido.


b ADK
El ADK (Android Accessory Development Kit) es un sistema de integracin con accesorios de
hardware para los dispositivos Android basado en Arduino que puede utilizar la conexin USB
para comunicarse. El ADK esta compuesto principalmente por:
La "ADK Board" una placa basada en el Arduino Mega. La diferencia principal con la
famosa placa de Arduino es que posee un puerto USB host por el que va conectado el
telfono o dispositivo Android.
La "ADK Shield" una placa de demostracin y desarrollo que posee dos rels de
corriente continua, sensor de temperatura, sensor de luz, sensor capacitivo, tres leds
RGB, tres pulsadores y un joystick.
Y por ltimo, libreras, ejemplos y dems software necesario para poner en
funcionamiento el sistema.

Sin embargo podemos utilizar un arduino y un USB Host Shield, y aprovechar el software del
ADK para establecer la comunicacin entre arduino y android.

Conexin USB por medio del ADK
El ADK (Android Accessory Development Kit) puede utilizar la conexin USB para comunicarse.

Programacin del USB
La biblioteca ADK requiere hacer algunas inicializaciones de la conectividad USB, por ejemplo
setear los accessory identification strings:
ADK L;
void setup() {
L.adkInit();
L.usbSetAccessoryStringVendor(...);
L.usbSetAccessoryStringName(...);
L.usbSetAccessoryStringLongname(...);
L.usbSetAccessoryStringVersion(...);
L.usbSetAccessoryStringUrl(...);
L.usbSetAccessoryStringSerial(...);

L.usbStart();
}

Estos strings deben calzar con la configuracin de filtros especificados en la aplicacin Android.
As el arduinopuede manejar peticiones de escucha y conexin. Esto lo hace llamando a
adkEventProcess en la ejecucin del mtodo loop.

void loop(void)
{
...
L.adkEventProcess(); //let the adk framework do its thing
...
}

El arduino debe chequear por la conexin USB para procesar comandos y enviar mensajes.
Como se muestra en el ejemplo

void loop() {
if (L.accessoryConnected()) {
int recvLen = L.accessoryReceive(msg, sizeof(msg));
if (recvLen > 0) {
... // process message
}

L.accessorySend(outmsg, outmsgLen);
}
L.adkEventProcess();
}
Cdigo de la aplicacin Android USB
En el ADK 2012, las conexiones USB estn encapsuladas en la clase UsbConnection. Esta
clase levanta un BroadcastReceiver que se encarga de escuchar los eventos USB para intentar
conectarse.
Ejemplo:
import com.android.future.usb.UsbAccessory;
import com.android.future.usb.UsbManager;

mUSBManager = UsbManager.getInstance(this);
UsbAccessory acc = mUSBManager.getAccessoryList()[0];

if (!mUSBManager.hasPermission(acc)) return;

Es importante decir que la aplicacin solo recibe eventos cuando la informacin de
identificacin del arduino calza con la informacin de res/xml/usb_accessory_filter.xml,
referenciado en el manifiesto de la siguiente forma:
<meta-data
android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/usb_accessory_filter" />

Una vez establecida la conexin, la aplicacin puede comunicarse con el arduino a travs de
streams de entrada y salida como se muestra a continuacin:
ParcelFileDescriptor mFD = mUSBManager.openAccessory(acc);
if (mFD != null) {
FileDescripter fd = mFD.getFileDescriptor();
mIS = new FileInputStream(fd); // use this to receive messages
mOS = new FileOutputStream(fd); // use this to send commands
}

7 Pasos para programar Android utilizando el ADK
Para desarrollar aplicaciones android que se comuniquen con Arduino, es necesario
seguir estos pasos:

Paso 1: Configurar el entorno de desarrollo.
Instalar el SDK y la plataforma de desarrollo Eclipse.
Entrar en Help/Install new software...
Click en ADD (botn arriba a la derecha).
Introducir en name "ADT Plugin" y en Location https://dl-ssl.google.com/android/eclipse/
Click en OK.
Seleccionar Developer Tools y presionar Next, sale otra pantalla, otra vez Next.
Aceptar los License Agreements, y presionar Finish.
Si sale un aviso de seguridad presionar OK.
Reiniciar Eclipse.
Entrar en Window/Preferences (en Mac Eclipse/Preferences)
Seleccionar Android en el panel izquierdo.
Seleccionar si se quiere enviar datos a Google, luego presionar Proceed.
En SDK Location presionar Browse y buscar la carpeta donde tenemos el SDK de
android.
Presionar Apply y luego OK

Paso 2: Instalar el API que soporte el ADK
En Eclipse entrar a Window/Android SDK and AVD Manager.
Entrar en el panel de la izquierda en Avaliable packages.
Dentro de Third Party Add-ons/Google inc buscar Android API 10 Revision 2,
seleccionarla y presionar Install selected.
Aceptar.

Paso 3: Configurar ADK
Descargar el ltimo ADK. Descomprimirlo dentro de la carpeta del SDK de Android.
Copiar la carpeta firmware/arduino_libs/AndroidAccessory a nuestra carpeta de libreras
del IDE Arduino.
En la carpeta de libreras IDE Arduino debe estar la librera del USB Host Shield.
Abrir el sketch de Arduino con el IDE de programacin de Arduino y cargarlo en el
Arduino.

Paso 4: Crear proyecto y ejecutarlo en el telfono
Crear un proyecto
Desarrollar el cdigo para controlar el arduino
Instalarlo y ejecutarlo en el dispositivo Android.

8 Referencias
http://developer.android.com/tools/adk/adk2.html
http://developer.android.com/tools/help/adb.html
http://code.google.com/p/microbridge/
http://www.arduino.cc/en/Reference/HomePage
http://mitchtech.net/android-arduino-usb-host-temperature-light/
http://blog.bricogeek.com/noticias/arduino/el-adk-de-google-en-un-arduino-uno/
http://www.amazon.com/Starter-Kit-Newsite-Uno-
Breadboard/dp/B0051QHPJM/ref=sr_1_1?ie=UTF8&qid=1352234702&sr=8-
1&keywords=arduino+kit
http://www.amazon.com/SparkFun-USB-Host-
Shield/dp/B004G4ZKEW/ref=sr_1_2?s=electronics&ie=UTF8&qid=1352234746&
sr=1-2&keywords=arduino+USB+Shield

Anda mungkin juga menyukai