Páginas

domingo, 22 de abril de 2012

[MDE Lab] Accesibilidad y Usabilidad

Una de las grandes preocupaciones de las empresas que desarrollan tecnología es la usabilidad. En la actualidad se destina una inversión importante para cubrir este rubro y parece que se esta logrando bien. Sin embargo, los dispositivos móviles, debido a su reducido tamaño, son un reto ya que muchas veces no es posible montar en ellos todos los perifericos que en una PC si es posible. Entonces, ¿qué consideraciones se pueden tomar al momento de hablar de usabilidad y accesibilidad en dispositivos móviles?


Conceptos


Usabilidad

Todo objeto y dispositivo que es creado tiene una funcionalidad, por otra parte, también existe un componente que es la manera a traves de la cual los usuarios acceden a esa funcionalidad. La usabilidad estudia este componente.
Existen varios conceptos involucrados dentro de la usabilidad:
  • Efectividad: Es la precisión y la plenitud con las que los usuarios alcanzan los objetivos especificados. A esta idea van asociadas la facilidad de aprendizaje (en la medida en que este sea lo más amplio y profundo posible), la tasa de errores del sistema y la facilidad del sistema para ser recordado (que no se olviden las funcionalidades ni sus procedimientos).
  • Eficiencia: Los recursos empleados en relación con la precisión y plenitud con que los usuarios alcanzan los objetivos especificados. A esta idea van asociadas la facilidad de aprendizaje (en tanto que supone un coste en tiempo; igualmente, si se requiere un acceso continuo a los mecanismos de ayuda del sistema), la tasa de errores del sistema y la facilidad del sistema para ser recordado (una asimilación inapropiada puede traducirse en errores de usuario).
  • Satisfacción: El nivel de ausencia de incomodidad y la actitud positiva en el uso del producto. Se trata, pues, de un factor subjetivo.
La usabilidad, hace referencia, a la rapidez y facilidad con que las personas llevan cabo sus tareas propias a través del uso del producto objeto de interés, idea que descansa en cuatro puntos:
  • Usabilidad significa enfocarse en los usuarios. Para desarrollar un producto usable, se tienen que conocer, entender y trabajar con las personas que representan a los usuarios actuales o potenciales del producto.
  • Las personas utilizan los productos para incrementar su propia productividad. Un producto se considera fácil de aprender y usar en términos del tiempo que toma el usuario para llevar a cabo su objetivo, el número de pasos que tiene que realizar para ello, y el éxito que tiene en predecir la acción apropiada para llevar a cabo.
  • Los usuarios son gente ocupada intentando llevar a cabo una tarea. Se va a relacionar usabilidad con productividad y calidad. El hardware y el software son las herramientas que ayudan a la gente ocupada a realizar su trabajo y a disfrutar de su ocio.
  • Son los usuarios, y no los diseñadores y los desarrolladores, los que determinan cuando un producto es fácil de usar.

Usabilidad en dispositivos móviles


Aspecto Físico

Uno de las limitantes mas grandes es el tamaño de un dispositivo móvil y el espacio que hay para colocar los objetos. En el se englobal varios aspectos:
  • Tamaño de la Pantalla: Participantes con pantallas de mayor resolución y tamaño realizan mas eficientemente sus tareas con una rapidez también mayor. Los usuarios con pantallas reducidas tienden a gastar más tiempo localizando información, navegando a través de la interfaz. Se recomienda entonces englobar de mejor manera la información en menos pantallas, reduciendo la cantidad de clicks y desplazamientos que el usuario necesita realizar, asi como incluir opciones de búsqueda.
  • Tamaño del Texto: Lo suficientemente grande, es altamente recomendado incluir opciones de zoom.
  • Tamaño de los controles: La entrada de datos y el control de interfaces ha sido uno de los problemas mejor atacados. En las pantallas táctiles, los botones han de lo suficientemente grandes para evitar que el usuario toque accidentalmente otras opciones. Asi pues, el uso de gestos táctiles han eliminado de la pantalla gran cantidad de controles.


Movilidad

Los usuarios con un dispositivo móvil realizan sus actividades en todas partesm caminando por la calle, manejando un automóvil, sentados, en el transporte público, o esperando en un restaurante; y a su vez, interactuando con muchas personas y demas etímulos.


La aplicación debe vencer esos estímulos, asi como el constante movimiento de las personas y de vehículos alrededor, además de las interacciones con otras personas. También, ya que la aplicación corre en una pantalla pequeña, cuenta con un impacto visual menor, y es más difícil atraer la atención a los usuarios que con una computadora o laptop.

Una sola mano

Los usuarios estarán realizando varias actividades que requieren su atención, pero también el uso de una mano. Por ejemplo si una persona esta tomando alguna bebida, cargando bolsas, etc. Usar una aplicación móvil con una sola mano y si la persona descubre que no es posible usar dicha aplicación en ese caso, lo que puede impedir que la usen hasta que tengan total atención en ella.
Por lo tanto, la operación de las aplicaciones usando una sola mano es una consideración mayor para las aplicaciones móviles.


Accesibilidad



El concepto de Accesibilidad hace referencia al conjunto de características que debe presentar un entorno, producto o servicio para ser utilizable en condiciones de confort, seguridad e igualdad por todas las personas y, en particular, por aquellas que tienen alguna discapacidad .

Aquí se intentan atacar 3 frentes principales
  • Visión: Esta discapacidad puede ir desde un fallo visual hasta una perdida total de la visión, en cualquier caso no se permite el aprovachamiento completo del dispositivo. 
    Otro problema es que algunas personas con esta discapacidad no pueden distinguir algunos colores o combinaciones de colores.
  • Audición: Los problemas de audición pueden presentarse levemente, parcialmente o sordera total. 
    En el caso de dispositivos móviles el uso de imágenes, metáforas y diagramas es de gran utilidad, así como la posibilidad de incluir vídeos.
  • Movilidad: Abarca los problemas de coordinación o manipulación lo cual hace que se dificulte o se impida la utilización de los objetos. Esta discapacidad puede ir desde una falta de un miembro hasta problemas nerviosos que afectan a estos mismos.
  • Edad Avanzada: Son uno de los frentes mas importantes para las empresas y por lo general son las personas mas renuentes a utilizar la tecnología debido a la dificultad que les puede llevar. Además se juntan problemas visuales, auditivos y motores.

Herraminientas

Discapacidad Auditiva
  • Lazo de inducción: Se trata de un filtro de ruidos para evitar las interferencias electromagnéticas, que en combinación con los audífonos, pueden resultar muy molestas a la hora de mantener una conversación.
  • Alertas visuales y por vibrador para indicar que se está recibiendo una llamada o un mensaje de texto.
  • Vídeollamadas para que personas con falta total de audición puedan comunicarse a través del lenguaje de signos.

Discapacidad Visual
  • Narradores de voz
  • Teclados con marcas sensibles al tacto para guiar al usuario.
  • Señales sonoras para todas las acciones, incluyendo la narración de todas las teclas que se pulsan.
  • Pantalla retroiluminada
  • Comandos de voz.
  • Tonos de llamada diferentes para cada contacto
  • Ajustes en el contraste de la pantalla y el tamaño de las fuentes.

Movilidad Reducida
  • Comandos de voz para activar las funciones más habituales como llamar o recibir llamadas.
  • Atajos de teclado.
  • Botones periféricos con comandos programados.
  • La función “manos libres”.
  • Predicción de texto al escribir para reducir las pulsaciones necesarias.
  • La función de responder con cualquier tecla.

Edad Avanzada
  • Tamaño de teléfono adecuado para facilitar la manipulación
  • Menú gráfico, con iconos fáciles de comprender
  • Asociación de imágenes a los contactos
  • Buen contraste entre caracteres y fondo de tecla
  • Ademas, se pueden aplicar las consideraciones de los problemas visuales, auditivos y motrices


Referencias

[Emb Comb Lab] Programando en Arduino

Bueno, en esta entrada tratare de abarcar un poco sobre la programación en Arduino.

