Páginas

jueves, 29 de marzo de 2012

[MDE Class] Avances del Proyecto - Medio Curso


Importancia e impacto esperado del proyecto


He investigado en la web acerca de los proyectos de domotica, y me he dado cuenta que estas iniciativas están tomando mucha fuerza, y a pesar de que el impacto de las mismas es muy limitado en el país, decidí realizar el proyecto para demostrar lo sencillo que ésto puede resultar.

Los beneficios son inmensos, en los últimos años ha habido un boom tremendo por las tecnologías verdes, sin embargo, la mayoría aún están fuera de nuestro alcance o son muy costosas de implementar, sin embargo, es posible poner algo de verde a las tecnologías actuales si somos capaces de generar conciencia en las personas. He aquí la importancia de mi proyecto, ya que, ahorrar energía puede ser unos de los métodos más comunes y sencillos de implementar, y con ello, ayudar a la economía personal y a contribuir con el cuidado del medio ambiente.

Espero que el impacto de mi proyecto sea significativo, espero que las personas se den cuenta de la importancia de ahorrar energía y se den cuenta la cantidad de dinero extra que gastan al año por descuidos en sus instalaciones eléctricas.
Espero que se genere conciencia sobre el tema y contribuir activamente a este tipo de proyectos y sienta lo fácil que es tener el control de su hogar en la palma de su mano.

Herramientas y Tecnologías Utilizadas



1. ANDROID 2.3


Porque es una plataforma de código libre, fácil de adquirir y programar; además de tener una amplia aceptación entre los usuarios y un mercado bastante distribuido.

En mi caso, utilizaré un celular LG Optimus Black P970 en el cual instalaré la interfaz de monitoreo y control local y remoto.



2. Titanium Mobile SDK

Es una herramienta que suplirá a mi eclipse, sin embargo, tiene integración con la SDK de Android (siempre y cuando esté instalada). Me servirá para optimizar la creación de la interfaz gráfica, desarrollo de funciones, programación y todo lo demas que conlleve el desarrollo de la app.


3. Herramientas WEB
  1. Apache Web Server
  2. MySQL
  3. php
  4. Ruby on Rails
  5. Highcharts

4. Open Energy Monitor


Es un proyecto existente, cuyo objetivo es el monitoreo del consumo y/o producción de energía eléctrica. Mas específicamente, me centrare en su división EMONcms que es una librería open source para la visualización de datos de consumo eléctrico.




5. Hardware
  1. Arduino UNO
  2. Xbee
  3. CT Sensors
  4. Adaptador de Corriente modificado
  5. Protoboard y demás componentes electrónicos

Calendarización




Consideraciones de Usabilidad


  1. Manténlo simple: viene a ser lo principal, una aplicación donde el usuario con unos sencillos taps vaya a donde quiere, cuando quiere.
  2. Navegación: en qué pantalla se encuentra el usuario, cómo puede regresar.
  3. Botones grandes: Al tratarse de una aplicación móvil, los botones deben ser lo suficientemente grandes para permitir un control adecuado
  4. Adaptable y fácil de configurar: Layout personalizado.


A continuación les dejo las diapositivas presentadas en clase.

jueves, 1 de marzo de 2012

[Emb Comp Class] Proyecto 1 "Dado PIC"

Descripción

Realizar un dado electrónico, sera "lanzado" presionando un Push Button y mostrará el resultado con un arreglo de 7 leds y mediante la combinación de las salidas del PIC. (B0, B1, B2, B3, B4, B5, B6, B7)

Materiales

  • 1 microcontrolador PIC16F628A
  • 1 diodo rectificador 1N4007
  • 1 regulador de voltage MC7805CT
  • 1 capacitor 470 microFaradios a 16 volts
  • 2 capacitores ceramicos 0.1 microFaradios
  • 1 resistor 10 kiloOhms
  • 1 resistor 270 kiloOhms
  • 3 resistores 33 ohms
  • 1 Protoboard

Procedimiento

Podemos leer un poco de Teoría sobre Microcontroladores para saber con que trabajaremos.
Es necesario tener conocimientos básicos en lenguaje BASIC, podemos leer este articulo
Prácticamente armaremos el hardware del proyecto desde cero, siguiendo el siguiente mapa esquemático.



