• No se han encontrado resultados

Guia de Aprendizaje

N/A
N/A
Protected

Academic year: 2021

Share "Guia de Aprendizaje"

Copied!
201
0
0

Texto completo

(1)
(2)

El presente trabajo es una guía de aprendizaje para el desarrollo de aplicaciones Android y construcción de circuitos de interfaz con el mundo real para su posterior aplicación en robótica móvil. En esta guía contiene el resultado de una investigación de 6 meses de residencia profesional recopilando y probando diferentes métodos, software, pruebas y conclusiones obtenidas a lo largo de este periodo.

Se explican los conceptos básicos para familiarizarse con el sistema Android y se desarrollaran aplicaciones básicas y sencillas hasta llegar a las aplicaciones de interfaz con hardware externo que será construido por el lector. Se proporcionan los códigos fuente, esquemáticos, software y demás recursos contenidos en el CD como medio de apoyo.

Se han construido dos interfaces para experimentar con Android a través de bluetooth y USB que serán utilizados en las prácticas de igual forma se ha diseñado un robot que servirá de modelo para futuros proyectos y entender mejor los conocimientos adquiridos.

Se requieren nociones de programación en algún lenguaje y también el uso de microcontroladores o alguna tarjeta de desarrollo como arduino o similar.

Desarrollos por José Luis Ku Uc

Asesorado por Dr. José Ramón Atoche Enseñat Departamento de Ingeniería Eléctrica y Electrónica

Agosto de 2012

[email protected]

(3)

INTRODUCCIÓN ... 4

CONCEPTOS BASICOS ... 7

INSTALACION DE LAS HERRAMIENTAS ... 31

JAVA JDK ...31

ANDROID SDK ...35

BASIC4ANDROID ... 43

CONFIGURACION DEL ENTORNO DE DESARROLLO ... 48

INTRODUCCION A BASIC4ANDROID ... 53

DESARROLLO DE APLICACIONES BASICAS ... 65

DESARROLLO DE APLICACIONES CON LIBRERIAS ... 85

CONSTRUCCION DE HARDWARE ... 119

PIC USB ...119

MODULO BLUETOOTH ...123

IOIO BOARD ...127

DESARROLLO DE APLICACIONES DE INTERFAZ ... 130

INTERFAZ CON BLUETOOTH ...130

INTERFAZ CON IOIO ...145

ROBOT DROID ... 154 ESTRUCTURA MECANICA. ...154 ELETRONICA ...156 SOFTWARE ...162 CONCEPTOS AVANZADOS ... 167 TEMAS INTERESANTES ... 187

REPERTORIO DE INSTRUCCIONES DE BASIC4ANDROID ... 190

(4)

¿Qué es un Sistema Operativo?

Un sistema operativo es un conjunto de programas, su finalidad es la de gestionar el hardware desde el más bajo nivel, administrar eficazmente los recursos y permitir la interacción con el usuario.

¿Qué es Android?

Android es un sistema operativo para dispositivos móviles basado en Linux, desarrollado por Google. La mayor parte de Android está disponible bajo licencia de software libre, esto resulta una opción muy interesante para los fabricantes, para los usuarios y desarrolladores.

Android utiliza la arquitectura ARM como hardware principal e integra una variedad de sensores tales como acelerómetros, giroscopios, de proximidad, barómetros, GPS, magnetómetros. Etc. También ofrece conectividad a través de medios alámbricos e inalámbricos como USB, bluetooth, Wi-Fi, NFC, etc. Algunos de estos varían de acuerdo al dispositivo como puede ser una lavadora, un teléfono celular, Tablet, computadora, etc. Desde su lanzamiento ha pasado por varias actualizaciones que corrigen errores y añaden funciones, actualmente el sistema operativo se encuentra en la versión 4.1 (Jelly Bean).

¿Qué es una Aplicación Android?

Una aplicación Android es un programa de alto nivel que permite la interacción del usuario con las funciones del sistema operativo y amplía las funcionalidades del dispositivo, la extensión de estas aplicaciones están en formato APK.

Las aplicaciones se distribuyen a través del mercado en línea de google llamado Play Store (antes Android Market) para su descarga. También es posible obtener el instalador de la aplicación (archivo APK) y almacenarlo en el dispositivo para su instalación. Otra forma de instalar aplicaciones es a través del propio entorno de desarrollo a través de una conexión USB o Wi-Fi con la computadora.

¿Qué es una máquina virtual?

Es un programa que ejecuta código intermedio. Cuando se compila el código el resultado es un conjunto de instrucciones en un formato específico que entiende la propia máquina virtual, un

(5)

Ejemplo es la máquina virtual Java de Sun Microsystems. En pocas palabras una máquina virtual emula a un ordenador.

¿Qué es la Java JDK?

Java JDK (Java Development Kit) es un conjunto de software proporcionado por Sun Microsystems para desarrollar software con el lenguaje de programación java, es utilizado por Android para generar código intermedio que será ejecutado por su propia máquina llamada Dalvik optimizada para funcionar en dispositivos con poca memoria. El sistema Android está basado en lenguaje C++(debido al núcleo Linux) sin embargo se utiliza java por su potencialidad en dispositivos móviles.

¿Qué es la Android SDK?

La Android SDK (Software Development Kit) es un conjunto de software proporcionado por Google que provee las herramientas para desarrollar aplicaciones para Android en el lenguaje de programación java. Al utilizar este lenguaje de programación se necesita que la java JDK este instalada en el equipo.

¿Qué se necesita para desarrollar aplicaciones Android?

Se necesita el kit de herramientas Java JDK, el kit de herramientas de Google Android SDK y un entorno para desarrollar aplicaciones siendo Eclipse el más popular y poderoso de todos, pero el desarrollo es más lento y complicado ya que está diseñado para un nivel más experto, sin embargo existen alternativas para hacer más fácil el desarrollo de aplicaciones a través de otros entornos como Processing, Mono for Android, Basic4android, App Inventor, etc.

¿Qué es Basic4android?

Basic4android es un entorno de desarrollo rápido de aplicaciones Android en lenguaje Basic. Este lenguaje es interpretado por el software que es convertido a código Java para finalmente crear el empaquetado APK.

¿Cómo utilizar Android en Robótica?

Un dispositivo Android en Robótica se puede utilizar como un accesorio de un Robot o bien como controlador principal del mismo. Algunas aplicaciones como accesorio puede ser dotar al robot con un sistema de visión a través de la cámara o proporcionarle conexión a internet por medio de Wi-Fi, también utilizarlo como un mando a distancia por bluetooth o para desplegar datos de sensores y proveer una interfaz de usuario con la pantalla táctil, etc. Como controlador principal puede ampliarse la funcionalidad del robot a través de las aplicaciones y hacer operaciones más

(6)

Complejas ya que se cuenta con un procesador más potente para controlar las funciones principales. De esta forma el robot puede ampliar sus capacidades conectando hardware externo.

¿Cómo conectar Hardware externo a un dispositivo Android?