Entorno de desarrollo


Para programar en Arduino es necesario descargar el entorno de desarrollo (IDE). Hay versiones para Windows, MAC y LINUX.

En mi caso, descargue la versión para Linux 64bits. No es necesario compilar simplemente seguimos estos pasos:
  1. Instalar librerias:
    sudo apt-get install gcc-avr avr-libc
  2. Vamos a la pagina oficial de Arduino y descargamos la versión necesitemos. Enlace: Arduino Software
  3. Una vez que la descargamos simplemente la descomprimirmos.
  4. Desde la terminal, nos ubicamos en la carpeta que acabamos de descomprimir y corremos el archivo arduino, se vera algo asi:
  5. ... y a su vez se iniciara el entorno gráfico:
Lo primero que tenemos que hacer para comenzar a trabajar con el entorno de desarrollo de arduino es configurar las comunicaciones entre la placa Arduino y el PC. Para ello deberemos abrir en el menú "Tools" la opción "Serial Port". En esta opción deberemos seleccionar el puerto serie al que está conectado nuestro Arduino.

Para verificar que lo hemos hecho bien, podemos probar alguno de los ejemplos incluidos, utilizaremos el ejemplo Blink: FILE > EXAMPLES > 1.Basics > Blink
El ejemplo "Blink" lo único que hace es parpadear un LED que está colocado en el pin número 13 de la placa. Lo que hay que hacer para subir el programa a la placa Arduino, primero comprobamos que el código fuente es el correcto con el botón "Verify". Si todo va bien deberá aparecer un mensaje en la parte inferior de la interfaz indicando "Done compiling". Una vez que el código ha sido verificado procederemos a cargarlo en la placa. Para ello tenemos que pulsar el botón de reset de la placa e inmediatamente después pulsar el botón que comienza la carga.


El código


La estructura básica de programación de Arduino es bastante simple y divide la ejecución en dos partes: setup y loop.

Setup() constituye la preparación del programa y loop() es la ejecución.

En la función Setup() se incluye la declaración de variables y se trata de la primera función que se ejecuta en el programa.
Esta función se ejecuta una única vez y es empleada para configurar el pinMode (p. ej. si un determinado pin digital es de entrada o salida) e inicializar la comunicación serie. La función loop() incluye el código a ser ejecutado continuamente (leyendo las entradas de la placa, salidas, etc.).
void setup() { 
   inMode(pin, OUTPUT);  // Establece 'pin' como salida 
} 
void loop() {
   digitalWrite(pin, HIGH); // Activa 'pin'
   delay(1000);   // Pausa un segundo 
   digitalWrite(pin, LOW);  // Desactiva 'pin'
   delay(1000);
}
Cada instrucción acaba con ; y los comentarios se indican con //. Al igual que en C se pueden introducir bloques de comentarios con /* ... */.

Caracteristicas del Código



Tipos de Datos

Arduino permite manejar los siguientes tipos de datos:
  • Byte: Almacena un valor numérico de 8 bits. Tienen un rango de 0-255.
  • Int: Almacena un valor entero de 16 bits con un rango de 32,767 a -32,768.
  • Long: Valor entero almacenado en 32 bits con un rango de 2,147,483,647 a -2,147,483,648.
  • Float: Tipo coma flotante almacenado en 32 bits con un rango de 3.4028235E+38 a -3.4028235E+38.
  • Arrays: Se trata de una colección de valores que pueden ser accedidos con un número de índice (el primer valor del índice es 0). Ejemplos:
    • Definición y asignación. int myArray[] = {value0, value1, value2...}
    • Definición. int myArray[5]; // declara un array de 6 enteros
    • Asignación del cuarto componente. myArray[3] = 10;
    • Recuperar el cuarto componente y asignarlo a x. x = myArray[3];


Variables

Una variable debe ser declarada y opcionalmente asignada a un determinado valor. En la declaración de la variable se indica el tipo de datos que almacenará (int, float, long)
int inputVariable = 0; 
Una variable puede ser declarada en el inicio del programa antes de setup(), localmente a una determinada función e incluso dentro de un bloque como pueda ser un bucle. El sitio en el que la variable es declarada determina el ámbito de la misma. Una variable global es aquella que puede ser empleada en cualquier función del programa. Estas variables deben ser declaradas al inicio del programa (antes de la función setup()).
int v;    // 'v' es visible en todo el programa
void setup() { 
   // no se requiere setup 
} 
void loop() { 
   for (int i=0; i<20;) // 'i' es visible solo en el bucle
   i++; 
   float f; // 'f' es visible únicamente en la función loop()
}
Constantes
  • HIGH / LOW: niveles alto y bajo en pines. Los niveles altos son aquellos de 3 voltios o más.
  • INPUT / OUTPUT: entrada o salida
  • true / false


Funciones

Una función es un bloque de código identificado por un nombre y que es ejecutado cuando la función es llamada. La declaración de una función incluye en primer lugar el tipo de datos que devuelve la función (e.j. int si lo que devuelve es un valor entero).
Después del tipo de datos se especifica el nombre de la función. Por ejemplo:
int functionName(int param1, float param2, char param3) { 
   //All the statements
}


Operadores

  • Aritméticos: +, -, *, /, %
  • Asignación: =
  • Operadores de comparación: ==, !=, <, >, <=, >=
  • Operadores Booleanos: &&, ||, !
  • Operadores de acceso a punteros: *, &
  • Operadores de bits: &, |, ^, ~, <<, >>
  • Operadores compuestos:
    • Incremento/decremento de variables: ++, --li
    • Asignación y operación: +=, -=, *=, /=, &=, |=li


Condiciones

IF, IF ELSE, ELSE IF
if (algunaCondicion) {
   // ejecutar si la condicion es verdadera
}
if (algunaCondicion) {
   // ejecutar si la condicion es verdadera
} else {
   // ejecutar si la condicion es falsa
}
if (algunaCondicion) {
   // ejecutar si la condicion es verdadera
} else if (otraCondicion) {
   // ejecutar si la primera y segunda condiciones son verdaderas
}
FOR
for (inicializacion; condicion; incremento) {
   // codigo
}
WHILE
for (inicializacion; condicion; incremento) {
   // codigo
}
DO... WHILE
do {
    // codigo
} while (condicionDePrueba);
SWITCH
switch (variable) {
    case 1:
      // ejecutar cuando la variable sea igual a 1
      break;
    case 2:
      // ejecutar cuando la variable sea igual a 1
      break;
    default: 
      // si ninguna de las anteriores es valida
      // ejecutar este código
      // default es opcional
  }


Entradas y salidas digitales y analógicas


  • Función pinMode(pin, mode): Función usada en la function setup() para configurar un pin dado para comportarse como INPUT o OUTPUT. Ej. pinMode(pin, OUTPUT); configura el pin número 'pin' como de salida. Los pines de Arduino funcionan por defecto como entradas, de forma que no necesitan declararse explícitamente como entradas empleando pinMode().
  • Función digitalRead(pin): Lee el valor desde un pin digital específico. Devuelve un valor HIGH o LOW. El pin puede ser especificado con una variable o una constante (0-13). Ej. v = digitalRead(Pin);
  • Funcion digitalWrite(pin, value): Introduce un nivel alto (HIGH) o bajo (LOW) en el pin digital especificado. De nuevo, el pin puede ser especificado con una variable o una constante 0-13. Ej. digitalWrite(pin, HIGH);
  • Función analogRead(pin): Lee el valor desde el pin analógico especificado con una resolución de 10 bits. Esta función solo funciona en los pines analógicos (0-5). El valor resultante es un entero de 0 a 1023. Los pines analógicos, a diferencia de los digitales no necesitan declararse previamente como INPUT o OUTPUT.
  • Función analogWrite(pin, value): Escribe un valor pseudo-analógico usando modulación por ancho de pulso (PWM) en un pin de salida marcado como PWM. Esta función está activa para los pines 3, 5, 6, 9, 10, 11. Ej analogWrite(pin, v); // escribe 'v' en el 'pin' analógico. Puede especificarse un valor de 0 - 255. Un valor 0 genera 0 V en el pin especificado y 255 genera 5 V. Para valores de 0 a 255, el pin alterna rápidamente entre 0 V y 5 V, cuanto mayor sea el valor, más a menudo el pin se encuentra en HIGH (5 V). Por ejemplo, un valor de 64 será 0 V tres cuartas partes del tiempo y 5 V una cuarta parte. Un valor de 128 será 0 V la mitad del tiempo y 5 V la otra mitad. Un valor de 192 será 0 V una cuarta parte del tiempo y 5 V tres cuartas partes.