La parte superior es una fuente que regula el voltage cuando colocamos la bateria, ya que de los 9Volts que nos provee solo son necesarios 5Volts.

Conexion de los LEDS

Para el correcto funcionamiento del dado, los leds deben conectarse correctamente. Son necesarias 4 salidas, 3 de ellas encienden 2 leds cada una, y la que sobra enciende solamente uno, el cual es el LED central.



Estas son las salidas correspondientes en binario, traducidas a hexadecimal para cargarlas en el programa



Como podemos ver, es necesario conectar las parejas en forma cruzada para poder reproducir correctamente los patrones del dado.



Armado en Protoboard



Código


El programa fue realizado en el programa PIC Simulator IDE, es una aplicación bastante completa que permite escribir nuestro código, compilarlo y realizar una simulación del mismo. No nos permite armar un circuito, pero nos permite simular que las salidas de nuestro microcontrolador sean correctas. El programa es de pago y nos permite tener 30 sesiones, cada una con una duración de 2 horas; agotadas dichas sesiones sera necesario pagar por el mismo, sin embargo, el código del dado es super rápido de programar



Referencias

[Emb Comp Lab] Sintaxis BASIC en PIC

BASIC es el acrónimo de Beginners All-purpose Symbolic Instruction Code ("Código de instrucciones simbólicas de propósito general para principiantes")

"Forma parte de la familia de lenguajes de alto nivel. Originalmente fue desarrollado como una herramienta de enseñanza; se diseminó entre las microcomputadoras hogareñas a partir de la década de 1980. Actualmente continúa siendo muy popular, en muchos dialectos bastante distintos del original. FUENTE: http://es.wikipedia.org/wiki/BASIC

Se dice que es un lenguaje hecho para niños, que ya esta en desuso, pero la verdad es de los pocos lenguajes "old school" que siguen vigentes para su uso.

BASIC fue diseñado para permitir a los estudiantes escribir programas usando terminales de un computador en tiempo compartido. Estaba pensado para reducir notablemente la complejidad de los otros lenguajes del momento, diseñado específicamente para un usuario más sencillo fuera del área de las ciencias de la computación y a quien no le interesaba tanto la velocidad, sólo el hecho de ser capaz de programar y usar la máquina sin demasiadas complicaciones. Los diseñadores del lenguaje también querían que permaneciera en el dominio público, lo cual contribuyó a que se diseminara rápidamente.

Los ocho principios que rigeron el diseño de BASIC fueron:
  1. Ser fácil de usar para los principiantes.
  2. Ser un lenguaje de propósito general (no orientado).
  3. Permitir a los expertos añadir características avanzadas, conservando simple el lenguaje para los principiantes.
  4. Ser interactivo.
  5. Proveer mensajes de error claros y amigables.
  6. Responder rápido en los programas pequeños.
  7. No requerir un conocimiento del hardware de la computadora.
  8. Proteger al usuario del sistema operativo.

Tipos de Datos


En BASIC existen 4 distintos tipos de variables, según el dato que puedan almacenar:
  • Bit (un bit de longitud, almacena 0 o 1 únicamente)
  • Byte (un byte de longitud, almacena números enteros entre 0 y 255)
  • Word (dos bytes de longitud, almacena números enteros entre 0 y 65,535)
  • Long (cuatro bytes de longitud, almacena números enteros entre 0 y 4,294,967,295)
La declaración de variables puede ser hecha en cualquier parte del programa, y todas son consideradas globales, es decir, su valor es accesible desde todas las subrutinas y zonas del programa. El numero de variables esta lógicamente limitado al monto de memoria RAM disponible en cada microcontrolador.
Las variables deben ser declaradas antes de utilizarlas, mediante la instrucción DIM, como se muestra en los siguientes ejemplos:
 DIM A AS BIT
 DIM B AS BYTE
 DIM X AS WORD
 DIM Y AS LONG
También es posible utilizar vectores o arreglos, es decir, una matriz de dimensiones 1xN . Por ejemplo:
 DIM A(10) AS BYTE
aqui declaramos un vector de diez elementos del tipo BYTE, que serán accedidos mediante el uso de subíndice (entre paréntesis) del 0 al 9.