Una parte fundamental del robot son los sensores como sensores de línea, medidores de distancia, sensores de temperatura, de luz ambiente, y actuadores como motorreductores, servomotores, solenoides, válvulas, etc. Para poder establecer una interfaz entre estos y un dispositivo Android es necesario algún medio alámbrico o inalámbrico, casi siempre apoyados de un Microcontrolador. Por ejemplo se puede establecer una interfaz por bluetooth utilizando algún modulo que funcione como puerto serie tales como el HC-05, HC-06, BTM-180, etc. También es posible construir una interfaz a través de Wi-Fi utilizando alguna tarjeta como los shields para arduino. Con la llegada de Android 4.0 se implementó la conectividad NFC que es similar a la tecnología RFID para comunicarse con medios inalámbricos. Una interfaz cableada simple es utilizar la salida de audio para implementar un protocolo de comunicación con algún Microcontrolador. Otra manera de establecer una interfaz es a través del puerto USB por medio del protocolo ADB o ADK, en la que un Microcontrolador actúa como un Host USB. Existen tarjetas dedicadas a aplicaciones con Android tales como IOIO, Arduino USB Host shield, Arduino ADK. Este último el ADK es un protocolo diseñado por google para la conexión de accesorios de hardware pero requiere de la versión Android Gingerbread (2.3.4) o superior para funcionar.

(7)

LAS APLICACIONES ANDROID

COMPONENTES DE UNA APLICACIÓN ANDROID

Una aplicación Android puede estar formada básicamente por actividades, servicios, interfaces de usuario e intentos a continuación se definen las más importantes:

Activityes: Son componentes de una aplicación que corresponde a una pantalla una actividad es un subprograma, lo análogo a las ventanas de Windows

Views: Son los componentes de la interfaz de usuario que permiten interactuar con las aplicaciones

Layouts: Son la interfaz de usuario lo análogo a los formularios de Windows

Intents: Describen que quiere hacer una aplicación. Es un medio de comunicación con otras aplicaciones.

Services: Son código que se ejecuta en segundo plano y no tienen interfaz de usuario. CICLO DE VIDA DE LAS ACTIVITYES

Un Proceso es un programa en ejecución que es gestionado por el sistema operativo. Cada aplicación hecha en Basic4android se ejecuta en su propio proceso. Un proceso puede tener también más subprocesos que son útiles para tareas en segundo plano para entender mejor esto se explicara el ciclo de vida de las actividades.

Un proceso se inicia cuando el usuario inicia la aplicación, suponiendo que es la primera vez que la aplicación se ejecuta y termina cuando el sistema operativo lo decida, por ejemplo por falta de memoria esto se conoce como asesinar el proceso.

Una aplicación de Basic4android está hecha de una o más actividades. Cada actividad cuenta con sus propias variables que pueden ser globales o locales. Las variables locales se declaran en cada subrutina y las variables globales se pueden declarar en las variables de procesos (Process Globals) y las variables de actividad (Activity Globals)

(8)

A continuación se explicaran los principales eventos de una actividad:

Activity Create: Este sub se llama cuando se crea la actividad. La actividad se crea:  Cuando el usuario inicia por primera vez la aplicación

 ha cambiado la configuración del dispositivo (el usuario gira el dispositivo) y la actividad fue destruida

 Cuando la actividad en segundo plano y el sistema operativo decidió destruirla para liberar memoria.

El propósito principal de este evento o subrutina es cargar o crear la interfaz de usuario e inicializar objetos y variables (entre otros usos), se puede saber si es la primera vez que la aplicación se crea, esto a través del parámetro FirstTime.

Activity Resume: Se llama justo después de acabar el evento Activity_Create o reanudar una actividad en pausa (actividad que se trasladó a segundo plano y ahora se vuelve al primer plano). Tener en cuenta que cuando se abre una actividad diferente, la actividad actual primero es pausada y, a continuación, se creará la otra actividad si es necesario y regresa

Activity_Pause: Se llama cada vez que la actividad se mueve del primer plano al segundo plano. Esto puede suceder porque:

1. Se inició una actividad diferente. 2. Se presionó el botón de Home.

3. Un cambio de configuración levantada (se rota el dispositivo por ejemplo). 4. Se presionó el botón Back.

En los escenarios 1 y 2, se interrumpirá la actividad y por ahora se mantiene en memoria en espera para ser reutilizada posteriormente.

En el escenario 3 la actividad se interrumpirá, destruirá y creara (y reanudara) nuevamente. En el escenario 4 la actividad se pausara y destruirá. Pulsando el botón back es similar al cierre de la actividad. En este caso no se necesita guardar cualquier información específica

Existe un parámetro en Basic4Android llamado UserClosed que será cierto en este último escenario y falso en todos los demás. Se puede utilizar UserClosed para decidir qué datos guardar y también si se desea restablecer cualquiera de las variables de proceso relacionados con su estado inicial.

Cuando se inicie un nuevo proyecto en Basic4android aparecerá una ventana con una actividad y las partes mencionadas anteriormente Process_Globals, Globals, Activity_Create, Activity_Resume y Activity_Pause

(9)

Figura 1.- Vista general de una actividad en Basic4Android En Basic4Android una Activity tiene las siguientes propiedades:

Desde el menú del proyecto:

Full Screen establece si la actividad ocupa toda la pantalla (la barra de estado del sistema operativo se oculta).

Include Title establece si se muestra el título de la actividad Desde el Diseñador de interfaces:

Drawabble establece el tipo de fondo puede ser un color, un gradiente o un bitmap Title Color establece el color del titulo

(10)

LAS INTERFACES DE USUARIO

Los Layout (interfaces de usuario) en Android permiten interactuar con las aplicaciones mediante objetos conocidos como Views (vistas) como lo son etiquetas, botones, cajas de texto, etc. Estas interfaces de usuario se pueden crean desde código XML (en eclipse) requiere de mayor tiempo y conocimientos más profundos del tema. Basic4Android ofrece una herramienta llamada Designer para diseñar las interfaces de usuario de una manera rápida y sencilla, a continuación se describen las principales características de los Layout y los Views

1. Button

El Button (botón) es un View muy común y utilizado en las interfaces de usuario Principales eventos:

Clic cuando el usuario toca el Button Principales propiedades comunes: Enabled habilita o deshabilita el Button Text establece el texto del Button Visible esconde o muestra el Button Principales propiedades especiales:

Drawable establece el estilo grafico del Button (por default o configurable)

2. CheckBox

(11)

Principales eventos:

CheckedChange cuando el CheckBox cambia de estado Principales propiedades comunes:

Enabled habilita o deshabilita el CheckBox Text establece el texto del CheckBox Visible esconde o muestra el CheckBox Principales propiedades especiales:

Checked establece si estará marcado por default (se utiliza también para saber si esta seleccionado)

3. EditText

El EditText (Texto Editable) es un View utilizado como entrada de caracteres al hacer clic en el aparece el teclado de Android para introducir datos generalmente no se usan eventos.

Principales eventos:

TextChanged cuando el usuario toca el EditText EnterPressed cuando se presiona la tecla enter Principales propiedades comunes:

Enabled habilita o deshabilita el EditText Text establece el texto del EditText Visible esconde o muestra el EditText Principales propiedades especiales:

PassWord establece si se usa el modo contraseña SingleLine establece si se usa el modo de solo una línea

(12)

InputType elige el tipo de entrada (letras, números, etc.)

4. ImageView

El ImageView (Vista de imagen) es un View muy común y utilizado para desplegar imágenes también puede ser utilizado como botón.

Principales eventos:

Clic cuando el usuario toca el ImageView Principales propiedades comunes:

Enabled habilita o deshabilita el ImageView Visible esconde o muestra el ImageView Principales propiedades especiales:

ImageFile indica la imagen que contendrá el ImageView

Gravity establece la forma de contener la imagen (centro, estrecho, etc.)