Algunas funciones utiles


  • delay(ms): Realiza una pausa en el programa la cantidad de tiempo en milisegundos especificada en el parámetro (máximo 1000, mínimo 1).
  • millis(): Devuelve la cantidad de milisegundos que lleva la placa Arduino ejecutando el programa actual como un valor long unsigned. Después de de 9 horas el contador vuelve a 0.
  • min(x,y). max(x,y): Devuelve el mínimo y el máximo respectivamente de entre sus parámetros.
  • randomSeed(seed): Especifica un valor o semilla como el punto de inicio para la función random(). Este parámetro debe ser realmente aleatorio y para ello puede emplearse la función millis() o incluso analogRead() para leer ruido eléctrico desde una entrada analógica.
  • random(max), random(min, max): Esta función devuelve un valor aleatorio entre el rango especificado.


Funciones del puerto serial


  • Serial.begin(rate): Abre un Puerto serie y especifica la velocidad de transmisión. La velocidad típica para comunicación con el ordenador es de 9600 aunque se pueden soportar otras velocidades.
  • Serial.println(data): Imprime datos al puerto serie seguido por un retorno de línea automático. Este comando tiene la misma forma que Serial.print() pero este último sin el salto de línea al final. Este comando puede emplearse para realizar la depuración de programas. Para ello puede mandarse mensajes de depuración y valores de variables por el puerto serie. Posteriormente, desde el entorno de programación de Arduino, activando el "Serial Monitor" se puede observar el contenido del puerto serie, y, por lo tanto, los mensajes de depuración. Para observar correctamente el contenido del puerto serie se debe tener en cuenta que el "Serial Monitor" y el puerto serie han de estar configurados a la misma velocidad (Para configurar la velocidad del puerto serie se hará con el comando Serial.begin(rate)).
  • Serial.read(): Lee o captura un byte (un caracter) desde el puerto serie. Devuelve -1 si no hay ningún carácter en el puerto serie.
  • Serial.available(): Devuelve el número de caracteres disponibles para leer desde el puerto serie.


Referencia

[Emb Com Lab] Arduino

Basicamente, ARDUINO es una plataforma de desarrollo libre. Esta basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica.

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños.
Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa.

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

Componentes



ColormapDescripción
Terminal de referencia analógica
Tierra digital
Terminales digitales 2-13
Terminales digitales 0-1/ E/S serie TX/RX. Estos pines no se pueden utilizar como e/s digitales
Botón de reinicio - S1
Programador serie en circuito "In-circuit Serial Programmer" o "ICSP"
Terminales de entrada analógica 0-5
Terminales de alimentación y tierra
Entrada de alimentación externa (9-12VDC) - X1
Selector de alimentación externa o por USB. En las versiones nuevas de Arduino la selección de alimentacion es automática por lo que puede que no tengas este selector.
USB (utilizado para subir programas a la placa y para comunicaciones serie entre la placa y el ordenador; puede utilizarse como alimentación de la placa)

Microcontroladores Utilizados

IC1 Atmega168 Atmega328 Atmega1280
Voltaje operativo 5 V 5 V 5 V
Voltaje de entrada recomendado 7-12 V 7-12 V 7-12 V
Voltaje de entrada límite 6-20 V 6-20 V 6-20 V
Pines de entrada y salida digital 14 (6 proporcionan PWM) 14 (6 proporcionan PWM) 54 (14 proporcionan PWM)
Pines de entrada analógica 6 6 16
Intensidad de corriente 40 mA 40 mA 40 mA
Memoria Flash 16KB (2KB reservados para el bootloader) 32KB (2KB reservados para el bootloader) 128KB (4KB reservados para el bootloader)
SRAM 1 KB 2 KB 8 KB
EEPROM 512 bytes 1 KB 4 KB
Frecuencia de reloj 16 MHz 16 MHz 16 MHz


Terminales Digitales: Las terminales digitales de una placa Arduino pueden ser utilizados para entradas o salidas de propósito general a través de los comandos pinMode(), digitalRead(), y digitalWrite(). Cada terminal tiene una resistencia pull-up que puede activarse o desactivarse utilizando DigitalWrite() (con un valor de HIGH o LOW, respectivamente) cuando el pin esta configurado como entrada. La corriente máxima por salida es 40 mA.
  • Serial: 0 (RX) y 1 (TX): Utilizado para recibir (RX) y transmitir (TX) datos serie TTL.
  • Interrupciones externas: 2 y 3: Estas terminales pueden ser configuradas para disparar una interrupción con un valor bajo, un pulso de subida o bajada, o un cambio de valor.
  • PWM: 3, 5, 6, 9, 10, y 11: Proporcionan salidas PWM de 8 bit con la función analogWrite(). En placas con ATmega8, las salidas PWM solo están disponibles en los pines 9, 10, y 11.
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Estas terminales soportan comunicación SPI. Aunque esta funcionalidad esta proporcionada por el hardware, no está incluida actualmente el el lenguaje Arduino.
  • LED: 13: Conectado al pin digital 13, cuando el pin tiene valor HIGH, el LED está encendido, cuando el pin está en LOW, está apagado

Pines analogicos: En adición a las funciones específicas listadas abajo, los pines de entrada analógicos soportan conversiones analógico-digital (ADC) de 10 bit utilizando la función analogRead(). Las entradas analógicas pueden ser también usadas como pines digitales: entrada analógica 0 como pin digital 14 hasta la entrada analógica 5 como pin digital 19.
  • I2C: 4 (SDA) y 5 (SCL): Soportan comunicaciones I2C (TWI) utilizando la librería Wire

Alimentación
  • VIN (9V): Es el voltaje de entrada a la placa Arduino cuando se está utilizando una fuente de alimentación externa
  • 5V: La alimentación regulada utilizada para alimentar el microcontrolador y otros componentes de la placa. Esta puede venir de VIN a través de un regulador en placa o ser proporcionada por USB u otra fuente regulada de 5V.
  • GND: Pines de tierra
  • AREF: Referencia de voltaje para las entradas analógicas.
  • Reset: Pon esta línea a LOW para resetear el microcontrolador


Tipos de Arduino


Arduino Duemilanove



Es una placa con microcontrolador basada en el ATmega168 o ATmega328. Tiene 14 pines con entradas/salidas digitales (6 de las cuales pueden ser usadas como salidas PWM), 6 entradas analógicas, un cristal oscilador a 16Mhz, conexión USB, entrada de alimentación, una cabecera ISCP, y un botón de reset. Contiene todo lo necesario para utilizar el microcontrolador; simplemente conectalo a tu ordenador a través del cable USB o aliméntalo con un transformador o una batería para empezar a trabajar con el. "Duemilanove" significa 2009 en italiano que fue el año cuando salio al mercado. El Duemilanove es el mas popular en dentro de las series de placas con USB

MicrocontroladorATmega368 o ATmega168
Voltaje de funcionamiento5V
Voltaje de entrada (recomendado)7-12V
Voltaje de entrada (limite)6-20V
Pines E/S digitales14 (6 proporcionan salida PWM)
Pines de entrada analógica6
Intensidad por pin40 mA
Intensidad en pin 3.3V50 mA
Memoria Flash16 KB (ATmega168) o 32 KB (ATmega328) de las cuales 2 KB las usa el gestor de arranque (bootloader)
SRAM1 KB (ATmega168) o 2 KB (ATmega328)
EEPROM512 bytes (ATmega168) o 1 KB (ATmega328)
Velocidad de reloj16 MHz