Las variables tipo WORD están compuestas por dos bytes. el primero de ellos es llamado byte "alto" y el otro "bajo", dado que el primero contiene los 8 bits mas significativos. En BASIC podemos acceder individualmente a cada uno de los bytes que componen un Word mediante las extensiones ".HB" (High byte, o byte alto) y ".LB" (Low Byte o byte bajo) . Veamos un ejemplo:
 DIM A AS BYTE
 DIM B AS WORD
 A = B.HB
 A = B.LB 'Esto es lo mismo que A = B
 B.HB = A
 B.LB = A
 B = A 'Esto también borra el byte alto de la variable B
Los bits individuales de cada variable BYTE pueden ser accedidos individualmente también, simplemente poniendo como extensión ".n" donde "n" es el numero de bit (1,2, 3, etc. )
 DIM A AS BYTE
 DIM B AS BIT
 B = A.1
 B = A.7
 A.0 = A.5

RESERVE


La sentencia RESERVE le permite al programador reservar un numero de posiciones de la RAM para su uso en rutinas en assembler o para el In-Circuit Debugger de MPLAB. Simplemente, si queremos reservar 20 bytes de RAM, escribimos:
 RESERVE 20

Puertos


Todos los registros del microcontrolador esta disponibles para usar en los programas BASIC, como si se tratase de variables del tipo BYTE con el nombre del registro utilizado en las datasheet (PORTA, PORTB, TRISA, etc.). Por supuesto, se puede acceder a bits individuales de los registros con la técnica vista párrafos atrás. Algunos ejemplos:
 TRISA.1 = 0
 TRISB = 0
 PORTA.1 = 1
 PORTB = 255
Existe una "forma corta" de acceder a los bits individuales de cada port, simplemente usando las variables BASIC tipo byte RA, RB, RC, RD, RE o bien las tipo bit RA0, RA1, RA2, ..., RE6, RE7
 RA = 0xFF
 RB0 = 1
Los registros PORTA, PORTB (y en algunos casos PORTC) contienen el estado de los terminales de entrada-salida correspondiente.
Los registros TRISA, TRISB (y en algunos casos TRISC) se utilizan para configurar los terminales de entrada-salida.

SYMBOL


Una forma de escribir programas que nos resulten mucho mas fáciles de entender es el uso de nombres simbólicos, o SYMBOL. Un "symbol" es una cadena que contiene código, asignado a un nombre. Al momento de compilar, PIC BASIC hace la "búsqueda y reemplazo" de nuestros símbolos y luego genera el código ASM y el HEX. Supongamos que tenemos un LED conectado al bit cero del puerto B. Mediante SYMBOL podemos hacer:
 SYMBOL LED1 = PORTB.0
Luego, si queremos encender el LED, en lugar de
 PORTB.0 = 1
podemos hacer
 LED1 = 1
que es mucho mas claro y fácil de leer. Por supuesto, el código que aparece a la derecha del igual no puede contener instrucciones o comandos reservados del sistema.

Las constantes (valores que usamos en nuestro programa, y que, por ejemplo, asignamos a las variables) pueden ser escritas en decimal (directamente el valor), en hexadecimal (anteponiendo "0x" o posponiendo "H" al valor) o en binario (anteponiendo "%" al valor). Por ejemplo:
 DIM A AS BIT
 DIM B AS BYTE
 A = TRUE
 B = 0x55
 B = %01010101
Por supuesto, se pueden asignar nombres a las constantes, usando la instrucción CONST:
 DIM A AS WORD
 CONST PI = 314
 A = PI

GOTO


Esta es una de las instrucciones más polemicas que se encuentra en todos los dialectos BASIC. GOTO significa literalmente "IR A", y sirve justamente para desviar el flujo del programa a otro punto. Para usar GOTO, es necesario poner una etiqueta en el lugar al que queremos "saltar". Las etiquetas son simplemente nombres terminados en ":", tal como se ve a continuación:
 ...
 calculos:
 ...
 ...
 ...
 GOTO calculos
 ...
En el ejemplo anterior, el programa se ejecutará hasta encontrar la instrucción "GOTO calculos", que hara que se ejecuten nuevamente las instrucciones siguientes a la etiqueta "calculos:". Cabe aclarar que las etiquetas no son un código ejecutable, es decir, no realizan ninguna acción, solo son un "marcador" del lugar al que se puede saltar con GOTO.