5. Label

El Label (Etiqueta) es un View muy común y utilizado para desplegar texto pero al igual que el ImageView puede ser utilizado como botón.

Principales eventos:

(13)

Principales propiedades comunes: Enabled habilita o deshabilita el Label Visible esconde o muestra el Label Principales propiedades especiales:

Text Style configura el tipo de fuente, tamaño, color, etc. Drawable establece el estilo grafico del Label

6. ListView

El ListView (Vista de lista) es un View utilizado para presentar una lista de elementos seleccionables llamados ítems. Los elementos de la lista se construyen desde código

Principales eventos:

ItemClick cuando el usuario toca algún elemento del ListView Principales propiedades comunes:

Enabled habilita o deshabilita el ListView Visible esconde o muestra el ListView Principales propiedades especiales:

(14)

FastScroollEnabled Habilita o deshabilita la barra de desplazamiento rápido cuando se desliza el ListView

7. Panel

El Panel (Tablero) es un View utilizado para agrupar Views. Principales eventos:

Touch cuando el usuario toca el Panel (coordenadas) Principales propiedades comunes:

Enabled habilita o deshabilita el Panel Visible esconde o muestra el Panel Principales propiedades especiales:

Drawable establece el estilo grafico del Panel

8. ProgressBar

El ProgressBar (Barra de avance) es un View utilizado para mostrar el avance de alguna operación o alguna cantidad en forma de barra como por ejemplo en una descarga.

Principales eventos: No tiene eventos

(15)

Enabled habilita o deshabilita el ProgressBar Visible esconde o muestra el ProgressBar Principales propiedades especiales:

Indeterminate establece el estilo grafico del ProgressBar

Progress establece el avance del ProgressBar (accesible solo desde código)

9. RadioButton

El RadioButton (Radio-Botón) es un View utilizado para marcar o seleccionar opciones cuando hay varios RadioButton existe una agrupación si están dentro de un panel solo se puede seleccionar uno si existe otro fuera del panel también se puede seleccionar pero no se podrá seleccionar otro que este en el mismo grupo que este último. Por ejemplo es útil cuando selecciona un dispositivo bluetooth para emparejarse ya que solo se puede emparejar con uno a la vez.

Principales eventos:

CheckedChange cuando el RadioButton cambia de estado Principales propiedades comunes:

Enabled habilita o deshabilita el RadioButton Text establece el texto del RadioButton Visible esconde o muestra el RadioButton Principales propiedades especiales:

Checked establece si estará marcado por defualt (se utiliza también para saber si esta seleccionado)

(16)

El SeekBar (Barra de búsqueda) es un View deslizable para controlar numéricamente una acción, por ejemplo para cambiar el brillo de la pantalla o el volumen de audio. Es lo contrario al ProgressBar

Principales eventos:

ValueChanged cuando el SeekBar cambia de posición Principales propiedades comunes:

Enabled habilita o deshabilita el ProgressBar Visible esconde o muestra el ProgressBar Principales propiedades especiales:

MaxValue establece el valor máximo que puede tomar (tipo entero)

Value establece el avance del SeekBar (se usa también para saber la posición)

11. Spinner

El Spinner (Hilandero) es un View tipo lista conocido en el ambiente Visual Basic como ComboBox tiene un funcionamiento similar al ListView, pero a diferencia de este la lista de ítems se despliega hasta hacer tocar la flecha. Los elementos de la lista se construyen desde código

Principales eventos:

ItemClick cuando el usuario toca algún elemento del Spinner Principales propiedades comunes:

Enabled habilita o deshabilita el Spinner Visible esconde o muestra el Spinner Principales propiedades especiales:

(17)

12. TabHost

El TabHost (Huésped de pestañas) es un View utilizado para mostrar varias pestañas cada una con su propia interfaz de usuario. Es útil cuando la cantidad de información que se quiere mostrar no alcanza en la pantalla. Cada pestaña requiere de un Layout.

Principales eventos:

TabChanged cuando el usuario toca una pestaña diferente Principales propiedades comunes:

Enabled habilita o deshabilita el TabHost Visible esconde o muestra el TabHost Principales propiedades especiales: Solo son accesibles desde código

13. ToggleButton

El ToggleButton (botón conmutador) es un View similar al Button tradicional pero con la característica que cuando se toca hace un cambio de estado (como un CheckBox). Cuenta también con un gráfico para indicar su estado.

Principales eventos:

(18)

Principales propiedades comunes:

Enabled habilita o deshabilita el ToggleButton Visible esconde o muestra el ToggleButton Principales propiedades especiales:

Checked establece el estado por defualt (se utiliza también para saber el estado) Text On establece el texto a mostrar cuando el estado del ToggleButton es verdadero Text Off establece el texto a mostrar cuando el estado del ToggleButton es falso

14. WebView

El WebView (Vista Web) es un View usado para funciones de navegación como mostrar una página de internet, permite también el uso de JavaScript.

Principales eventos:

PageFinished este evento se ejecuta después de que la página es cargada por completo Override Url este evento se ejecuta antes de cargar cualquier Url

Principales propiedades comunes: Enabled habilita o deshabilita el WebView Visible esconde o muestra el WebView Principales propiedades especiales:

(19)

JavaScriptEnabled habilita o deshabilita el uso de JavaScript ZoomEnabled habilita o deshabilita el zoom en el WebView

Cuando el usuario ha terminado de diseñar su interfaz de usuario el resultado final que contiene todos los Views agregados al diseño y las configuraciones establecidas es llamado Layout. El diseño de un Layout puede realizarse desde la herramienta Designer para facilitar el proceso, a partir de este punto se cuenta con dos opciones: la primera es crear el Layout con el emulador y la segunda desde el dispositivo conectado a la PC por USB o en red.

A continuación se describen las partes más importantes en el sistema operativo con respecto a la pantalla de usuario:

(20)

LA PANTALLA PRINCIPAL

1. Status Bar (barra de estado) en esta área se despliegan los iconos indicadores de batería, red, hora, etc. Las notificaciones también aparecen en esta área.

2. Widgets son pequeñas aplicaciones en pantalla con una interfaz de usuario limitada y reducida.

3. Lanzador de aplicaciones al tocar el icono se mostraran todas las aplicaciones instaladas (este es un claro ejemplo de cambio de activity ya que se cambia de pantalla)

4. Dock en esta área se aloja el icono lanzador de aplicaciones y otros accesos directos. 5. Home esta es la pantalla principal

EL DISEÑADOR EN EL EMULADOR

Para un layout existen dos orientaciones de pantalla Portrait y Landscape presionando Ctrl + F11 cambiara la orientación del emulador para poder diseñar la interfaz de usuario.

Figura 2.- Orientación de pantalla Landscape (izquierda) y Portrait (Derecha)

Cuando el usuario ha terminado de diseñar su interfaz de usuario el siguiente paso es guardar el Layout con un nombre sin usar espacios ni caracteres especiales.

(21)

LOS INTENTS Y SERVICIES

Aun con todas las funciones básicas e interfaces de usuario no es suficiente para desarrollar potentes aplicaciones como sucede en el caso de la programación de microcontroladores o en los programas de computadora ya que en estos es necesario el uso de interrupciones para hacer funciones multitarea y aprovechar al máximo los recursos. Android proporciona ciertas funciones que complementan las aplicaciones y representan la mayor parte de la potencialidad del sistema operativo los Intents y los Servicies.