Arduino Mega



El Arduino Mega es una placa microcontrolador basada ATmeg1280. Tiene 54 entradas/salidas digitales (de las cuales 14 proporcionan salida PWM), 16 entradas digitales, 4 UARTS (puertos serie por hardware), un cristal oscilador de 16MHz, conexión USB, entrada de corriente, conector ICSP y botón de reset. Contiene todo lo necesario para hacer funcionar el microcontrolador; simplemente conectálo al ordenador con el cable USB o aliméntalo con un trasformador o batería para empezar. El Mega es compatible con la mayoría de shields diseñados para el Arduino Duemilanove o Diecimila.

MicrocontroladorATmega1280
Voltaje de funcionamiento5V
Voltaje de entrada (recomendado)7-12V
Voltaje de entrada (limite)6-20V
Pines E/S digitales54 (14 proporcionan salida PWM)
Pines de entrada analógica16
Intensidad por pin40 mA
Intensidad en pin 3.3V50 mA
Memoria Flash128 KB de las cuales 4 KB las usa el gestor de arranque(bootloader)
SRAM8 KB
EEPROM4 KB
Velocidad de reloj16 MHz


Arduino Bluetooth



Es una placa Arduino con el módulo Blueetooh incorporado, que permite la comunicación inalámbrica.
El uso de un convertidor DC-DC,permite que la placa sea alimentada con un mínimo de 1,2 V, pero con un máximo de 5,5 V. Los voltajes superiores o la polaridad invertida en la fuente de alimentación estropeará la placa.
Un ATmega168 para montaje en superficie (como con el Arduino Mini). Esto duplica la cantidad de espacio disponible para tus sketches y agrega tres pines PWM más y dos entradas analógicas.
El Pin 7 está conectado al pin de reinicio (reset) del módulo bluetooth.
Utiliza sólo la comunicación serie a 115200 baudios, que es la velocidad a la que el módulo ha sido configurado para usar.

Arduino Nano



El Arduino Nano es una pequeña y completa placa basada en el ATmega328 (Arduino Nano 3.0) o ATmega168 (Arduino Nano 2.x) que se usa conectándola a una protoboard. Tiene más o menos la misma funcionalidad que el Arduino Duemilanove, pero con una presentación diferente. No posee conector para alimentación externa, y funciona con un cable USB Mini-B en vez de el cable estandar. El nano fue diseñado y está siendo producido por Gravitech.

MicrocontroladorAtmel ATmega168 o ATmega328
Voltaje de funcionamiento5V
Voltaje de entrada (recomendado)7-12V
Voltaje de entrada (limite)6-20V
Pines E/S digitales14 (de los cuales 6 proveen de salida PWM)
Pines de entrada analógica8
Corriente máx por cada PIN de E/S40 mA
Memoria Flash16 KB (ATmega168) o 32 KB (ATmega328) de los cuales 2KB son usados por el bootloader
SRAM1 KB (ATmega168) o 2 KB (ATmega328)
EEPROM512 bytes (ATmega168) o 1 KB (ATmega328)
Velocidad de reloj16 MHz
Dimensiones18,5mm x 43.2mm


Arduino Mini



Arduino Mini es una placa con un pequeño microcontrolador basada en el ATmega168, pensada para ser usada en placas de prototipado y donde el espacio es un bien escaso. Cuenta con 14 entradas/salidas digitales (de las cuales 6 pueden ser usadas como salidas PWM ), 8 entradas analógicas y un cristal de 16 MHZ. Puede ser programada con el adaptador Mini USB u otros adpatadores USB o RS232 a TTL serial

MicrocontroladorATmega168
Voltaje de funcionamiento5V
Voltaje de entrada (recomendado)7-9V
Voltaje de entrada (limite)6-20V
Pines E/S digitales14 (de los cuales 6 proveen de salida PWM)
Pines de entrada analógica8 (de las cuales 4 se extienden en pines)
Corriente máx por cada PIN de E/S40 mA
Memoria Flash16 KB (de las cuales 2 KB son usadas por el bootloader)
SRAM1 KB
EEPROM512 bytes
Velocidad de reloj16 MHz


LilyPad Arduino



El LilyPad Arduino es una placa con microcontrolador diseñado para prendas y e-textiles. Puede utilizar con complementos similares como fuentes de alimentación, sensores actuadores unidos por hilo conductor. La placa esta basada en el ARmega168V (la versión de baja consumo del ATmega168), o el ATmega328V. El LilyPad Arduino ha sido diseñado y desarrollado por Leah Buechley y SparkFun Electronics.

MicrocontroladorATmega168V
Voltaje de funcionamiento2.7-5.5 V
Voltaje de entrada2.7-5.5 V
Pines E/S digitales14 (de los cuales 6 proveen de salida PWM)
Pines de entrada analógica6
Corriente máx por cada PIN de E/S40 mA
Memoria Flash16 KB (de las cuales 2 KB son usadas por el bootloader)
SRAM1 KB
EEPROM512 bytes
Velocidad de reloj8 MHz


Arduino Serial



Es una placa básica que utiliza una interfaz RS232 para comunicarse con el ordenador o para la carga de sketches. Esta placa es fácil de montar, incluso como ejercicio de aprendizaje. Se ha diseñado para utilizar los componentes más simples posibles, de manera que sea fácil de construir, incluso si buscas las componentes en la tienda de la esquina.

Arduino Shields


Los Shields son placas que se colocan encima de la placa Arduino y que amplían una nueva función para que sea controlada desde Arduino, para controlar diferentes aparatos, adquirir datos, etc.

XBEE Shield



La Xbee shield permite a una placa Arduino comunicarse de forma inalámbrica usando Zigbee. Está basada en el módulo Xbee de MaxStream. El módulo puede comunicarse hasta 100ft (30 metros) en interior o 300ft (90 metros) al aire libre (en visión directa). Puede ser usado como reemplazo del puerto serie/usb o puedes ponerlo en modo de comandos y configurarlo para una variedad de opciones de redes broadcast o malladas. La shield tiene pistas desde cada pin del Xbee hasta un orificio de soldar. También provee conectores hembra para usar los pines digitales desde 2 hasta 7 y las entradas analógicas, las cuales están cubiertas por la shield (los pines digitales de 8 a 13 no están cubiertos por la placa, así que puedes usar los conectores de la placa directamente).

Ethernet Shield



La Arduino Ethernet Shield permite a una placa Arduino conectarse a internet. Está basada en el chip ethernet Wiznet W5100. El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP. Soporta hasta cuatro conexiones de sockets simultáneas. Usa la librería Ethernet para escribir programas que se conecten a internet usando la shield.
Por favor notar que el actual diseño de la ethernet shield no es compatible con el Arduino Mega.
La ethernet shield dispone de unos conectores que permiten conectar a su vez otras placas encima y apilarlas sobre la placa Arduino.
Arduino usa los pines digitales 10, 11, 12, y 13 (SPI) para comunicarse con el W5100 en la ethernet shield. Estos pines no pueden ser usados para e/s genéricas.
La shield provee un conector ethernet estándar RJ45
El botón de reset en la shield resetea ambos, el W5100 y la placa Arduino.

La shield contiene un número de LEDs para información:
  • PWR: indica que la placa y la shield están alimentadas
  • LINK: indica la presencia de un enlace de red y parpadea cuando la shield envía o recibe datos
  • FULLD: indica que la conexión de red es full duplex
  • 100M: indica la presencia de una conexión de red de 100 Mb/s (de forma opuesta a una de 10Mb/s)
  • RX: parpadea cuando la shield recibe datos
  • TX: parpadea cuando la shield envía datos
  • COLL: parpadea cuando se detectan colisiones en la red