Operaciones Lógicas y Matemáticas


Se dispone de cinco operaciones matemáticas básicas, disponibles para las variables tipo BYTE y Word. Estas son
  • suma (operador +)
  • resta (operador -)
  • multiplicación (operador *)
  • division (operador /)
  • módulo (operador MOD)
Por supuesto, el compilador es capaz de combinarlas para obtener operaciones matemáticas mas complejas. Ejemplos:
 DIM A AS WORD
 DIM B AS WORD
 DIM X AS WORD
 A = 123
 B = A * 234
 X = 2
 X = (12345 - B * X) / (A + B)
Tambien es posible calcular raíces cuadradas (aunque el resultado debe ser entero) con la función SQR:
 DIM A AS WORD
 A = 3600
 A = SQR(A)
Para las variables de tipo BIT existen siete operaciones lógicas disponibles. Estas operaciones también están disponibles para variables tipo WORD o BYTE. Por ejemplo:
 DIM A AS BIT
 DIM B AS BIT
 DIM X AS BIT
 X = NOT A
 X = A AND B
 X = A OR B
 X = A XOR B
 X = A NAND B
 X = A NOR B
 X = A NXOR B
 DIM A AS WORD
 DIM B AS WORD
 A = A OR B
 PORTB = PORTC AND %11110000

CICLOS

IF - THEN - ELSE - ENDIF


Como sabemos, al igual que en otros lenguajes de programación, esta sentencia sirve para tomar alguna decisión durante el flujo del programa.
El caso mas simple para utilizar esta instruccion es:
 IF condición THEN instrucción
"IF" significa "SI....", y "THEN" significa "LUEGO" o "ENTONCES". El caso anterior puede leerse como "SI se cumple la condición, entonces ejecuto la instrucción" La "condición" es una expresión lógica que puede ser verdadera o falsa. En caso de ser verdadera, la instrucción a continuación del THEN será ejecutada. En caso de la condición sea falsa, el programa seguirá su ejecución con la instrucción siguiente al "IF - THEN".

Muchas veces, luego de evaluar la condición necesitamos ejecutar mas de una instrucción. En los ejemplos vistos en el CASO 1 siempre se ejecutaba una sola instrucción cuando la condición era cierta. La manera de ejecutar múltiples sentencias dentro de una estructura IF-THEN implica emplear el ENDIF:
 IF condición THEN
   instrucción 1
   instrucción 2
   ...
   instrucción n
 ENDIF


Otras veces que de acuerdo a la condición, queremos ejecutar un grupo u otro de instrucciones. Para eso, utilizamos el ELSE:
 IF condición THEN
   instrucciónv 1
   instrucciónv 2
   ...
   instrucciónv n
 ELSE
   instrucciónf 1
   instrucciónf 2
   ...
   instrucciónf n
 ENDIF
Es decir, si la condición es verdadera, se ejecutan las sentencias entre THEN y ELSE. Y si la condición es falsa, las que estén entre ELSE y ENDIF. "ELSE" puede ser traducido como "en otro caso" o "si no...".

FOR - TO - STEP - NEXT


Nos permite repetir un proceso una determinada cantidad de veces.
Esta estructura necesita una variable (tipo Byte o Word) para funcionar. En cada iteración del bucle, la variable va cambiando su valor. Cuando el valor de la variable alcanza o supera el valor prefijado, el bucle termina. La forma del bucle es la siguiente:
 FOR variable = valor_inicial TO valor_final STEP paso
  instruccion1
  instruccion2
  ...
  instruccionn
 NEXT variable
De la misma manera que ocurría con IF-THEN-ELSE-ENDIF, pueden anidarse diferentes bucles FOR-TO-STEP-NEXT , uno dentro de otro:
 FOR variable1 = valor_inicial1 TO valor_final1 STEP paso1
  FOR variable2 = valor_inicial2 TO valor_final2 STEP paso2
     instruccion1
     instruccion2
     ...
     instruccionn
  NEXT variable2
 NEXT variable1

WHILE - WEND