Los Intent son un medio para comunicar aplicaciones entre sí de esta forma intercambian información en un formato único con ciertos parámetros. Por ejemplo cuando se toca un vínculo que está en una aplicación, emerge una ventana donde presenta las aplicaciones que pueden mostrar la página (navegadores como opera mini o la aplicación de internet), en ese momento se ejecuta un Intent que pasara como parámetros a la aplicación seleccionada la Url de la página a visitar.

Los Servicies se definieron anteriormente como código que se ejecuta en segundo plano y no tiene interfaz de usuario. Anteriormente se explicó el ciclo de vida de las actividades y estas se destruyen al presionar la tecla back, Los servicios a diferencia pueden estarse ejecutando sin necesidad de estar en alguna aplicación y se puede estar haciendo otras tareas. Por ejemplo el usuario puede estar navegando, jugando o escribiendo un mensaje de texto, incluso cuando el teléfono está en reposo. En algún momento el sistema avisara al usuario que ha recibido un nuevo correo electrónico, o tiene una notificación de Facebook, Esto es posible gracias a los servicios ya q no es necesario estar en la aplicación de Facebook para recibir una notificación, Sin embargo al tocar la notificación en la barra de estado se lanzara una aplicación. Las notificaciones de Android son el medio en que los servicios interactúan con el usuario y con las aplicaciones.

CONFIGURACION DE LAS APLICACIONES

Las aplicaciones en Android requieren de configuraciones especiales para ser distribuidas, en estas configuraciones se debe especificar la versión de Android a utilizar, nombre del paquete, orientación de pantalla soportada, permisos, firmas, versión, icono, etc. Basic4android ha simplificado esta tarea ya que por ejemplo al incluir una librería en nuestro proyecto automáticamente los permisos se agregan al archivo de configuración conocido como Android Manifest. Estas se pueden configurar desde el menú Project a continuación se explicara las configuraciones necesarias para las aplicaciones desarrolladas en Basic4Android.

(22)

Full Screen

Marcando esta opción la barra de estado permanecerá oculta y la aplicación ocupara toda la pantalla

Include Title

Marcando esta opción se muestra el título de la aplicación Choose Icon

Por medio de esta opción se selecciona el icono usado por la aplicación puede ser un archivo de imagen BMP, JPG, GIF, PNG.

Package Name

Es un nombre en formato algo.algo por ejemplo miaplicacion.android, es un identificador único para la aplicación, no puede contener espacios ni caracteres especiales.

(23)

Application Label

Es el título que parece debajo del icono de la aplicación se permite el uso de espacios Versión

Se requiere un número en entero para indicar la versión de la aplicación y una cadena de texto por ejemplo:

Version Code: 1, Version String: Beta Can Install To External Storage

Seleccionando esta opción la aplicación se instalara en el almacenamiento externo (memoria SD) útil en dispositivos con poca memoria interna. Es importante no usar esta opción si la aplicación proporciona Widgets y utiliza Servicies.

(24)

Orientations Supported

Selecciona la orientación de la aplicación puede ser Portrait (Retrato), Landscape (Paisaje) y Both (Ambos).

Si se elige Portrait permanecerá así a pesar de rotar el dispositivo. Si se elige Landscape permanecerá así a pesar de rotar el dispositivo. Si se elige Both la aplicación Rotara si el dispositivo rota y si tiene activada la rotación automática.

CONCEPTOS DE ELECTRONICA

MICROCONTROLADORES

Un Microcontrolador es un circuito integrado (Chip) programable, en otras palabras es una pequeña computadora que necesita de hardware externo de entrada y salida. Las entradas pueden ser: sensores, interruptores, teclados, etc. Las salidas pueden ser: LED’s, Pantallas, Relevadores, Zumbadores, etc. Por medio de un software se diseña el programa para el Microcontrolador en algún lenguaje como Basic, C, ensamblador, etc. En la actualidad los microcontroladores son la herramienta fundamental para el desarrollo científico y tecnológico, saber sobre estos dispositivos electrónicos es muy importante ya que se encuentran en la mayoría de las cosas desde un juguete hasta un transbordador espacial.

Actualmente existen herramientas generales de hardware y software que facilitan el diseño con microcontroladores, reducen el tiempo, la complejidad, el costo, etc. Entre ellos destacan software de alto nivel como CCS, PIC BASIC, PROTON, MIKROC, etc. Pero existen además herramientas específicas que facilitan aún más el proceso de desarrollo tal es el caso de plataformas como Arduino, Pingüino, Basic Stamp, Picaxe, etc.

(25)

MICROCONTROLADORES PIC

Los PIC son una familia de microcontroladores fabricados por Microchip Technology Inc. Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo llamado programador. Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que incluye un simulador software y un ensamblador. Otras empresas desarrollan compiladores C y BASIC.

ARDUINO

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos.

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación 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 ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).

Las placas pueden ser hechas a mano o compradas montadas de fábrica; el software puede ser descargado de forma gratuita

(26)

PINGÜINO

Pingüino es una plataforma de desarrollo similar a Arduino, pero basada en microcontrladores PIC. Es compatible con microcontroladores de 8 y de 32 bits, todos con USB integrado (sin chip FTDI). Pingüino viene con un cargador de arranque USB. Este pequeño programa que se ejecuta dentro del microcontrolador es responsable de transferir la aplicación desde la PC a la memoria del microcontrolador.

Las tarjetas Pingüino se pueden utilizar de diferentes maneras dependiendo de las habilidades del usuario:

Con el IDE Pingüino y el Lenguaje Pingüino (basado en C y casi compatible con el lenguaje Arduino) con © Microchip MPLAB X IDE ©. Pingüino es un entorno de desarrollo integrado (IDE), que da a todos la capacidad de escribir, compilar y cargar programas en una tarjeta Pingüino.

El lenguaje Pingüino es casi compatible con el lenguaje Arduino, Bibliotecas y Shields. PICAXE

El sistema PICAXE es un sistema de programación de microcontroladores poderoso, pero muy económico, diseñado para el uso educativo y aficionado de los microcontroladores

Una de las características únicas del sistema PICAXE es que los programas pueden descargarse directamente al microcontrolador mediante un cable conectado al mismo, por lo tanto no se requiere el uso de equipos programadores/eliminadores de alto costo. Además, el software es fácil de utilizar y gratis; por lo tanto los estudiantes pueden trabajar sus proyectos utilizando el sistema de programación completo en casa.

Los programas pueden crearse ya sea gráficamente utilizando organigramas, o programando utilizando un lenguaje BASIC sencillo incluido en el software.

(27)

PERIFERICOS

En informática, se denomina periféricos a los aparatos y/o dispositivos auxiliares e independientes conectados al CPU de una computadora.

Se consideran periféricos tanto a las unidades o dispositivos a través de los cuales la computadora se comunica con el mundo exterior y que permitan realizar operaciones de entrada/salida. En los microcontroladores los periféricos realizan la misma tarea, pero están implementados dentro del mismo chip.

Los periféricos pueden clasificarse en 3 categorías principales:  Periféricos de entrada: captan información del mundo exterior.

Periféricos de salida: son dispositivos que muestran o proyectan información hacia el mundo exterior

Periféricos de entrada/salida (E/S): sirven básicamente para la comunicación con el medio externo.

Entre los periféricos más comunes implementados en los microcontroladores se pueden encontrar:

ADC’s: Convertidores Analógico a Digital, generalmente usado para obtener la información de sensores.

