domingo, 29 de abril de 2012

Dispositivos inteligentes


Primero comenzaremos definiendo y conociendo un poco sobre los aparatos que permiten la comunicación entre el medio ambiente con algo electrónico, o también puede ser el ser humano con aparatos de este tipo. Son denominados dispositivos periféricos.
Los dispositivos periféricos
Se denomina periféricos a los aparatos y/o dispositivos auxiliares e independientes conectados a la unidad central de procesamiento 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, como a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.
Se entenderá por periférico al conjunto de dispositivos que, sin pertenecer al núcleo fundamental de la computadora, formado por la CPU y la memoria central, permitan realizar operaciones de entrada/salida (E/S) complementarias al proceso de datos que realiza la CPU. Estas tres unidades básicas en un computador, CPU, memoria central y el subsistema de E/S, están comunicadas entre sí por tres buses o canales de comunicación:
§  direcciones, para seleccionar la dirección del dato o del periférico al que se quiere acceder,
§  control, básicamente para seleccionar la operación a realizar sobre el dato (principalmente lectura, escritura o modificación) y
§  datos, por donde circulan los datos.
A pesar de que el término periférico implica a menudo el concepto de “adicional pero no esencial”, muchos de ellos son elementos fundamentales para un sistema informático. El teclado y el monitor, imprescindibles en cualquier computadora personal de hoy en día (no lo fueron en los primeros computadores), son posiblemente los periféricos más comunes, y es posible que mucha gente no los considere como tal debido a que generalmente se toman como parte necesaria de una computadora. El ratón o mouse es posiblemente el ejemplo más claro de este aspecto. Hace menos de 20 años no todos las computadora personales incluían este dispositivo. El sistema operativo MS-DOS, el más común en esa época, tenía una interfaz de línea de comandos para la que no era necesaria el empleo de un ratón, todo se hacía mediante comandos de texto. Fue con la popularización de Finder, sistema operativo de la Macintosh de Apple y la posterior aparición de Windows cuando el ratón comenzó a ser un elemento imprescindible en cualquier hogar dotado de una computadora personal. Actualmente existen sistemas operativos con interfaz de texto que pueden prescindir del ratón como, por ejemplo, algunos sistemas básicos de UNIX y GNU/Linux.
Tipos de periféricos
Los periféricos pueden clasificarse en 5 categorías principales:
·         Periféricos de entrada: captan y digitalizan los datos de ser necesario, introducidos por el usuario o por otro dispositivo y los envían al ordenador para ser procesados.
·         Periféricos de salida: son dispositivos que muestran o proyectan información hacia el exterior del ordenador. La mayoría son para informar, alertar, comunicar, proyectar o dar al usuario cierta información, de la misma forma se encargan de convertir los impulsos eléctricos en información legible para el usuario. Sin embargo, no todos de este tipo de periféricos es información para el usuario.
·         Periféricos de entrada/salida (E/S): sirven básicamente para la comunicación de la computadora con el medio externo.
·         Periféricos de almacenamiento: son los dispositivos que almacenan datos e información por bastante tiempo. La memoria de acceso aleatorio no puede ser considerada un periférico de almacenamiento, ya que su memoria es volátil y temporal.
·         Periféricos de comunicación: son los periféricos que se encargan de comunicarse con otras máquinas o computadoras, ya sea para trabajar en conjunto, o para enviar y recibir información.
Ambientes inteligentes
El concepto de ambientes inteligentes, viene precedido de lo que se ha denominado domótica. Este término se refiere a la integración de una serie de elementos como informática, electricidad, electrónica y robótica. Esto con el objeto de brindar confort, seguridad, entretenimiento, comunicación y control a los usuarios. 
Este término se extiende a las edificaciones comerciales como inmótica.
En resumen al aplicar domótica a las edifica-ciones se obtienen una serie de ventajas que redundan en el confort y productividad de los individuos que se encuentran dentro de estas.
Con la automatización usted puede encender y ajustar varios equipos de una sala con un solo toque sobre un control o panel, creando una escena adecuada en un instante. Esto se refiere a ajustar las luces, temperatura, audio y video desde un mando centralizado, de forma amigable y versátil.
Las ventajas principales de automatización podría definir como:
• Simplifica al mínimo la operatividad de los recursos. Todos los dispositivos realizarán las operaciones de forma directa con un mínimo de mandos requeridos.
• 100% adaptables a las necesidades específicas del cliente.        
• Aplicaciones sencillas y eficientes (un toque).
• Podrá accionar distintos dispositivos con un solo mando.
• Perfecta compatibilidad entre dispositivos de diferentes marcas.