Tiene el mismo proposito que la estructura anterior. Su declaracion es:
 WHILE condición 
  instruccion1
  instruccion2
  ...
  instruccionn
 WEND
Mientras que la condición sea verdadera, el grupo de instrucciones dentro del cuerpo del WHILE-WEND se ejecuta. Por supuesto, si no somos cuidadosos al momento de elegir la condición, puede darse el caso de que el numero de repeticiones del bucle sea infinito, y nunca salgamos de el. De hecho, esta circunstancia se aprovecha en algunos programas para repetir indefinidamente un grupo de instrucciones. También hay que tener presente que si la condición no es cierta al momento de ejecutar la primera vez el WHILE, el flujo del programa pasara directamente a la instrucción posterior al WEND y las instrucciones dentro del bucle no se ejecutaran ninguna vez.

LOOKUP


La función LOOKUP puede ser utilizada para seleccionar un Byte desde una lista de constantes del mismo tipo, de acuerdo al valor de un índice (también de tipo Byte). El resultado de la selección se almacena (como no!) también en una variable tipo byte. La forma de la función LOOKUP es la siguiente:
 variable = LOOKUP(byte0, byte1, ..., byteN), indice
Por ejemplo:
 DIM indice AS BYTE
 DIM variable AS BYTE
 indice = 3
 variable = LOOKUP(25, 35, 55, 70, 85, 100), indice
variable tendrá el valor "70" (decimal) al ejecutar este código. El primer elemento de la lista, recordemos, corresponde al valor "0" de indice. Si bien la lista puede contener un máximo de 255 elementos, que es el máximo direccionable por una variable indice de tipo byte, hay que asegurarse que el microcontrolador que estamos empleando tenga memoria suficiente para albergarla.

Cabe mencionar que la version de BASIC utilizada en los microcontroladores es mas sencilla que la utilizada en las versiones de escritorio, si desean saber mas sobre este lenguaje pueden visitar este tutorial:
Tutorial BASIC

Referencias

[MDE Lab] Comparativa Sistemas Operativos Móviles

Imagen tomada de: http://es.engadget.com/2009/03/19/la-gran-comparacion-de-los-sistemas-operativos-moviles/

En la actualidad existe una gran tendencia a incorporar en los dispositivos móviles el poder de los sistemas operativos, y esto no es de sorprendernos ya que cada vez vemos dispositivos mas poderosos que necesitan de ellos para gestionar la gran cantidad de funciones incorporadas y procesar todos sus datos.

Un sistema operativo móvil es mas simple y orientado a realizar otras funciones. Por lo general necesita de mucho middleware que le ayuda a realizar las funciones básicas para el cual fue creado (como las funciones de telefonía). Comparemos algunos de los sistemas operativos móviles mas influyentes y algunas de sus características.

Android




Para las personas que buscan toda una experiencia de comunicación y entretenimiento, Android es la opción correcta. Desarrollado por Google y Open Handset Alliance, es un sistema operativo que trabaja en una plataforma de código abierto, usa un kernel Linux, con una mezcla especial de Java. . Esto da libertad al desarrollador, el fabricante y al usuario para personalizar el teléfono de acuerdo a sus gustos y necesidades. Actualmente es el sistema operativo con mayor crecimiento en el mundo y uno de los más importantes debido a su estabilidad, funcionalidad y fácil uso.

Además, puedes encontrar miles de canciones y aplicaciones en Android Market, además de tener acceso a correo electrónico, redes sociales (Facebook, Twitter, Myspace, etc.), chats (Google Talk, MSN Messenger, etc.), mapas (Google Maps y otros) y muchas cosas más.

Interfaz