PWM’s: Moduladores de ancho de pulso, generalmente usado para controlar la intensidad y velocidad de ciertas cargas como focos y motores.

DAC’s: Convertidores de Digital a Analógico, es un dispositivo para convertir datos digitales en señales de corriente o de tensión analógica.

UART: Transmisor-Receptor Asíncrono Universal, es un medio para la comunicación con otros microcontroladores o dispositivos.

SENSORES Y ACTUADORES

Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas y transformarlas en magnitudes eléctricas, Los sensores trasladan la información desde el mundo real al mundo abstracto de los microcontroladores. Existen diferentes tipos de sensores pueden ser mecánicos, ópticos, sónicos, magnéticos, piezoeléctricos, etc. Estos dispositivos proporcionan información del mundo real como la temperatura, la presión, la iluminación, aceleración, fuerza, etc.

(28)

Un actuador es un dispositivo capaz de convertir energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre un proceso automatizado, son muy utilizados en los aparatos mecatrónicos, como por ejemplo, en los robots. Los motorreductores, servomotores, solenoides, etc. son los más utilizados en robótica.

BLUETOOTH

Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son:

 Facilitar las comunicaciones entre equipos móviles y fijos.  Eliminar cables y conectores entre éstos.

 Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.

Los dispositivos Bluetooth se clasifican como "Clase 1", "Clase 2" o "Clase 3" en referencia a su potencia de transmisión, siendo totalmente compatibles los dispositivos de una clase con los de las otras.

Clase Potencia máxima permitida (mW)

Potencia máxima permitida (dBm) Rango (aproximado) Clase 1 100 mW 20 dBm ~100 metros Clase 2 2.5 mW 4 dBm ~10 metros Clase 3 1 mW 0 dBm ~1 metro

(29)

Los dispositivos Bluetooth también pueden clasificarse según su ancho de banda:

Versión Ancho de banda

Versión 1.2 1 Mbit/s

Versión 2.0 + EDR 3 Mbit/s

Versión 3.0 + HS 24 Mbit/s

Versión 4.0 24 Mbit/s

Para utilizar Bluetooth, un dispositivo debe implementar alguno de los perfiles Bluetooth. Estos definen el uso del canal Bluetooth. Así como canalizar al dispositivo que se quiere vincular.

Un perfil Bluetooth es la especificación de una interfaz de alto nivel para su uso entre dispositivos Bluetooth. Para utilizar una cierta tecnología Bluetooth un dispositivo deberá soportar ciertos perfiles.

Algunos perfiles de Bluetooth son:

Advanced Audio Distribution Profile (A2DP)

Distribución de audio avanzada. Define cómo se puede propagar un stream de audio entre dispositivos a través de una conexión Bluetooth.

File Transfer Profile (FTP)

Transferencia de ficheros. Da acceso remoto a los sistemas de ficheros, permitiendo listados de directorios y cambios a éstos, obtención, envío y borrado de ficheros

Human Interface Device Profile (HID)

(30)

Serial Port Profile (SPP)

Puerto serie. Basado en la especificación 07.10 de ETSI por medio del protocolo RFCOMM. Emula una línea serie y provee una interfaz de reemplazo de comunicaciones basadas en RS-232, con las señales de control típicas

USB OTG

USB On-The-Go, es una extensión de la norma USB 2.0 que permite a los dispositivos USB tener más flexibilidad en la gestión de la conexión USB. Permite que dispositivos como un reproductor de audio digital o teléfono móvil actúen como host, por lo que se les puede conectar un pendrive, un ratón, un teclado, un disco duro, etc....

(31)

1.- Descargar e instalar JAVA JDK

Link de descarga:

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html El instalador también se encuentra en la carpeta TOOLS del CD

Aceptar los términos y después dar clic al archivo marcado en rojo para comenzar la descarga

(32)

Buscar el archivo descargado y ejecutar como administrador

Figura 2.- Ejecutar como administrador Hacer clic en siguiente

(33)

Hacer clic en siguiente

Figura 4.- Opciones de instalación Esperar que termine la instalación de JAVA JDK 6

(34)

Hacer clic en finalizar

Figura 3.- Instalación completa Continuar con el paso 2

(35)

2

.- Descargar, Instalar y Configurar ANDROID SDK Link de descarga

http://developer.android.com/sdk/index.html

El instalador también se encuentra en la carpeta TOOLS del CD Hacer clic en el botón marcado en rojo para comenzar la descarga

(36)

Buscar el archivo descargado y ejecutar como administrador

Figura 7.- Ejecutar como administrador Hacer clic en siguiente

(37)

Hacer clic en siguiente

Figura 8.- JAVA JDK encontrada Hacer clic en siguiente

(38)

Hacer clic en siguiente

Figura 10.- Comienzo de la instalación Hacer clic en siguiente

(39)

Hacer clic en finalizar y esperar que se ejecute el SDK MANAGER

(40)

Seleccionar los componentes Android SDK Platform-tools, SDK Platform y Google USB Driver marcados en rojo y hacer clic en instalar.

Figura 13.- Selección de componentes Marcar aceptar todos y Hacer clic en instalar

(41)

Ir a la ruta de instalación de ANDROID SDK y encontrar la carpeta Platform-tools

Figura 15.- Carpeta Platform-tools

Copiar la carpeta Platform-tools y pegar en la carpeta Platforms->Android-8

(42)

Renombrar la carpeta pegada quedando como tools

Figura 17.- Carpeta Platform-tools renombrada

NOTA: para la instalación simple copiar en archivos de programa la carpeta ANDROID contenida en la carpeta TOOLS del CD

(43)

3

.- Descargar, Instalar y Configurar Basic4Android Link de descarga

http://www.basic4ppc.com/android/downloads.html

Hacer clic en el enlace marcado en rojo para comenzar la descarga

(44)

Buscar el archivo descargado y ejecutar como administrador

Figura 19.- Ejecutar como administrador Hacer clic en siguiente

(45)

Marcar aceptar los términos y hacer clic en siguiente

Figura 21.- Términos del software Hacer clic en siguiente

(46)

Marcar crear acceso directo y Hacer clic en siguiente

Figura 23.- Creación de acceso directo Hacer clic en instalar

(47)

Marcar ejecutar Basic4Android y hacer clic en finalizar.

Figura 25.- Instalación finalizada

Nota: Es necesario activar la versión completa para ello copiar en la raíz de la carpeta donde se instaló Basic4Android el archivo b4a-license que está en la carpeta TOOLS-> Basic4android 1.5 del CD, después repetir el proceso de instalación y ejecutar Basic4android e introducir el correo contenido en el archivo clave que está en la carpeta TOOLS-> Basic4android 1.5 del CD, copiar en la raíz de la carpeta donde se instaló Basic4Android las carpetas Libraries y Bibliotecas adicionales que están en la carpeta TOOLS-> Basic4android 1.5 del CD. Al copiar seleccionar reemplazar archivos si ya existen.

(48)

Ejecutar Basic4android y hacer clic en el menú Tools->Configure Paths.

Figura 26.- Configuración de directorios

Hacer clic en el primer botón Browse y buscar JAVAC.EXE en el directorio donde se instaló, Después hacer clic en el segundo botón Browse y buscar en la carpeta Android-8 el archivo ANDROID.JAR y por ultimo hacer clic en el tercer botón Browse y buscar la carpeta Bibliotecas adicionales

(49)