El jumper soldado marcado como "INT" puede ser conectado para permitir a la placa Arduino recibir notificaciones de eventos por interrupción desde el W5100, pero esto no está soportado por la librería Ethernet. El jumper conecta el pin INT del W5100 al pin digital 2 de Arduino.
El slot SD en la shield no está soportado por el software Arduino.

Referencias

viernes, 6 de abril de 2012

[MDE Lab] Tarjeta SIM


Una tarjeta SIM (Módulo de Identificación del Suscriptor) es una tarjeta inteligente desmontable usada en teléfonos móviles que almacena de forma segura la clave de servicio del suscriptor usada para identificarse ante la red, de forma que sea posible cambiar la línea de un terminal a otro simplemente cambiando la tarjeta.

El uso de la tarjeta SIM es obligatorio en las redes GSM. Su equivalente en las redes UMTS se denomina UICC (Tarjeta Universal de Circuito Integrado), siendo más popular el RUIM (Módulo de Identidad de Usuario Desmontable) en los teléfonos CDMA.

Las especificaciones aplicables a las tarjetas SIM son:
- GSM 11.11: Especificación de la interfaz SIM-ME (Mobile Equipment, ‘Equipamiento Móvil’).

- GSM 11.14: Especificación del SIM Application Toolkit (‘Herramientas de Aplicación SIM’) para la interfaz SIM-ME.

¿Qué se guarda en la tarjeta SIM?


Las tarjetas SIM almacenan información específica de la red usada para autenticar e identificar a los suscriptores en ella, siendo la más importante el ICC-ID, el IMSI, la clave de autenticación (Ki) y la identificación de área local (LAI). La tarjeta SIM también almacena otros datos específicos del operador como el número del SMSC (centro de servicio de mensajes cortos), el nombre del proveedor de servicio (SPN), los números de servicio de marcado (SDN) y las aplicaciones de servicios de valor añadido (VAS). Las correspondientes descripciones están disponibles en la especificación GSM 11.11.

ICC-ID

Cada SIM se identifica internacionalmente por su ICC-ID (en inglés) (Integrated Circuit Card ID, ‘Identificador Internacional de la Tarjeta de Circuitos’). Los ICC-IDs se almacenan en las tarjetas SIM y también se graban o imprimen sobre el cuerpo de plástico de las mismas en un proceso de personalización. Además, cada ICC cuenta con un número de identificación personal de 18 dígitos.

IMSI

Las tarjetas SIM se identifican en sus redes móviles individuales mediante un IMSI (International Mobile Subscriber Identify, ‘Identidad Internacional del Suscriptor Móvil’) único. Los operadores de telefonía móvil conectan las llamadas a teléfonos móviles y se comunican con sus tarjetas SIM comercializadas usando su IMSI.

Clave de autenticación (Ki)

La clave de autenticación (Ki, Authentication key) es un valor de 16 bytes usado para autenticar las tarjetas SIM en la red móvil. Cada tarjeta SIM tiene una Ki única asignada por el operador durante el proceso de personalización. La Ki también se almacena en una base de datos específica llamada AuC(acrónimo de Authentication Center) que está implementada como parte integral de la HLR(acrónimo de Home Location Register) de la red del operador.

Proceso de Autentificacion de Red


Se debe introducir una tarjeta SIM en el móvil para que conecte a la red, excepto para llamadas básicas de emergencia , para identificación, para realizar llamadas o utilizar otros servicios de pago.
  1. Cuando el teléfono se enciende envía su IMSI al operador de la red solicitando acceso y autenticación.
  2. El operador de la red busca en su base de datos el IMSI y la clave de autenticación (Ki) relacionada.
  3. El operador de la red genera un número aleatorio (RAND) y lo firma con la Ki de la SIM, generando así un número conocido como SRES_1 (Signed Response 1, ‘Respuesta Firmada 1’).
  4. El móvil cliente de la red envía el RAND a la tarjeta SIM, que también lo firma con su Ki y envía el resultado (SRES_2) de vuelta al operador de la red.
  5. El operador de la red compara su SRES_1 con el SRES_2 generado por la tarjeta SIM. Si los dos números coinciden, la SIM es autenticada y se le concede acceso a la red.
Identificación de área local

La tarjeta SIM almacena información del estado de la red que se envía desde la misma, como la identificación de área local (LAI, Location Area Identify). Las redes de los operadores están divididas en áreas locales, cada una de las cuales tiene un número LAI único. Cuando el terminal móvil cambia su ubicación de un área local a otra almacena su nuevo LAI en la tarjeta SIM y la envía al operador para informar a la red de su nueva localización. Si el terminal se apaga y se vuelve a encender, recuperará la información de la tarjeta SIM y buscará la LAI en la que estaba. Esto ahorra tiempo al evitar tener que buscar toda la lista completa de frecuencia como se haría por defecto.

Formatos





En origen, la SIM era del tamaño de una tarjeta de crédito. Para poder insertarla en un teléfono móvil se creó el estandar MiniSIM o GSM SIM mediante un troquel de 15×25 milímetros. Este estandar es el común que conocemos hoy como SIM, aunque en realidad no fue el primero.

En 2003, el ETSI (European Telecommunications Standard Institute) desarrolló la Mini-UICC, más conocida como MicroSIM. El objetivo de la MicroSIM era ampliar la memoria y mejorar la seguridad del sistema. También se recortó aún más el soporte de plástico hasta dejarlo en prácticamente el tamaño del conector, 12×15 milímetros.

Con este cambio, el ETSI pretendía crear un formato más apropiado para dispositivos muy pequeños. La GSMA, sin embargo, no apoyó la MicroSIM y el formato quedó en segundo plano hasta que Apple decidió incorporarlo en su iPad. La popularidad de este dispositivo impulsó el formato MicroSIM. Ahora ya puede verse en smartphones de otras compañías y es ofrecido como opción por casi todas las operadoras.

Nuevos Estandares


La miniaturización de los componentes de los smartphones está llevando a los fabricantes a desarrollar nuevas propuestas de formato para ganar espacio dentro de los terminales. La última de estas propuestas es la NanoSIM, que aún no ha sido aprobada por la ETSI.

Al cierre de este artículo, hay tres propuestas sobre la mesa para suceder a la MicroSIM y convertirse en nuevo estandar de la industria. La primera propuesta es de Apple y prácticamente consiste en eliminar por completo el plástico de la MicroSIM. En su favor tiene que es retrocompatible con los anteriores estándares mediante un sistema de adaptadores. En contra tiene que necesita de bandejas para insertarse en el terminal al carecer de superficie de sujección.

Los otros dos estándares pertenecen a Nokia y RIM, y son versiones no compatibles con las actuales SIM pero tecnológicamente muy avanzadas y similares en forma a las tarjetas MicroSD.

La ETSI ha propuesto la votación acerca del nuevo estandar debido a las recientes acusaciones cruzadas entre los distintos candidatos. A día de hoy, parece que la opción de Nokia es la favorita de la industria, con apoyos de Motorola e incluso de la propia RIM.


Referencias

[MDE Lab] Baterias

A grandes rasgos, una batería consiste en 2 terminales, uno positivo y uno negativo. Si conectamos ambas terminales por un cable, los electrones comenzarán a circular a través de todo el sistema.

Las baterías consisten en un recubrimiento metálico (capa externa), dentro del recubrimiento se encuentra un cátodo que conecta la terminal positiva y un ánodo que conecta la terminal negativa. Estos componentes, comúnmente llamados "electrodos" ocupan la mayor cantidad del espacio dentro de la batería y es donde las reacciones químicas ocurren.

El ánodo y el cátodo están separados por una barrera que previene que se toquen durante la reacción química, el separador recibe el nombre de "electrolito" y permite que la carga eléctrica fluya entre el cátodo y el ánodo.

El colector expulsa la corriente fuera de la batería.

Conceptos básicos