La nueva interfaz de Android se llama Roboto, y sera incluida en la versión 4.0. Entre las caracteristicas incluidas se encuentra:
  • Versión que unifica el uso en cualquier dispositivo, tanto en teléfonos, tablets, televisores, netbooks, etc
  • Interfaz mas limpia y moderna con una nueva fuente también llamada "Roboto"
  • Opción de utilizar los botones virtuales en la interfaz de usuario, en lugar de los botones táctiles capacitivos
  • Aceleración por hardware, lo que significa que la interfaz podrá ser manejada y dibujada por la GPU y aumentando notablemente su rapidez, su respuesta y evidentemente, la experiencia de usuario
  • Las notificaciones tiene la posibilidad de descartar las que no son importantes y también desplegar la barra de notificaciones con el dispositivo bloqueado
  • La captura de pantalla, con solo pulsando el botón de bajar volumen y el botón de encendido
  • Android Beam es la nueva característica que nos permitirá compartir contenido entre teléfonos. Via NFC (Near Field Communication)
  • Reconocimiento de voz del usuario
  • Reconocimiento facial, lo que haría que puedas cambiar la vista
  • Las carpetas son mucho más fáciles de crear, con un estilo de arrastrar y soltar
  • Soporte nativo para el uso de Stylus (lápiz táctil)

Pros


Open Source, que es en definitiva la mayor ventaja tanto para los que desarrollan sus aplicaciones como para sus usuarios. Puedes personalizar tu teléfono al máximo y modificar funciones del teléfono simplemente instalando una aplicación.
Otro tanto a favor de Android es la confianza que está recibiendo de los fabricantes. Gracias a ello, la oferta de teléfonos con Android es amplia y la oferta es variada tanto en marcas como en precios.

Contras


Uno de los aspectos negativos de Android es su fragmentación: aunque va mejorando, actualizar el sistema operativo a nuevas versiones no es tan sencillo como con un iPhone. También comparando con iPhone, la cantidad de juegos disponible para Android es menor. Esto se espera resolverlo con la salida de Ice Cream Sandwich.

Windows Phone




Para las personas que buscan una oficina móvil además de todas las herramientas que brinda Microsoft Windows (Office, MSN Messenger, etc.), Windows Mobile es la opción correcta. El sistema operativo desarrollado por Microsoft, es la adecuación de la conocida plataforma Windows, utilizada en la mayoría de las PCs alrededor del mundo. En su versión móvil se encuentran la mayoría de las aplicaciones ya conocidas como la “barra de inicio” y la “barra de tareas”, además de programas de productividad como Outlook, Microsoft Office, y de entretenimiento como MSN Messenger, o Windows Media Player.

Ha sido la única compañía en dar a conocer una lista de los requerimientos mínimos necesarios para hacer funcionar su sistema de manera óptima:
  • Pantalla capacitiva, 4 puntos multitouch pantalla con resolución WVGA (800x480)
  • 800 MHz o Mejor ARM v7 "Cortex/Scorpion" - Soportados Snapdragon QSD8X50, MSM7X30, y MSM8X55
  • DirectX 9 rendering-capable GPU
  • 256MB de RAM con al menos 8GB de memoria Flash
  • Acelerómetro con brújula, sensor de luz, sensor de proximidad y A-GPS
  • FM radio
  • 6 botones de hardware dedicados - Volver, Inicio, buscar, cámara, ON/OFF y Volumen Arriba y Abajo.


Interfaz




Metro es el nombre del sistema de diseño de las interfaces de Windows Phone. El nombre es debido a que utiliza el mismo lenguaje visual que aparece en aeropuertos y en la señalización de las redes de metro. La meta de utilizar Metro es facilitar que los usuarios lleguen al contenido que deseen gracias al uso de una tipografía conocida por medio de un diseño simple y claro logrando una experiencia de usuario fluida.
Cabe mencionar que la interfaz gráfica de Windows Phone 7 es bastante diferente a cualquier otra vista anteriormente.

Los menús y la interfaz tienen animaciones fluidas y un tipo de letra limpia.

La pantalla de inicio es muy rápido y está muy lejos, por mucho, de la pantalla de inicio antiguo Windows Mobile. Baldosas grandes y coloridas sirven como accesos directos a tus aplicaciones más usadas o sitios web. También puede colocar las baldosas en vivo en la pantalla con enlaces a su perfil de Facebook o amigos, estas baldosas en vivo cambian la imagen o animación si el contenido de la aplicación o el sitio se actualiza.

Interfaz "toque y arrastre", fácilmente podemos movernos en cualquier orden que deseemos. Al deslizar la derecha te lleva a una lista de todas sus aplicaciones. Si deseas mover una de sus aplicaciones a la pantalla de inicio rápido, simplemente presionala y deja así por un momento y en el menú seleccionar "añadir a inicio rápido". Cuando estás en una aplicación, verás una fila de otras opciones de menú en la parte superior de la pantalla. Si desea volver al menú anterior, sólo tiene que pulsar la tecla de la flecha en la parte superior de la interfaz.