Hacer clic en Tools->Run AVD manager y esperar que se ejecute el SDK MANAGER

Figura 28.- Ejecución de SDK MANAGER En la barra de menú de SDK MANAGER hacer clic en Tool->Manage AVDs.

(50)

Hacer clic en nuevo

Figura 30.- Crear un AVD Rellenar los siguientes campos y después dar clic en siguiente: Name: MY_ANDROID_DEVICE

Target: Android 2.2 - API Level 8 Built-in: WQVGA400

(51)

Hacer clic en OK

Figura 32.- Resultado del AVD creado. Hacer clic en Start y después en Launch

(52)

Esperar a que cargue el AVD

Figura 34.- AVD Iniciando AVD listo para usar

(53)

Basic4android es un entorno de desarrollo sencillo y potente orientado a dispositivos Android, es similar al lenguaje de Visual Basic con soporte adicional para los objetos. Incluye un potente diseñador de interfaces de usuario con soporte integrado para múltiples pantallas y orientaciones. Es posible desarrollar y depurar con el emulador de Android o con un dispositivo real mediante USB conectado o a través de la red local.Basic4android tiene un amplio conjunto de librerías que facilitan el desarrollo de aplicaciones avanzadas. Esto incluye: SQL, GPS, Bluetooth, cámara, IOIO, USB, servicios, JSON, animaciones, Wi-Fi, TTS, reconocimiento de voz, gráficos, OpenGL, y más.

El Entorno de Desarrollo Integrado (IDE)

(54)

1.- Menú y Toolbar

(55)

1.2.- Menú Archivo

New Genera un nuevo proyecto. Open Source Carga un proyecto.

Save Guarda el proyecto actual.

Export as Zip Exporta todo el proyecto en un archivo Zip. Page Setup Configuración de las páginas a imprimir Print Preview Muestra una vista previa de impresión Print Imprime el código.

(56)

Cut Corta el texto seleccionado y lo copia al portapapeles. Cut Line Corta la línea en la posición del cursor.

Copy Copia el texto seleccionado al portapapeles. Paste Pega el texto en el portapapeles en la posición del cursor. Undo Deshace la última operación.

Redo Rehace la operación anterior. Find Activa la función buscar y reemplazar.

Block Comment Establece las líneas seleccionadas como comentarios. Block Uncomment Descomenta las líneas seleccionadas.

Remove all Bookmarks Elimina todos los marcadores.

Remove all Breakpoints Elimina todos los puntos de interrupción Outlining Contraer código

1.4.- Menu Proyecto

Add New Module Agrega un nuevo módulo Add Existing Module Añadir un módulo existente Change Module Name Cambia el nombre del módulo Remove Module Quita el módulo actual Hide Module Oculta el módulo actual

Activity Properties Propiedades de la actividad, explicado abajo Choose Icon Elige un icono para la aplicación.

Package Name Cambia el nombre del paquete. Application Label Cambia el nombre de la aplicación.

(57)

Application Versión Cambia la versión de la aplicación.

Can internal storage La aplicación se instala en almacenamiento externo Orientations Supported Orientaciones compatibles, explicado abajo.

Compile & Run Diferentes modos de compilación. Include Debug Information Incluir Información de depuración Attach to Debbugger Conectar al depurador

Agregar un nuevo modulo

Módulo de actividad Módulo de código Módulo de servicio Propiedades de la actividad Pantalla completa Incluir titulo Orientaciones compatibles Ambos modos Solo retrato Solo paisaje 1.5.- Menu Herramientas

(58)

IDE Options Opciones de IDE

B4A Bridge Herramienta de depuración B4A Clean Files Folder Limpiar archivos sin utilizar Clean Project Limpiar proyecto

Run AVD Manager Ejecutar el administrador de AVD Configure Paths Configurar rutas

Restart ADB Server Reiniciar el servidor ADB Private Sign Key Clave privada para firmar apps

2.- Pestañas

Hay 4 pestañas en la parte inferior derecha del IDE que mostrar la siguiente información.

2.1.- Pestaña de módulos y subrutinas

Todos los módulos del proyecto y todas las subrutinas del módulo seleccionado aparecen en dos listas en el derecho del IDE.

Lista de módulos

Al hacer clic en un módulo muestra su código en el área de código. Lista de subrutinas del módulo seleccionado

(59)

2.2.- Archivos

Esta ventana muestra todos los archivos que se han agregado al proyecto. Estos archivos se guardan en la carpeta Files.DirAssets. Estos pueden ser cualquier tipo de archivos: diseños, imágenes, textos, etc.

Hacer clic en el botón Add Files para agregar archivos al proyecto. Se accede a los archivos de esa carpeta con File.DirAssets

Al hacer clic en el botón Remove Selected elimina los archivos seleccionados de la lista de la carpeta de archivos del proyecto.

Asegurarse de tener una copia de los archivos a quitar, porque no se transfieren a la papelera de reciclaje, son definitivamente perdidos si no

se tiene una copia. 2.3.- Librerías

Lista de las bibliotecas disponibles que se pueden utilizar en el proyecto.

Comprobar las bibliotecas que se necesitan para cada proyecto. Asegurarse de que se cuenta con la última versión de las bibliotecas.

(60)

La documentación de las bibliotecas puede encontrarse aquí: http://www.basic4ppc.com/android/documentation.html http://www.basic4ppc.com/android/wiki/index.php/Libraries

(61)

3.- El diseñador

El diseñador permite generar diseños con el emulador o un dispositivo real.

(62)

3.1.1- El menú archivo

New Se abre un nuevo diseño de vacío. Open Abre un diseño existente Save Guarda el diseño actual.

Save As Guarda el diseño actual con un nuevo nombre.

3.1.2- El menú agregar View

Este menú le permite seleccionar el View que desea agregar en el diseño actual en el dispositivo o el emulador.

Button agrega un botón

CheckBox agrega una casilla de verificación EditText agrega una caja de texto

ImageView agrega una caja de imagen Label agrega una etiqueta ListView agrega un control tipo lista Panel agrega un contenedor

ProgressBar agrega una barra de progreso RadioButton agrega un radio botón ScrollView agrega un vista scroll SeekBar agrega una barra deslizable Spinner agrega un combo

TabHost agrega un tabulador ToggleButton agrega un botón toggle WebView agrega una vista Web

(63)

3.1.3- El menú herramientas

Generate Members Generar miembros

Bring to Front Trae el View seleccionado al frente Send To Back Trae el View seleccionado al frente Duplicate Selected Views Duplica el View seleccionado Remove Selected Views Elimina el View seleccionado Change Grid Cambia el tamaño de la cuadrícula Connect Conecta al dispositivo o el emulador Disconnect Desconecta del dispositivo o emulador

3.2- Lista de propiedades

Una lista de las propiedades del View seleccionado organizados en grupos. Todas las propiedades pueden modificarse directamente en la lista.

Todas las propiedades en el grupo principal y algunos de las propiedades de los otros grupos son comunes a todos los tipos de Views.

(64)

3.2- Variantes de diseño

Las de diseño diferente pueden gestionarse en un mismo archivo de diseño para tener mayor compatibilidad con distintos tamaños de pantalla y configuraciones.

En otro capítulo se explican los conceptos de pantalla tales como los pixeles, la resolución, densidad, etc. y la metodología para hacer aplicaciones con distintos tamaños de pantalla

(65)