El futuro
En el futuro, el entorno tecnológico actual evolucionará hacia un modelo diferente, mucho más complejo. Son los ambientes inteligentes, que tendrán una amplia diversidad de elementos. En estos entornos, coexistirán dispositivos de características tecnológicas muy diferentes: rápidos y capaces de transmitir información a alta velocidad. Otros, más pequeños y lentos, de consumo más reducido, podrán aprovechar la energía del entorno físico (vibraciones, luz y temperatura). Son casos en que no hará falta el uso de pilas y baterías".


Propiedades
Ubicuidad, transparencia e inteligencia son las tres propiedades básicas de los ambientes inteligentes: ubicuidad para encontrarlos en el punto donde esté el usuario, transparencia para pasar desapercibidos en el medio físico e inteligencia para adaptarse a las preferencias de cada individuo. "La capacidad de alimentación autónoma -comenta López Villegas- es uno de los aspectos más significativos de los dispositivos. Por esto, tenemos que encontrar metodologías eficientes, es decir, materiales y sistemas que puedan aprovechar al máximo la energía y para reducir al mínimo el consumo de las unidades de emisión-recepción".

La inteligencia ambiental es una de las áreas que potencia el VI Programa Marco de la Unión Europea. Es un concepto que abre múltiples expectativas en computación ubicua, dispositivos médicos personales, tecnología del hogar, aplicaciones domóticas, identificación personal, percepción sensorial, gestión de la energía, control industrial, etc. 

El convenio firmado por la UB y la empresa EPSON abre una línea de colaboración que se potenciará en el futuro entre ambas instituciones en el marco de trabajos internacionales más competitivos en este campo, y comporta también la adquisición en la UB de los derechos derivados de una patente internacional de aplicación, además de los aspectos de colaboración científica, vigilancia tecnológica, etc.


Inteligencia ambiental
La inteligencia ambiental abrirá una nueva perspectiva a nuestro entorno físico más próximo. En la actualidad está en fase de investigación y desarrollo, pero en un futuro modificará el entorno doméstico, industrial, médico e incluso el ocio personal. 

Nuevo concepto
Será un nuevo concepto de interacción inteligente con la tecnología para mejorar la calidad de vida de los usuarios. Para potenciar la investigación en el campo de la inteligencia ambiental es un reto a escala internacional, la UB ha firmado un convenio con la empresa EPSON Europe Electronics GMBH (Alemania) y SEIKO EPSON Corporation (Japón).

"En nuestro entorno -comenta el profesor López-Villegas- estamos habituados a los dispositivos tecnológicos (teléfonos móviles, cámaras digitales, etc.). Son elementos que interaccionan entre ellos sin conexión directa.

sábado, 28 de abril de 2012

Memoria de PIC


Para esta entrada realicé una investigación relacionada a los diferentes tipos de memoria que existen en los PIC, sus características y capacidades.

El microcontrolador está diseñado para que en su memoria deprograma se almacenen todas lasinstrucciones del programa de control. Como éste siempre es el mismo, debe estar grabado de forma permanente.

Existen algunos tipos de memoria adecuados para soportar estas funciones, de las cuales se citan las siguientes:

- ROM con máscara: se graba mediante el uso de máscaras. Sólo es recomendable para series muy grandes debido a su elevado coste.
- EPROM: se graba eléctricamente con un programador controlador por un PC. Disponen de una ventana en la parte superior para someterla a luz ultravioleta, lo que permite su borrado. Puede usarse en fase de diseño, aunque su coste unitario es elevado.
- OTP: su proceso de grabación es similiar al anterior, pero éstas no pueden borrarse. Su bajo coste las hacen idóneas para productos finales.
- EEPROM: también se graba eléctricamente, pero su borrado es mucho más sencillo, ya que también es eléctrico. No se pueden conseguir grandes capacidades y su tiempo de deescritura y su consumo es elevado.
Esta memoria tiene 1 K x 14 Bits de memoria tipo Flash. Esta memoria es la que utilizaremos para almacenar nuestro programa dentro del microcontrolador PIC16F84.
El tipo de memoria utilizada en este microcontrolador, podrá ser grabada o borrada eléctricamente a nuestro antojo desde el programador. La memoria tipo Flash tiene la característica de poderse borrar en bloques completos y no podrán borrarse posiciones concretas o específicas. Este tipo de memoria no es volátil, es decir, no pierde los datos si se interrumpe la energía (faltaría más;)).
La memoria para almacenar el programa nos resultará perfecta para realizar pruebas y experimentos, además de para la programación on-board (actualización del programa interno de chip sin necesidad de retirarlo del circuito de prueba).