Conceptos básicos para entender a una batería:
  • Energía específica: es la cantidad de energía que la batería puede almacenar por unidad de peso. Cuanto más alta, mejor.
  • Potencia específica: es la potencia que la batería puede suministrar por unidad de peso. De nuevo, cuanto mayor es esta cifra, más aplicaciones posibles tiene la batería.
  • Eficacia (%): es la fracción de electricidad que devuelve la batería en proporción a la cantidad de electricidad que ha sido necesaria para cargarla. Cuanto más alta, mejor, idealmente el 100%. También es importante que una batería mantenga su eficacia en función del tiempo de almacenamiento.
  • Número de ciclos de carga-descarga: es el número de veces que la batería puede ser recargada para recobrar su capacidad completa después de su uso. Es una indicación de la duración de vida de la batería. De nuevo, cuanto más alto, mejor.
  • Tiempo de recarga normal: es el tiempo necesario para recargar completamente la batería. Cuanto más corto, mejor.
  • Tiempo de recarga rápida (50% y 99%): estos son los tiempos necesarios para recargar la batería a la mitad o al 99% de su capacidad. Esta característica es útil solamente si la recarga de la batería es lenta. Por supuesto, cuanto más corto sea este tiempo, mejor.

Funcionamiento


Las baterías recargables usan reacciones electroquímicas que son eléctricamente reversibles, es decir:

- Cuando la reacción transcurre en un sentido, se agotan los materiales de la pila mientras se genera una corriente eléctrica.

- Para que la reacción transcurra en sentido inverso, es necesaria una corriente eléctrica para regenerar los materiales consumidos.

Tipos de baterías


Existen 3 tipos principales de baterías recargables de uso doméstico:

Níquel Cadmio (NiCd)

Fueron muy utilizadas hace algunos años, en la actualidad han sido casi eliminadas en su totalidad del mercado debido al Cadmio.

El cadmio es un elemento tóxico, y fue prohibido para la mayoría de los usos por la Unión Europea en 2004.

Son las llamadas "baterías con memoria" y de ellas surgió el mito actual de tener que cargar las baterías por 12 horas cuando son nuevas, y de tener que descargarlas en su totalidad para poder volverlas a cargar.

Su vida útil se mide en ciclos, es decir: 1 ciclo = 1 carga y descarga. La vida media de las baterías de de 1000 a 1500 ciclos en condiciones estándar.

Níquel Hidruro Metálico

Es la evolución de las baterías NiCd y elimina el cadmio que, además de tóxico, es más costoso.

Estás baterías poseen una mayor capacidad de carga, entre 2 y 3 veces más que las baterías NiCd y presentan en menor medida el efecto de Memoria.

Poseen un ciclo de autodescarga más veloz que las baterías NiCd.

Su vida es menor, entre 500 y 700 ciclos y uno de los inconvenientes es el sobrecalentamiento de las mismas.

Iones de Litio

A pesar de su uso extendido, aún son un producto que se encuentra en anáisis y desarrollo, su fabricación madura con la evolución de la misma tecnología.

Son baterías mucho más pequeñas y ligeras con una alta capacidad de carga por unidad de peso y volumen. El efecto memoria no existe en éste tipo de baterias y tienen la capacidad de operar despues de un elevado número de ciclos de carga y descarga. Proporcionan altos voltages de funcionamiento. Permiten medir fácilmente la carga actual que tienen. Se autodescargan muy lentamente

A pesar de todas las maravillas que nos otorgan, son baterías que se degradan muy rápido y son sensibles a las altas temperaturas Además son más costosas de fabricar y también sufren del problema de sobrecalentamiento con el cual pueden inflamarse y explotar.

El Efecto Memoria y Pasivación


Las baterías modernas de Li-Ion (Iones de Litio) no sufren efecto memoria pero si el de pasivación.

El efecto memoria es un fenómeno que reduce la capacidad de las baterías con cargas incompletas. Se produce cuando se carga una batería sin haber sido descargada del todo: se crean unos cristales en el interior de estas baterías, a causa de una reacción química al calentarse la batería, bien por uso o por las malas cargas. Para prevenirlo no hace falta esperar a descargar totalmente la batería antes de realizar una carga; basta con que una de cada pocas cargas sea completa.

Entre las baterías que se ven afectadas por el efecto memoria se encuentran la batería de níquel cadmio (NiCd) y, en menor grado, la batería de níquel e hidruro metálico (NiMH). Por el contrario, las baterías de plomo y ácido o las de iones de litio apenas se ven afectadas por el mismo. Incluso en la baterías sin efecto memoria se recomienda una descarga completa seguida de una carga completa cada cierto tiempo. En las baterías de litio se recomienda efectuarla mensualmente, si se utilizan con asiduidad.

Otro fenómeno similar que afecta a las baterías de ión de litio es la pasivación que se produce cuando se deja la batería mucho tiempo sin usar o se hacen pequeñas cargas. La carga y descarga completa soluciona este efecto. La pasivación es una fina película de cloruro de litio (LiCl) en la superficie del ánodo (incluso es beneficiosa ya que evita su autodescarga). Va desapareciendo conforme la batería va siendo usada. Si la pasivación es excesiva, podría caer el voltaje por debajo del funcionamiento, si la energía requerida al principio de funcionamiento es muy grande (la pasivación se puede considerar como una resistencia interna de la batería), sólo entonces serían necesarias cargas y descargas. Es un fenómeno (poco documentado) que parece que se está dando bastante entre usuarios de cámaras digitales, sobre todo las Sony.

Cuidados


Las baterias recargables son muy delicadas, existen muchos mitos sobre sus cuidados y uso, sin embargo, nada puede evitar que se deterioren lamentablemente.

Existen algunas recomendaciones sencillas que se pueden seguir para extender un poco su vida.

- Es recomendable que permanezcan en un sitio fresco (15 °C), y evitar el calor.

- Cuando se vayan a almacenar mucho tiempo, se recomienda dejarlas con carga intermedia (40%). Asimismo, se debe evitar mantenerlas con carga completa durante largos períodos.

- En las baterías de Li-Ion, la primera carga no es decisiva en cuanto a su duración y no es preciso hacerla; el funcionamiento de una batería de ion de Litio en la primera carga es igual al de las siguientes. Es un mito probablemente heredado de las baterías de níquel.

- Es preciso cargarlas con un cargador específico para esta tecnología. Usar un cargador inadecuado dañará la batería y puede hacer que se incendie.

- Existen también bolsas especiales en donde se las guarda al momento de cargarlas en caso de que se incendien ya que estas baterías son muy delicadas.

Ejemplos Uso de Bateria en Dispositivos Móviles


¿Cómo se gasta la bateria?
  • Modo avión: 2 mA
  • Modo espera 3G / EDGE: 5 mA
  • Modo espera WIFI: 12 mA
  • LCD normal: 90 mA
  • CPU 50% - 100%: 110 mA
  • Sensores: 80 mA
  • GPS: 85 mA
  • 3G transferencia máxima: 150 mA
  • EDGE transferencia máxima: 250 mA
  • WIFI transferencia máxima: 275 mA
Ahora, suponiendo que tenemos una batería con una capacidad de 1150mAh. Si dividimos este valor entre el consumo que tiene cada actividad podremos estimar la duración de la batería realizando esa actividad de forma contínua.
  • Ver Youtube: 340 mA = 3,4 horas
  • Navegar por la Web usando 3G: 225 mA = 5 horas
  • Uso típico: 42 mA (de media) = 32 horas
  • EDGE en modo espera: 5 mA = 9,5 días
  • Modo avión en espera: 2 mA = 24 días

¿Qué es lo que más consume?

En todo lo alto de la lista están los procesos que se ejecutan cuando el teléfono está en modo espera. Tomemos como ejemplo una aplicación que se despierta cada 10 minutos para actualizar sus datos y que tarda 8 segundos en realizar esta labor con un consumo de 350 mA.

Consumo estimado en una hora:

- 3600 segundos * 5 mA = 5 mAh (en espera)
- 6 veces * 8 segundos * 350 mA = 4,6mAh (actualizándose)

El consumo de la bateria durante 48 segundos de actualizacion es equivalente a 1 hora en modo espera.