Como primer ejemplo se desarrollara la aplicación más sencilla que se puede hacer para ilustrar el uso de Basic4android y el proceso de construcción de la aplicación, se utilizara el emulador con el AVD creado en la sección anterior y como segundo ejemplo se construirá una aplicación básica pero con interfaz de usuario para utilizar el designer, se recomienda crear una carpeta para las aplicaciones que se desarrollaran a lo largo de la guía.

Las aplicaciones listas para instalar y probar se encuentran en la carpeta APK del CD.

El código fuente y el proyecto de las aplicaciones se encuentran en la carpeta APLICACIONES ANDROID del CD

Antes de instalar cualquier aplicación externa a la tienda en línea de Google es necesario activar la opción para instalar software de terceros en el dispositivo, marcando la opción del menú Ajustes->Aplicaciones-> Orígenes desconocidos

HOLA MUNDO

Descripción de la aplicación: Muestra un cuadro de texto al iniciar la aplicación Interfaz de usuario: Sin interfaz de usuario

Hardware: Dispositivo Android

1. Ejecutar Basic4Android

2. Guardar el proyecto con el nombre HOLA MUNDO desde el menú File->Save

3. Como el objetivo es mostrar un mensaje al iniciar la aplicación se usara el evento Activity_Create para dar la instrucción. Existen varios tipos de mensajes en Android el que se usara en este ejemplo se conoce como MSGBOX (cuadro de mensaje) y necesita dos parámetros uno es el contenido del mensaje y el otro el título. El comando deberá quedar como se muestra a continuación:

(66)

Msgbox

("contenido","titulo")

El evento Activity_Create quedara de la siguiente manera (los textos en color verde son comentarios):

4. El siguiente paso es configurar el proyecto a través del menú Project con las siguientes configuraciones:

Include Debug Information: Desmarcado Attach To Debugger: Desmarcado

Todo esto con el fin de eliminar la depuración desde Basic4Android y ejecutar normalmente la aplicación. Para marcar o desmarcar basta con hacer clic en la opción. Por el momento las demás opciones se quedan con la configuración por default.

5. Dar clic en la barra de herramientas al icono RUN

Aparecerá una ventana pidiendo nombre del paquete, esto puede hacerse también desde el menú Project. El nombre del paquete deberá quedar con el formato algo.algo en este ejemplo quedara como ejercicio1.android

En la siguiente ventana se debe introducir el Label de la aplicación también se puede hacer desde Project. El Label de la aplicación es aquel que aparece junto al icono en esta ocasión será Ejercicio 1

(67)

6. Esperar a que termine el proceso de compilación y que la aplicación inicie en el emulador

El resultado será el siguiente

Reto: Explorar el Ejercicio 2 llamado TOASTMESSAGE que se encuentra en la carpeta APLICACIONES ANDROID del CD

(68)

LOAD LAYOUT

Descripción de la aplicación: Carga un Layout previamente diseñado Interfaz de usuario: Todos los Views

Hardware: Dispositivo Android

1. Ejecutar Basic4Android

2. Guardar el proyecto con el nombre LOAD LAYOUT desde el menú File->Save 3. Dar clic en el menú Designer

4. Conectarse al Emulador haciendo clic en el menú del Desginer Tools->Connect

El estado de la conexión se muestra debajo del menú

Es necesario que el emulador esté en funcionamiento para que pueda conectarse con el Designer cuando la conexión se haya establecido el emulador quedara como se muestra en la siguiente imagen

(69)

5. Diseñar el Layout: Ponerle el título Ejercicio 4 a la actividad, a través del menú propiedades del Designer, la parte superior del menú indica el objeto que se está editando y debajo aparecen las propiedades. Se puede explorar otras opciones de la actividad como el fondo con la propiedad Drawable y por ejemplo poner de fondo un gradiente.

Agregar un Button al diseño haciendo clic en el menú del Desginer Add View->Button el Button aparecerá en el emulador

Cuando los cuadros rojos aparecen alrededor de un View significa que esta seleccionado y se puede arrastrar y cambiar su tamaño. Continuar con el diseño agregando los demás Views restantes y acomodarlos para que todos sean visibles en la pantalla.

6. Guardar el Layout con el nombre mi_layout

7. Agregar al código la instrucción para cargar el Layout. La manera de cargar el diseño es por medio del comando Actitvity.LoadLayout y solo se necesita como parámetro el nombre del Layout. El momento para cargar el Layout es cuando la aplicación inicia esto es en el evento Activity_Create. El comando deberá quedar como se muestra a continuación:

(70)

Activity.Loadlayout("nombre_del_layout")

El evento Activity_Create quedara de la siguiente manera (los textos en color verde son comentarios):

Al escribir las instrucciones como Activity justo después de poner el punto el autocompletado permite ver las funciones, parámetros, propiedades, etc.

8. Configurar la aplicación repitiendo el paso 4 del primer ejemplo con los siguientes parámetros:

Include Debug Information: Desmarcar (en caso de estarlo) Attach To Debugger: Desmarcar (en caso de estarlo) Can Install To External Storage: Marcar

La única diferencia con el ejemplo anterior es que la aplicación se podrá instalar en la memoria SD

9. Repetir los pasos 5 y 6 del ejemplo anterior e ingresar lo siguiente: Package Name: ejercicio4.android

Label: Ejercicio 4

(71)

La aplicación no hace mucho ya que el objetivo fue diseñar y cargar un Layout pero se puede interactuar con los Views.

Otra forma de diseñar y ejecutar aplicaciones es desde el dispositivo real para ello es necesario activar la depuración en el dispositivo y tener instalados los drivers. El primer paso es instalar el software proporcionado en el CD de su dispositivo Android o bien descargar el software desde la página del fabricante, con esto se instalaran los drivers, Después en el menú del dispositivo marcar la opción de depuración a través de Ajustes->Aplicaciones->Desarrollo->Depuración USB. Luego conectar el dispositivo y esperar a que esté listo para usar. Al momento de tratar de instalarse la aplicación o de conectar con el Designer se hará con el emulador o en el dispositivo dependiendo de cuál esté conectado en caso de estar presentes los dos aparecerá una ventana para seleccionar con cual trabajar.

(72)

ACTIVITY MENU

Descripción de la aplicación: Muestra un mensaje según la opción seleccionada Interfaz de usuario: Menú ítem (solo disponible desde código)

Hardware: Dispositivo Android

A partir de este punto se omitirán los pasos básicos tales como ejecutar el IDE, guardar el proyecto, etc. Se usara siempre la opción de instalar la aplicación en el almacenamiento externo, también se omitirán los comentarios de código en las imágenes para tener mayor espacio ya que se proporciona todo el código fuente con comentarios. Todo lo anterior con el fin de enfocarse en los nuevos conceptos.

Este ejemplo utiliza un tipo de control que solo se puede crear desde código conocido como menú ítem y un tipo de mensaje utilizado en el ejercicio 2 a modo de reto, llamado Toastmessage, el objetivo es entender el flujo del programa.

Nombre del Proyecto: ACTIVITY MENU Package Name: ejercicio3.android Application Label: Ejercicio 3

Los Ítems de menú aparecen cuando el usuario presiona la tecla menú del dispositivo. Para crear un ítem se utiliza el comando Activity.AddMenuItem que necesita dos parámetros uno es el texto del ítem y el otro es el evento o la subrutina asociada a el boton, recordar que los botones tiene un evento principal que es el clic. La sintaxis del comando es la siguiente:

Activity.AddMenuItem("titulo","evento")

Es un comando de inicialización o construcción por lo tanto debe declararse en el evento Activity_Create

(73)

Se ha construido dos ítems uno con el título opción 1 y el otro con el titulo opción 2. El parámetro más importante es el evento puede ser cualquier texto pero se debe usar una metodología para no equivocarse al momento de tocar el ítem opción 1 el flujo del programa buscara la subrutina evento_opcion_1, pasara lo mismo con el Ítem opción 2. Por lo tanto además de definir un evento habrá que construir la subrutina que pueden agregarse al final del código como se muestra a continuación:

Cada subrutina comienza por Sub seguido del nombre del evento que siempre debe ser el mismo que se declara como cuando construye un ítem seguido de un guion y el evento fundamental. Por ejemplo se definió evento_opcion_1 y el evento fundamental es el clic en el caso del Ítem opción 1, Por lo tanto queda como evento_opcion_1_clic. Cada subrutina termina con End Sub y es en este bloque donde se pondrán todas las acciones a realizar al tocar el Ítem. En este caso para cada Ítem aparecerá un Mensaje tipo Toast al tocarlo

Al correr la aplicación y presionar el botón menú del dispositivo aparecerán los ítems y al tocar un ítem aparecerá el mensaje Toast

(74)

Un mensaje Toast es aquel que se desvanece después de un tiempo Reto: Aumentar los ítems y los mensajes a 4

BUTTON

Descripción de la aplicación: Muestra un mensaje al tocar el botón Interfaz de usuario: 1 Button

Hardware: Dispositivo Android

En este ejemplo se hace uso del primer View para interactuar con la aplicación. Al tocar el botón se mostrara un cuadro de mensaje (MSGBOX). Diseñar el Layout agregando un Button y guardarlo con el nombre layout_ejercicio_5. El propósito de este ejemplo es vincular los Views con el código Nombre del Proyecto: BUTTON

Package Name: ejercicio5.android Application Label: Ejercicio 5

El primer paso para vincular el Boton con el código es declararlo, pero al ser un View esto se puede hacer desde el designer por medio del menú Tools->Generate Members aparecerá una ventana en la que se muestran los Views utilizados en el diseño y también la actividad

(75)

Se deben marcar los Views y eventos que se desean vincular al diseño en este caso se marcara el Button1 y su evento clic y después dar clic al botón Generate members.

Automáticamente el objeto se declara en Sub Globals

Y también la subrutina correspondiente al evento del objeto, el comando Msgbox es agregado por el usuario

(76)

Reto: Usar el Button1 con otro evento

LABEL

Descripción de la aplicación: Cambia el Texto de un Label al tocar un Button Interfaz de usuario: 1 Button, 1 Label

Hardware: Dispositivo Android

A partir de este punto se omitirá también el proceso de diseño del Layout, generar los miembros y cargar el Layout, en la parte superior de cada ejemplo se especifica los Views necesarios para la interfaz de usuario, se proporciona además los Layout de cada ejercicio están en la carpeta APLICACIONES ANDROID->FILES del CD, también se especificara las propiedades y eventos necesario para cada View.

En este ejemplo se hace de un View visto anteriormente y un view de texto llamado Label. Al tocar el boton el texto del Label cambiara.

Nombre del Proyecto: LABEL Package Name: ejercicio6.android Application Label: Ejercicio 6

(77)

El código necesario para cambiar el texto del Label es a través de la propiedad Text y su sintaxis es la siguiente:

Label1.Text="Cualquier_Texto"

El evento Click del Button1 deberá quedar de la siguiente manera

El resultado de la aplicación al tocar el Button1 será el siguiente

(78)

SEEKBAR

Descripción de la aplicación: Muestra la posición de un Seekbar en un Label Interfaz de usuario: 1 Seekbar, 1 Label

Hardware: Dispositivo Android Nombre del Proyecto: SEEKBAR Package Name: ejercicio7.android Application Label: Ejercicio 7

El Layout deberá quedar como se muestra a continuación:

El Seekbar es un tipo de View numérico, dependiendo la posición en que se encuentre será su valor, este valor se puede leer con la propiedad Value. El evento será ValueChanged que es cuando cambia su posición. Los valores que toma son enteros y por medio de la propiedad Max se puede configurar el máximo valor que puede tomar. El código necesario para leer la posición es el siguiente:

Variable=SeekBar1.Value

Donde Variable es una variable declarada necesaria para guardar el valor, pero el lenguaje Basic permite asignar directamente un valor entero a un Label. El código del evento del Seekbar deberá quedar de la siguiente forma:

(79)

El resultado de la aplicación al deslizar el Seekbar será el siguiente

Reto: Avisar al usuario cuando se ha llegado al mínimo y al máximo valor

PROGRESSBAR

Descripción de la aplicación: Muestra la posición de un Seekbar en un Label y en un ProgressBar Interfaz de usuario: 1 Seekbar, 1 Label, 1 ProgressBar

Hardware: Dispositivo Android Nombre del Proyecto: ProgressBar Package Name: ejercicio8.android Application Label: Ejercicio 8

(80)

El ProgressBar tiene el funcionamiento contrario al SeekBar se puede configurar la posición o progreso a través de la propiedad Progress, siendo 100 el valor máximo que puede tomar, y además no tiene eventos. El código necesario para escribir la posición es el siguiente:

ProgressBar1.Progress=algún valor entero

Donde algún valor entero puede ser una constante o una variable por ejemplo al leer la posición de un Seekbar se obtiene un entero por lo cual se puede asignar directamente. El código del evento del Seekbar deberá quedar de la siguiente forma:

El resultado de la aplicación al deslizar el Seekbar será el siguiente

Reto: Ajustar lo necesario para aumentar el rango a 1024

RADIOBUTTON

Descripción de la aplicación: Cambia el color del texto de un Label según la opción seleccionada Interfaz de usuario: 3 RadioButton, 1 Label

(81)

Nombre del Proyecto: RADIOBUTTON Package Name: ejercicio9.android Application Label: Ejercicio 9

El Layout deberá quedar como se muestra a continuación:

El RadioButton es un control de selección y su estado puede saberse a través de la propiedad Checked, siendo True o False los dos valores que puede tomar, el evento utilizado es el CheckedChange que es cuando cambia de estado, cuando están agrupados solo se puede seleccionar un RadioButton. El código necesario para leer su estado es el siguiente:

Variable=RadioButton1.Checked

Donde Variable es de tipo booleano, sin embargo la manera general de usar estos controles es a través de bloques IF THEN.

Un color se puede establecer de una manera fácil por medio de la función Colors, el autocompletado mostrara las diferentes opciones disponibles. Para este ejemplo se utilizan los colores rojo, verde y azul

Cada RadioButton establece un color para el texto del Label por lo tanto se pondrá una instrucción en cada evento correspondiente, el código deberá quedar como se muestra a continuación.

(82)

El resultado de la aplicación al seleccionar cada RadioButton será el siguiente:

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

De acuerdo con Harold Bloom en The Anxiety of Influence (1973), el Libro de buen amor reescribe (y modifica) el Pamphihis, pero el Pamphilus era también una reescritura y

[r]

SVP, EXECUTIVE CREATIVE DIRECTOR JACK MORTON

Social Media, Email Marketing, Workflows, Smart CTA’s, Video Marketing. Blog, Social Media, SEO, SEM, Mobile Marketing,

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,