- FLASH: se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar en circuito al igual que las EEPROM, pero que suelen disponer de mayor capacidad que estas últimas.
Memoria de datos

Los datos que manejas los programas varían continuamente, y esto exige que la memoria que los contiene debe ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la más adecuada, aunque sea volátil.
Hay microcontroladores que disponen como memoria de datos una de lectura y escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación no ocasiona la pérdida de la información, que está disponible al reiniciarse el programa. ElPIC16F84 dispone de 64 bytes de memoria EEPROM para contener datos.
Los microcontroladores PIC tienen una serie de registros que funcionan como una RAM de propósito general. Los registros de propósito específico para los recursos de hardware disponibles dentro del propio chip también están direccionados en la RAM. La direccionabilidad de la memoria varía dependiendo la línea de dispositivos, y todos los dispositivos PIC tienen algún tipo de mecanismo de manipulación de bancos de memoria que pueden ser usados para acceder memoria externa o adicional. Las series más recientes de dispositivos disponen de funciones que pueden cubrir todo el espacio direccionable, independientemente del banco de memoria seleccionado. En los dispositivos anteriores, esto debía lograrse mediante el uso del acumulador.
Para implementar direccionamiento indirecto, se usa un registro de "selección de registro de archivo" (FSR) y uno de "registro indirecto" (INDF): Un número de registro es escrito en el FSR, haciendo que las lecturas o escrituras al INDF serán realmente hacia o desde el registro apuntado por el FSR. Los dispositivos más recientes extienden este concepto con post y preincrementos/decrementos para mayor eficiencia al acceder secuencialmente a la información almacenada. Esto permite que se pueda tratar al FSR como un puntero de pila.
La memoria de datos externa no es directamente direccionable excepto en algunos microcontroladores PIC 18 de gran cantidad de pines.

Tamaño de palabra


El tamaño de palabra de los microcontroladores PIC es fuente de muchas confusiones. Todos los PICs (excepto los dsPIC) manejan datos en trozos de 8 bits, con lo que se deberían llamar microcontroladores de 8 bits. Pero a diferencia de la mayoría de las CPU, el PIC usa arquitectura Harvard, por lo que el tamaño de las instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PICs usan tamaños de instrucción distintos, lo que hace difícil comparar el tamaño del código del PIC con el de otros microcontroladores. Por ejemplo, un microcontrolador tiene 6144 bytes de memoria de programa: para un PIC de 12 bits esto significa 4096 palabras y para uno de 16 bits, 3072 palabras.

Pasar una aplicación a nuestro android (APK)




Todas las aplicaciones que queramos poner dentro de nuestro celular con SO Android vienen ser archivos ejecutables que se crean automáticamente al estar haciendo y modificando nuestra app. El nombre de este archivo esta compuesto por el nombre de nuestra aplicación y la extensión apk.
Cuando se descarga una aplicación de google play (antes android market) estamos descargando el archivo con extención apk.

Un archivo con extensión .apk es un paquete para el sistema operativo Android. Este formato es una variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la plataforma Android para smartphones y tablets.

Un archivo .apk normalmente contiene lo siguiente:
·         AndroidManifest.xml
·         classes.dex
·         resources.arsc
·         res (carpeta)
·         META-INF (carpeta)

El Formato APK es básicamente un archivo comprimido ZIP con diferente extensión por lo cual pueden ser abiertos e inspeccionados usando un software archivador de ficheros como 7-ZipWinzipWinRAR o Ark.

El tipo MIME definido para .apk es application/vnd.android.package-archive.
Application Package File (APK).

Para pasar la aplicación de nuestra aplicación buscamos el archivo apk dentro de las carpetas generadas en el proyecto. Este se encuentra en:

Carpeta del proyecto/bin/proyecto.apk

Enviamos ahora este archivo a nuestro celular y podremos instalarla y ejecutarla.



jueves, 19 de abril de 2012

Diseño de interfaz


Para diseñar nuestras interfaces para posteriormente codificarlas y hacerlas en android podemos utilizar muchos programas y herramientas que nos ayudan mucho para saber e ir conociendo como se vera nuestra interfaz cuando este terminada.