Y esto no es todo, cada vez que actives tu servicio, desencadenarás la ejecución de otros (para aprovechar la activación de los elementos del dispositivo, que se encuentra en modo espera). Al final, despertamos a nuestro dispositivo para ejecutar un servicio (aplicación) durante 8 segundos y permanece trabajando (en backgrond) entre 15 y 20 segundos.

Otras cosas que consumen bastante batería son las transferencias largas de datos. Descargar 6MB:

- EDGE (90 kbps): 300 mA * 9,1 minutos = 45 mAh
- 3G (300 kbps): 210 mA * 2,7 minutos = 9,5 mAh
- WIFI (1 Mbps): 330 mA * 48 segundos = 4,4 mAh


Referencias

[MDE Lab] Pantallas Táctiles

Pantallas que mediante un toque directo sobre su superficie permite la entrada de datos y órdenes al dispositivo, y a su vez muestra los resultados introducidos previamente; actuando como periférico de entrada y periférico de salida de datos, así como emulador de datos interinos erróneos al no tocarse efectivamente. Este contacto también se puede realizar por medio de un lápiz óptico u otras herramientas similares.
Wikipedia: Pantalla Táctil
Para mas información, referirse a Wikipedia: Pantalla Táctil


Clases de Pantallas Táctiles


Existen 4 tipos básicos de pantallas táctiles, primero veremos los 2 más comunes.

Pantallas Táctiles Resistivas



Consisten en un empaquetado de componentes parecido a un sandwich, tienen una capa de vidrio normal cubierto de una capa de material metálico conductivo y resistente. Estos dos componentes permaneces separados una pequeña distancia por espaciadores en las orillas. Por ultimo se añade una capa protectora y resistente a rayones hasta arriba de todo el conjunto.

Una corriente eléctrica circula entre las 2 primeras capas cuando la pantalla esta operacional.

El funcionamiento es sencillo, cuando una persona hace contacto con algún objeto sobre la pantalla la presión hace que ambas capas se toquen en cierto punto lo que causa un cambio en el campo eléctrico, y las coordenadas del punto donde ambas capas se tocaron es calculado por un controlador.

Una vez que las coordenadas fueron calculadas, éstas son transmitidas al sistema operativo para que pueda realizar las acciones programadas, muchas veces, traducirlas a movimientos de ratón.

Son más baratas y no les afectan el polvo ni el agua, y además pueden ser usadas con un puntero o con el dedo. Sin embargo, pierden hasta un 25% del brillo y son más gruesas, por lo que están siendo sustituidas por otras en los dispositivos móviles que precisan un tamaño y un peso ajustados y mayor brillo en la pantalla por la posibilidad de estar expuestos a la luz directa del sol.

Ventajas de las pantallas resistivas
  • Son más económicas
  • Funcionan bien para usar con un stylus, como para dibujar
Desventajas de las pantallas resistivas
  • Menos brillo
  • Debes presionar un poco más la pantalla para que responda
  • La respuesta del móvil parece más lenta
  • Por ahora no puede detectar varias pulsasiones es decir no hay multitouch

Pantallas Táctiles Capacitivas



Consisten en una capa de un material aislante que de un lado contiene un materia conductor, que almacena una carga eléctrica sobre el mismo, es decir, tiene cierta capacitancia.
La pantalla continuamente esta midiendo esta midiendo éste valor.

Cuando la pantalla es tocada por algun objeto dielectrico, como nuestros dedos, la capacitancia de la pantalla es distorsionada. Sensores en las esquinas de la pantalla miden la distorsión y la computadora calcula las diferencias relativas de la carga en cada sensor, esto sirve para calcular las coordenadas del toque las cuales se envían al controlador de la pantalla y después al sistema operativo para ser utilizadas.

Ventajas de las pantallas capacitivas
  • Mejor brillo
  • Respuesta más rápida a los dedos
  • Soporte de multitouch
  • No necesitas presionar para que responda, con tan solo deslizar el dedo funciona
Desventajas de las pantallas capacitivas
  • Suben el costo del producto


Comparación


Resistiva Capacitiva
Visibilidad Interiores Buena Muy Buena
Visibilidad Exteriores Mala, produce reflejos Muy buena, aunque tambien produce reflejos
Sensibilidad Se requiere presion con algun objeto, dedos, stylus, etcetera. Un pequeño toque con el dedo es suficiente, no funciona con objetos
Precisión Hasta 1 pixel, útil para dibujar Abarca un grupo de pixeles
Costo Barato Caro, hasta un 10% o 15% más que el resisitivo
Multitouch No disponible Disponible, depende del software
Duración Propensa a daños por la presión y requiere recalibrarse cada cierto tiempo Mas resistente a rayones, pero bastante más frágil
Cuidado Limpieza del stylus u objeto utilizado Limpieza continua contra las huellas digitales
Temperatura de Trabajo -15 a 55 grados centígrados a cualquier humedad 0 a 35 grados centigrados con 5% de humedad


Existen 2 tipos menos conocidos de pantallas táctiles.

Infrarojos


El sistema más antiguo y fácil de entender es el sistema de infrarrojos. En los bordes de la pantalla, en la carcasa de la misma, existen unos emisores y receptores de infrarrojos. En un lado de la pantalla están los emisores y en el contrario los receptores. Tenemos una matriz de rayos infrarrojos vertical y horizontal. Al pulsar con el dedo o con cualquier objeto, sobre la pantalla interrumpimos un haz infrarrojo vertical y otro horizontal. El ordenador detecta que rayos han sido interrumpidos, conoce de este modo dónde hemos pulsado y actúa en consecuencia.



Este sistema tiene la ventaja de la simplicidad y de no oscurecer la pantalla, pero tiene claras desventajas: son caras y voluminosas, muy sensibles a la suciedad y pueden detectar fácilmente falsas pulsaciones (una mosca que se pose, por ejemplo).

Onda Acústica Superficial


A través de la superficie del cristal se transmiten dos ondas acústicas inaudibles para el hombre. Una de las hondas se transmite horizontalmente y la otra verticalmente. Cada onda se dispersa por la superficie de la pantalla rebotando en unos reflectores acústicos.



Las ondas acústicas no se transmiten de forma continua, sino por trenes de impulsos. Dos detectores reciben las ondas, uno por cada eje. Se conoce el tiempo de propagación de cada onda acústica en cada trayecto. Cuando el usuario toca con su dedo en la superficie de la pantalla, el dedo absorbe una parte de la potencia acústica, atenuando la energía de la onda. El circuito controlador mide el momento en que recibe una onda atenuada y determina las coordenadas del punto de contacto.

Además de las coordenadas X e Y, la tecnología SAW es capaz de detectar el eje Z, la profundidad, o la presión aproximada que se ha ejercido con el dedo, puesto que la atenuación será mayor cuanta más presión se ejerza.


Referencias

[Emb Comb Lab] Robots




Un robot es una entidad virtual o mecánica artificial. En la práctica, esto es por lo general un sistema electromecánico que, por su apariencia o sus movimientos, ofrece la sensación de tener un propósito propio. La palabra robot puede referirse tanto a mecanismos físicos como a sistemas virtuales de software, aunque suele aludirse a los segundos con el término de bots. 

Actualmente podría considerarse que un robot es una computadora con la capacidad y el propósito de movimiento que en general es capaz de desarrollar múltiples tareas de manera flexible según su programación; así que podría diferenciarse de algún electrodoméstico específico.

Wikipedia: Robot

Para mayor información, referirse a Wikipedia: Robot





¿Cómo funciona un robot?

Los robots son dispositivos bastante parecidos a los humanos, hablando de componentes, cuentan entre otras cosas con:
  • Un cuerpo, armazon o estructura que soporta todos sus componentes
  • Un sistema que permite el movimiento de sus partes
  • Sensores que reciben información acerca de su funcionamiento y del ambiente que los rodea.
  • Una fuente de energía para hacerlos funcionar
  • Un sistema de procesamiento que les permite reaccionar y les dice que hacer