Pros


Un diseño moderno, práctico, atractivo y con características innovadoras han sorprendido ya a más de uno. Windows Phone cuenta con una gran inversión y se ha diseñado para competir con los más grandes: el resultado es un sistema moderno y capaz.

Contras


La variedad de móviles con Windows Phone no es tan amplia como la que ofrecen Android o Symbian, aunque está en crecimiento.

Por otra parte, al llegar algo más tarde a la primera división del firmamento móvil, la cantidad de aplicaciones disponibles en estos momentos es baja, aunque están facilitando el trabajo a los desarrolladores para llenar el hueco rápidamente.

iOS




Desarrollado por la compañia Apple, esta incluido en la mayoría de sus dispositivos (iPhones, iPods y Tabletas). El iPhone se basa en OS X, que a su vez es una variante de Unix, uno de los sistemas operativos más poderosos en el mundo de la informática.

Es el sistema operativo de los iPhone. Ha demostrado ser un excelente producto pero limitado única y exclusivamente a los terminales producidos por Apple lo que limita su crecimiento en el mercado y obliga al consumidor a depender de un solo fabricante.

Interfaz




El nombre de la interfaz es Cocoa Touch. Se trata de un API para la creación de programas para el iPad, iPhone y iPod Touch de la compañía Apple Inc. Cocoa Touch proporciona una capa de abstracción al sistema operativo iOS.
Cocoa Touch se basa en el set de herramientas que proporciona el API de Cocoa para crear programas sobre la plataforma Mac OS X.
Herramientas para desarrollar aplicaciones basadas en Cocoa Touch se incluyen en el SDK de iOS.

La interfaz de usuario de iOS está basada en el concepto de manipulación directa, usando gestos multitáctiles. Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a las órdenes del usuario es inmediata y provee de una interfaz fluida. La interacción con el sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan acelerometros internos para hacer que algunas aplicaciones respondan a sacudir el dispositivo (por ejemplo, para el comando deshacer) o rotarlo en tres dimensiones (un resultado común es cambiar de modo vertical al apaisado o horizontal).

Pros


Buen diseño, funcionalidad, facilidad de uso y una variedad de aplicaciones y juegos enorme lo convierten en un referente. Si has tenido un iPhone, te costará cambiar.
Su perfecta integración con servicios en la nube y equipos de sobremesa, especialmente Mac, es otro de sus puntos fuertes. Tu correo, tus redes sociales... podrás estar siempre conectado.

Contras


El sistema de Apple es cerrado, lo que quiere decir menos posibilidades de cambiar la forma de funcionar del teléfono y un control más rígido de las aplicaciones publicadas. Además, si quieres disfrutar de un iPhone, sólo te queda desembolsar un precio bastante alto puesto que sólo hay un fabricante y un modelo.

Symbian




Symbian es un sistema operativo que fue producto de la alianza de varias empresas de telefonía móvil, entre las que se encuentran Nokia, Sony Ericsson, Psion, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola, Mitsubishi Electric, Panasonic, Sharp, etc. Sus orígenes provienen de su antepasado EPOC32, utilizado en PDA's y Handhelds de PSION.
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.

Symbian OS está hecho para las personas que buscan un sistema operativo intuitivo y estable, además de reproductor multimedia, cámara fotográfica, video y música. El sistema operativo también trabaja en una plataforma de código abierto y lo desarrolla Symbian Foundation desde hace poco menos de 10 años. Ahora se puede disfrutar de stream de música, bajar aplicaciones, revisar correo electrónico y mucho más.

Interfaz




Symbian Belle es el nombre de la nueva version e interfaz Symbian, Una de las tantas mejoras que trae Symbian Belle es el poder utilizar las aplicaciones para la función NFC que los equipos ya traían pero que no funcionaban. Además cuenta con nuevos widgets y la posibilidad de personalizar mucho más el equipo.

Otro detalle de Symbian Belle es que permite personalizar los widgets al tamaño y la función que necesitemos para tener a la vista todo lo que más usemos, además de darlos la posibilidad de trabajar con hasta 6 pantallas de inicio -recuerden que hasta Symbian Anna sólo se podía tener hasta 3-. También tiene una gran similitud con Android, en el sentido de que permite ver las un tab de notificaciones con configuraciones y notificaciones de mensajes nuevos, llamadas perdidas y demás, que se pueden ver también con una pantalla bloqueada; y se ha mejorado la función multitasking.

Obviamente como no podía ser de otra manera, incorpora todo un set de aplicaciones de Microsoft, como Lync, Sharepoint, One Note, Exchange ActiveSync y PowerPoint Broadcaster.

Pros


Symbian ha sido siempre fiable e innovador. Con fuerte énfasis en las funciones básicas de telefonía y multimedia de sus dispositivos, también cuenta con un amplio mercado de aplicaciones externas y con una tremenda variedad de dispositivos disponibles.
Se trata de una excelente opción para conseguir terminales de gama media y baja, gracias a su fiabilidad, una cantidad razonable de buenas aplicaciones, posibilidades multimedia y al precio asequible de muchos de sus modelos.

Contras


Symbian ha perdido protagonismo con la llegada de iPhone y Android, sobre todo en los smartphones punteros. Hay muchas y muy buenas aplicaciones para Symbian, pero no se puede comparar con la cantidad de oferta de nuevas aplicaciones de la competencia.

BlackberryOS




Blackberry tuvo un duro 2011, debido a que estaba orientado mas al mundo de los negocios, sin embargo, estas personas comenzaron a irse con otros fabricantes causando una baja significativa en las ventas de la compañias.

Actualmente Blackberry ha estado modificando su vision y actualmente, los modelos de Blackberry cuentan con todo lo que se puede esperar de un móvil moderno, no sólo para el trabajo, sino también para uso personal.

RIM usa un kernel propio, que al igual que Android, tiene un motor Java, y aunque han mejorado la interfaz notablemente, suele mostrar algunas limitaciones propias de su edad.

Interfaz




El sistema operativo mas nuevo de esta compañía se llama BlackBerry 7 e incluye varias características y servicios nuevos muy interesantes, así como algunas mejoras en las características existentes.

Se puede utilizar la voz para buscar ayuda, contactos, documentos, imágenes, vídeos y mucho más en su smartphone BlackBerry y en Internet. Para obtener más información, consulte Buscar un elemento utilizando la función de búsqueda por voz.

Personalización de la pantalla de inicio, aún más ocultando los paneles que no utiliza con frecuencia, y ocultando los iconos en paneles específicos o en todos los paneles. Para obtener más información, consulte Mostrar u ocultar un panel de la pantalla de inicio y Mostrar, ocultar o encontrar el icono de una aplicación.

Mejoras en la galería de imagen, cuando gira imágenes en formato JPEG y PNG, éstas se guardan automáticamente en la vista girada.
Ordene las imágenes de la más nueva a la más antigua, o de la más antigua a la más nueva, para ver una presentación de diapositivas en el orden en que se tomaron las imágenes.
Ahora puede ver las imágenes en una presentación de diapositivas mediante transiciones como el deslizamiento, el zoom o la panorámica. Para obtener más información, consulte Cambiar las opciones de presentación de diapositivas.

Pros


Perfecto para el uso de correo electrónico, Blackberry destaca también por los aspectos de seguridad y por sus teclados QWERTY que, al estilo de un teclado de PC, permiten una escritura muy rápida.

Contras


No se puede comparar su tienda de aplicaciones con las de Android o iTunes.
Tampoco existen tantas posibilidades de elección en cuanto a dispositivos y el potencial multimedia no es su fuerte principal.

Estadísticas


Antes de que aparecieran los sistemas operativos móviles como tales, la mayoría de las compañías tenían sus propias versiones de software embebido, la mayoría basado en Java MIPS; poco a poco estos sistemas han comenzado a verse desplazados y casi han desaparecido por completo y se pueden ver solo en aquellos dispositivos de años anteriores y que hasta la fecha siguen funcionando. En la siguiente gráfica se observa la cuota de mercado, el gran vencedor es Android gracias al gran alcance que este tiene por estar presente en los dispositivos de la mayoría de las compañías de telefonía.



Referencias