A continuación mostrare algunos de los que me he encontrado, y también de los mas populares, también de los que yo utilicé para el avance del proyecto.

Podrían servir por si alguien aun no ha diseñado su interfaz.
Aquí algunos ejemplos:

Tal ves el más conocido, se puede usar una versión online, como también descargar una versión prueba que vence en determinado tiempo, la versión completa tiene costo.

Tiene una buena interfaz muy intuitiva donde para ir colocando botones o todo lo que se quiere solo es necesario arrastrar y soltar los elementos elegidos. Las herramientas con las que cuenta son amplias y aparte de diseñar una aplicación para celulares también cuenta para diseñar una página web o nuestro sitio.




Esta aplicación es un poco mas dinámica la presentación en cuanto a diseño, tiene mas color y es posible explotarla con un url para después presentarla con una interacción bastante interesante.
Ofrece capacidades que se encuentran típicamente en las herramientas de creación de diagramas como arrastrar y soltar la colocación, el tamaño, el formato y la exportación / importación de widgets. 
Además, tiene características para anotar los widgets y la definición de las interacciones, tales como enlaces, animaciones, con la condición de unión, cálculos, simulando controles de pestañas, mostrar / ocultar los elementos de simulación y bases de datos.
 Hay soporte para simulación de alta fidelidad de aplicaciones dinámicas de Internet. Justinmind Prototyper continuación, puede generar prototipos y especificaciones HTML de Microsoft Word.


Este es otro software que se encuentra de forma online para poder también diseñar nuestras interfaces graficas,  a diferencia de los otros 2 es que con este también se puede generar código xml esto es útil para si queremos exportar algo de código a nuestra interfaz  y hacer un poco menos de trabajo. 
Otra cosa que podemos hacer es exportar nuestro diseño de aplicación nuestro celular si asi lo queremos y ver nuestro xml en nuestro android.




Android y accesibilidad


Una de las grandes realidades de nuestro tiempo es la creciente necesidad por parte de la población general por tener un Smartphone, y eso, en México, cada vez es más parecido a decir un Android. Entre esos usuarios potenciales pueden encontrarse, evidentemente, muchos ciudadanos con algún tipo de discapacidad en los sentidos, y por ello, los ingenieros de Google, Apple o Microsoft, trabajan para que les sea más fácil la accesibilidad a las bondades que le permite su nuevo teléfono. Android lo facilita y mucho.
En el mundo hay aproximadamente unos 40 millones de invidentes totales y aproximadamente 140 millones de personas con problemas graves de visión, el acceso a la información o incluso manejar aparatos electrónicos de su hogar. Pero no sólo hablamos de personas con este tipo de discapacidad, hay personas con otras necesidades que pueden necesitarlo, como por ejemplo los sordomudos, aunque tal vez sea más difícil de entender por qué, pues al menos, pueden ver la pantalla.
 Android y Ice Cream Sandwichhan dado un paso al frente con este concepto y lo han llevado al siguiente nivel.
Google no quiere que personas con problemas de visión como la ceguera total o parcial se queden sin poder usar Android, por eso han mejorado bastante las opciones de accesibilidad en Android 4.0 (Ice Cream Sandwich) para que poder usar la interfaz cómodamente solo con los dedos y oídos.
Veamos unos videos donde se muestra como usarlo.



Como vemos en los vídeos que hay disponibles en este momento ahora la nueva opción de accesibilidad es totalmente usable y muy fácil de usar. Ahora al pasar nuestro dedo por encima de la pantalla leeremos lo que hay y con dos dedos haremos los desplazamientos en las listas, escritorio, aplicaciones, etc… También el sistema nos avisará de las acciones que estamos haciendo.
Aplicaciones de accesibilidad
KickBack
El KickBack puede ser especialmente útil para personas sordas, ya que el teléfono vibra con cualquier acción que realiza el usuario o usuaria, al tocar la pantalla o algún botón, etc. Así, la persona recibirá feedback al realizar cualquier acción. El único inconveniente es que el servicio no puede personalizarse variando el número o tipo de vibración según la acción que se realice.