A pesar de tener todos estos componentes, aún no son capaces de razonar por si mismos y su programación y reacciones aún dependen de quien los fabrica. Sin embargo, tienen un alto poder de procesamiento y fuerza, y son capaces de realizar tareas que cualquiera de nosotros no.

En nuestros días es difícil aún definir que es un robot, porque, por ejemplo, un automóvil inteligente es una maquina con una tarjeta de procesamiento. Sin embargo, los robots están hechos para replicar el comportamiento humano y automatizar algunas de sus tareas, si bien es difícil definir la palabra robot cualquiera de nosotros es capaz de reconocer uno cuando lo ve.

Partes


Como lo mencione un poco mas arriba, la mayoria de los robots tienen partes escenciales.

El cuerpo sostiene todos los demás componentes que constituyen el robot, está hecho de cualquier materia resistente, metal, fibra de carbono, de vidrio, plastico, resinas, etcetera.

También tiene un sistema de partes móviles, pueden ser ruedas motorizadas, brazos, herramientas, entre muchos otros. Al igual que nuestro esqueleto, dichas artes de encuentran unidas en ciertas partes que les permiten moverse en forma armoniosa.

Los robots cargan consigo una cierta cantidad de motores eléctricos, solenoides, poleas, palancas; y en los más sofisticados, sistemas neumáticos e hidráulicos. Necesitas tener una fuente de energía eléctrica continua, compresores de aire entre otras cosas mas.

Los sensores les ayudan a identificar el medio que los rodea, sensores infrarojos, de ultrasonido, de luz, microfonos, cámaras, sistemas GPS, entre otros, les ayudan a reaccionar al ambiente, ya sea que haya algun obstaculo o peligro. La computadora puede incluso tomar decisiones y modificar su comportamiento al momento dependiendo de lo que el robot este sintiendo.

Se incluyen también sistemas de información, es decir, algunos leds que indican el estado actual del robot, problemas o fallas.

Todo el sistema eléctrico es cableado, ésto ayuda comunicar y poner en funcionamiento todas sus partes. La computadora central controla todo lo conectado a ella. Para mover el robot la computadora envía señales a las diferentes partes y bloquea o activa la corriente eléctrica a las mismas. La computadora es 100% reprogramable lo que permite modificar el comportamiento del robot a todo momento e incluir nuevas funciones.

Los robotos son controlados de forma remota, utilizando ondas de radio o señales infrarojas.

Tipos de Robots

Existen diversos tipos de robots, no necesariamente humanoides.


Brazo Robot

Es quiza el tipo de robot más común y utilizado.

Están diseñados para un trabajo repetitivo, continúo y pesado, especialmente orientados a la manufactura de productos.

Los brazos roboticos tienen 7 partes comúnes unidad entre sí, y cada parte tiene un motor independiente que le otroga un movimiento individual a cada una.
  • Una base, anclada al suelo, que le permite rotar sobre el mismo eje
  • El equivalente a un hombro, rota independiente a la base.
  • El equivalente a un codo.
  • El equivalente al antebrazo
  • El equivalente a la muñeca
  • El equivalente a la mano
  • La herramienta que se la adapta a la mano se considera también un componente individual.


Obviamente, a diferencia del brazo humano, el brazo robotico tiene un movimiento más libre y en casi cualquiera dirección, la mayoria de sus partes pueden rotar sobre su propio eje.

Los brazos roboticos cuentan con sensores de presión, los cuales están calibrados y le dicen a la computadora la carga que están realizando, si la carga es superior a la que el robot es capaz de realizar el robot finaliza la tarea para evitar daños a si mismo.

Las herramientas que el robot integra estan diseñadas para un tipo especifico de trabajo, por ejemplo, soldar la estructura de un automóvil, sin embargo, pueden contener desarmadores y compresores para pintar, entre muchas partes más. El programador debe cargar la secuencia correcta de movimientos en la memoria del robot para que realice la misma tarea una y otra vez, esto se realiza mediante un sensor en su propio brazo el cual ayuda a que el robot imite el comportamiento natural del brazo humano.

Los robots son más eficientes y precisos, por ejemplo, un robot siempre taladrara un orificio en el mismo lugar siempre, siempre realizara una tarea con la misma cantidad de fuerza sin importar la cantidad de horas que lleve trabajando.

Robots Móviles




Son aquellos robots que incluyen un sistema de locomoción, el sistema más distribuído de movimiento son las ruedas las cuales pueden adaptarse a prácticamente cualquier tipo de terreno.

Son básicamente motores eléctricos que hacen girar la rueda en el mismo eje, se incluyen sistemas sencillos de suspensión para hacer el desplazamiento más suave y evitar daños al sistema.

También existen sistemas bastante parecidos a las piernas humanas, las cuales son muy útiles cuando se estudia la locomoción natural.

Para el sistema de piernas es necesario incluir un complejo sistema hidráulico y neumático. Los pistones hacen las veces de músculos y unen diferentes partes. Una buena combinación de pistones resultaran en un movimiento bastante natural. Para mayor precisión se han incluidos sistemas de balance como acelerómetros, giroscópios y compáses que le indican a la computadora como y cuando corregir el movimiento y postura del robot.

El sistema de locomoción bipeda en los robots aún esta muy subdesarrollado, es lento e inestable, sin embargo, los robots que incluyen más de dos piernas como los robots arañas con hasta 8 piernas son bastante estables, sin embargo, requieren más procesamiento para mover todas sus partes.

Robots Autónomos


Son aquellos robots que no dependen de alguien que los controle, su movimiento es el resultado de una precisa combinación de sensores que le ayudan a responder ante ciertas condiciones.

Sensores infrarojos, ultrasonido y de choque les permiten "observar" obstáculos y evadirlos, y así girar y continuar en otra dirección.

Utilizan algo bastante parecido a los sistemas de localización de murcielagos. Otros sensores pueden ser microfonos y camaras.

Los robots modernos pueden analizar y adaptarse a un medio a traves de estos sensores, tomar decisiones y asociar condiciones. Pueden construir un mapa virtual del lugar en donde estan y recordar el mismo siempre.

Inteligencia Artificial


La AI es un campo de la robotica y ciertamente el más controversial. Como su nombre lo indica, se encarga de proporcionar inteligencia a entidades artificiales.

La AI intenta recrear algunas caracteristicas avanzadas del ser humano como son:
  • Capacidad de razonar
  • Habilidad de aprender
  • Habilidad de entender y usar el lenguaje
  • Habilidad de formular ideas
y aplicarlas a los robots.

En la actualidad es posible replicar algunas de estas habilidades de una forma bastante sencilla y específica.

El reto de la inteligencia artificial es reproducir la cantidad de información que el humano procesa en tan poco tiempo. Si hablamos en terminos de robotica, la cantidad de procesos paralelos y sensores en el cuerpo humano es muy grande, y la cantidad de datos de entrada también lo es. El ser humano puede almacenar la información, descartar la que no sirve y tomar un decision, todo en menos de un segundo.

Las computadores no pueden paralelizar los procesos tan rápido como el cerebro humano, sin embargo, las computadoras tienen algo que nosotros no y es la gran velocidad de procesamiento. Sin embargo, las acciones de una computadora son solo predicciones cuya acción esta basada en la información recolectada en ese momento.

En la actualidad los robots aprenden cosas bastante específicas y en un largo tiempo. Están los robots que aprenden a mover una parte de su cuerpo en cierto momento imitando acciones humanas.

También hay robots "sociables" que reconocen parte del lenguaje humano y responden a el apropiadamente.

El reto verdadero es entender como la inteligencia natural funciona y establecer un modelo concreto que hasta la fecha no se ha logrado identificar. Es por ello que gran parte del trabajo de la AI es teórico y solo hay hipótesis de cómo un robot puede aprender determinado comportamiento

La predicción más controversial sobre los robots es que algún dia nos convertiremos en Cyborgs, es decir, humanos integrados a maquinas.


Referencias