Beruflich Dokumente
Kultur Dokumente
Instalar y familiarizarse con el entorno de desarrollo Eclipse IDE e integrar el SDK que ofrece Android. Estudiar las libreras y los correspondientes mtodos que ofrece el SDK de Android para la implementacin de comunicaciones Bluetooth. Implementar y disear componentes bsicos de interfaz de usuario para dispositivos mviles mediante las funciones de diseo que ofrece Android.
Master en Sistemas Telemticos e Informticos Domtica y Sistemas Embebidos para Comunicaciones Inalmbricas
3.1. Objetivos
3.1.1 Objetivos generales:
Al terminar la prctica, el alumno deber ser capaz de desarrollar una aplicacin mvil utilizando el SDK que ofrece el sistema operativo Android, que sea capaz de realizar comunicaciones Bluetooth para enviar rdenes simples a una placa Arduino.
Seleccionar los checkbox de Android DDMS y de AndroidDevelopment Tools, hacer click en Next dos veces y finalmente click en Finish. Descargar e instalar el ltimo target disponible para Android. Ir a Inicio -> Todos los programas ->Android SDK Tools -> SDK Manager o, desde Eclipse, Window ->Android SDK and AVD Manager. Ir a apartado AvailablePackages. Seleccionar todos los checkbox tanto de AndroidRepository como de Thirdpartyadd-ons. Finalmente pulsar en InstallSelected. Para poder validar y probar las aplicaciones es necesario crear un emulador de un target especfico. Para ello, tenemos que ir a Window ->Android SDK and AVD Manager -> Virtual Devices. Hacer click en New... y poner un nombre al nuevo emulador, por ejemplo "EmuladorHWD". Seleccionar el target para desarrollar y dejar las dems opciones por defecto (mnimo 2.1).
Ahora es el momento de configurar ruta del SDK de Android en Eclipse. Para ello, hay que click en Window ->Preferences... y seleccionar Android en la parte izquierda. Hacer click en Browser... e indicar la ruta donde se instal el SDK de Android.
4.
5. 6. 7.
Aadir al path del sistema operativo las rutas para ejecutar comandos propios de Android. Abrir el fichero .bashrc: sudo nano /home/[nombre_usuario]/.bashrc Editar fichero incluyendo la siguiente lnea: export PATH=${PATH}:/home/[nombre_usuario]/AndroidDevelopment/androi d-sdk-linux_x86/tools/ a. export PATH=${PATH}:/home/[nombre_usuario]/AndroidDevelopment/and roid-sdk-linux_x86/platform-tools/
3. 4.
8. 9. 10. 11.
Reiniciar la consola. Aadir permisos USB para poder instalar aplicaciones en un dispositivo mvil. Crear fichero: sudo mkdir /etc/udev/rules.d/51-android-rules Aadir dispositivo (lnea al fichero): SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev". Si tienes otro dispositivo mirar relaciones de idVendor en [4]. Ejecutar: sudo chmod 755 /etc/udev/rules.d/51-android-rules Descargar e instalar el entorno Eclipse IDE desde [2]. Seleccionar plataforma Linux. Configurar Eclipse IDE: Abrir Eclipse y pulsar pestaa Help ->Install New Software. Aadir repositorios de descarga del plugin ADT para Eclipse. Pulsar Add... y en el dilogo que aparece introducir name: AndroidPlugin location: https://dl-ssl.google.com/android/eclipse/ (probar con http si con https no funciona) y hacer click en Ok. En la ventana Available Software ahora debera aparecer Developper Tools.
15. 16.
c. Crear un emulador de un target especfico. Ir a Window ->Android SDK and AVD Manager -> Virtual Devices.
d.
Hacer click en New... y poner un nombre al nuevo emulador, por ejemplo "EmuladorHWD". Seleccionar el target para desarrollar y dejar las dems opciones por defecto (mnimo 2.1).
! !
17.
18.
Seleccionar los checkbox de Android DDMS y de AndroidDevelopment Tools, hacer click en Next dos veces y finalmente click en Finish. Descargar e instalar el ltimo target disponible para Android. Abrir un terminal y ejecutar android o, desde Eclipse, Window ->Android SDK and AVD Manager. Ir a apartado AvailablePackages y seleccionar todos los checkbox tanto de AndroidRepository como de Thirdpartyadd-ons y pulsar en InstallSelected.
3.2. Ejemplos
3.2.1Ejemplo 1 Envo de saludo por bluetooth
El siguiente ejemplo es un extracto del cdigo en Android para establecer una conexin RFCOMM. La variable this.mac debera ser el string que guarda la mac del dispositivo. a. Configurar ruta del SDK de Android en Eclipse. Hacer click en Window ->Preferences... y seleccionar Android en la parte izquierda. b. Hacer click en Browser... e indicar la ruta donde se instal el SDK de Android. Posteriormente pulsar Apply y comprobar que se obtiene la lista de targets instalados.
private void doConnect() { //INICIALIZACION mBtAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBtAdapter == null) { Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show(); finish(); return; } if (!mBtAdapter.isEnabled()) { Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableIntent, REQUEST_ENABLE_BT); } //OBTENIENDO DISPOSITIVO this.mac=this.edit_text0.getText().toString(); this.device=mBtAdapter.getRemoteDevice(this.mac); //CREANDO SOCKET try { this.socket_device = this.device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-800000805F9B34FB")); } catch (IOException e) { Toast.makeText(this, "Falla creacin Socket!", Toast.LENGTH_LONG).show(); } //CREANDO CONEXION try { this.socket_device.connect(); } catch (IOException e) { try { this.socket_device.close(); } catch (IOException e2) { Toast.makeText(this, "Conexion Fallida", Toast.LENGTH_LONG).show(); } } }
Hito 2) Realizar los ejemplos descritos en el apartado 2. Hito 3) Modificar el ejemplo del apartado 2 para que realice un bucle de 50 iteracciones. Hito 4) Realizar un programa que se comunique con la placa de las prcticas y le enve @11 (encender led 1). Hito 5) Realizar un programa para la comunicacin con la placa de Arduino, o la placa domtica bluetooth, que integre un protocolo para enviar una serie de comandos para controlar el encendido y apagado de los leds de la placa. ! Hito 5.1) El programa deber enviar @11 y al cabo de 5 segundos @10, al cabo de 5 segundos @21 y al cabo de 5 segundos @20. ! Hito 5.2) El programa dar la posibilidad al usuario de introducir el comando a enviar en una caja de texto. Adems, existir un botn que cuando se pulse enviar el contenido de la caja de texto. ! Hito 5.3 optativo) Incluir iconos en el interfaz que simbolicen encendido/apagado de bombillas. Cuando se pulse uno de los iconos de cada bombilla se enviar automticamente el comando. ! Cada led simboliza lo siguiente: Led1: luz del patio. Led2: luz del saln. Led3: luz del dormitorio. Led4: luz del aseo. ! Un ejemplo del protocolo est explicado en los anexos del guin de la prctica 2-B.
.......
private void sendInfo() { // TODO Auto-generated method stub byte[] buffer; try { tmpOut = new DataOutputStream(this.socket_device.getOutputStream()); } catch (IOException e) { Toast.makeText(this, "OutputFallido!", Toast.LENGTH_LONG).show(); } try { buffer = edit_text1.getText().toString().getBytes(); tmpOut.write(buffer); tmpOut.flush(); } catch (IOException e) { // TODO Auto-generated catch block Toast.makeText(this, "Envio fallido", Toast.LENGTH_LONG).show(); } }
Hito 6 - optativo) Si en la placa se ha incorporado un sensor de temperatura, incluir en el interfaz el envo de un comando que ordene el envo de la temperatura desde la placa arduino al mvil. Una vez recibido aparecer en una segunda caja de texto este valor. NOTA: El da de la entrega final el alumno deber adjuntar en la memoria cmo ha ido realizando cada uno de los hitos de esta prctica, detallando las cuestiones de diseo e implementacin. Se valorarn diagramas de estados y tambin indicar los roles que se han adquirido en la prctica, as como las tareas de cada rol y el porcentaje de participacin.
!
Hitos de la prctica
Para realizar esta prctica necesitars un telfono Android con comunicacin Bluetooth. Asegrate que tienes el Bluetooth activo y tambin que tienes configurado el pin: Hito 1) Lee atentamente toda la documentacin de este guin y realiza la instalacin descrita en el apartado 2.
3.3. Referencias
[1]http://www.oracle.com/technetwork/java /javase/downloads/index.html [2]http://www.eclipse.org/downloads/ [3]http://developer.android.com/sdk/index.html
[4]http://developer.android.com/guide/developing/device.html#VendorIds