SoundBack 
SoundBack puede ser especialmente útil para personas ciegas. Al igual que con el KickBack se emitían vibraciones, con el soundBack se emiten sonidos. Así, el dispositivo emitirá diferentes sonidos cuando se realice alguna acción, como teclear, mover el cursor, etc. Esta aplicación tampoco puede personalizarse, aunque sí pueden cambiarse los sonidos porque Android es un sistema más abierto que otros existentes. Aunque los métodos para hacer esto son muy complejos.
Síntesis de voz
Android posee una síntesis de voz que está disponible en cinco idiomas, y aunque tienen bastante calidad, para los usuarios o usuarias con discapacidad visual que estén acostumbrados a una voz más personalizada, la velocidad de reproducción y de gestión de tono será insuficiente.
Lectores de pantalla
Actualmente existen dos lectores de pantalla: talkBack y spiel. Ambos son muy parecidos y lo que hacen es indicar qué elemento se ha pulsado, pero lo ideal sería que indicasen que elemento es el que estás pulsando y darte la opción de pulsarlo o no.
Como esto no es así, es muy difícil, casi imposible que una persona ciega pueda usar una pantalla táctil, por lo que los teléfonos que utilicen deben llevar un teclado físico.
Para moverse por la pantalla muchos teléfonos con Android incorporan mecanismos de trackBall o joyPad de 5 posiciones, pero el problema reside en que todas las aplicaciones no están diseñadas para moverse mediante el teclado o con cursor. Así, las aplicaciones diseñadas para ser al completo táctiles presentan serios problemas de accesibilidad.

Symbian


Ahora hablare de otro sistema operativo que no es tan conocido pero también es muy usado en los teléfonos celulares.
Este sistema operativo móvil es gracias a la unión de muchas compañías dedicadas a hacer celulares. Entre las que se encuentran NokiaSony EricssonPsionSamsungSiemensArimaBenqFujitsuLenovoLGMotorolaMitsubishi ElectricPanasonicSharp, etc. Sus orígenes provienen de su antepasado EPOC32, utilizado en PDA's y Handhelds de PSION.
El objetivo de Symbian fue crear un sistema operativo para terminales móviles que pudiera competir con el de Palm o el Windows Mobile 6.X de Microsoft y ahora Android de Google Inc. e iOS de Apple Inc.
En 2003 Motorola vendió el 13% de su participación a Nokia, lo cual hizo que se quedara con el 32,2% de la compañía. Más tarde, sin embargo, después de no tener el éxito esperado con sus terminales "Linux-Like", volvió al mundo del Symbian comprándole el 50% a Sony Ericsson. El 24 de junio de 2008, Nokia decidió comprar Symbian, adquiriendo el 52% restante de las acciones de la compañía, tras un acuerdo con el resto de socios. El objetivo era establecer la Fundación Symbian y convertir este sistema operativo en una plataforma abierta. Entre 2009 y 2010 Nokia decide transferir el soporte y desarrollo del sistema operativo Symbian a la consultora Accenture, terminando la operación a finales de septiembre de 2011 una vez terminado el desarrollo de la nueva versión Symbian Belle, convirtiéndose en la última versión de Symbian en la que Nokia participó de forma exclusiva. En octubre de 2011 se confirma de forma oficial que Symbian tendrá soporte hasta el año 2016, al no poder seguir soportándolo por no ser un competidor para la nueva versión de smartphones con sistemas operativos de última generación como Android, iOS o Windows Phone.

 

Nokia

La mayoría de los móviles con Symbian son de esta compañía: Los dispositivos táctiles N97, 5530, 5230, 5800, X6 (estos con Symbian S60 5th Edition) y los más recientes N8, C7, C6-01, C-3, C5-03, E7, E6 y X7, Oro, 500, 603, 700, 701 con la versión Symbian^3 o superior, todos son actualizables a versiones como Symbian Anna y Symbian Belle.
En diciembre de 2011, Nokia sustituye la denominación Symbian por Nokia Belle hacia el público como parte de sus planes de unificación de marcas. Sin embargo, el sistema operativo Symbian sigue llamándose como tal ya que internamente y de cara a los desarrolladores sigue denominandose Symbian.

Interfaces basadas en Symbian
Existen otras interfaces de usuario o plataformas basadas en Symbian:
·        UIQSony EricssonMotorolaBenQ y Arima, han usado UIQ, una interfaz de usuario basada en Symbian y desarrollada por UIQ Technology. Algunos teléfonos con UIQ son: Sony Ericsson: M600i, P800, P802, P900, P910, P990, P1i, W950, W960i, G900; Motorola: RIZR Z8, RIZR Z10; Nokia: 6708, 6120, 6120i.
·        FOMA: Usada por algunos móviles 3G de NTT-Docomo.

Bibliografía: