25 de febrero de 2012

Week 5

Distributed and Parallel Systems
Contribution: Week 5
Last week I was working in a example of send a file from server to a client. But now I'm working in the same code, but I'm trying to change part of the clients and accept to many clients at the same time with threads and send the same file to several clients.

Link to the wiki: Sendfile in Java (modified)

Nominations:
No one

24 de febrero de 2012

Procesos Estocásticos Discretos y Continuos

Modelado y Simulación de Sistemas Dinámicos
Reporte 2
Lo que decidí analizar para este tema es la lotería. Por lotería se puede referir a dos tipos diferentes de juego, el que se juega con cartones con diferentes figuras y que se marcan con algún tipo de fichas, y la que es mediante billetes y sorteos. Yo planteo mi análisis a este último, que en México es fácil relacionarlo con la Lotería Nacional o en un caso más cercano a nosotros, el Sorteo de la Siembra Cultural de la UANL.

Lotería


La lotería es un juego de azar que consiste en acertar los números de un billete previamente comprado con los números extraídos de una tómbola o un recipiente que garantice que sean extraídos al azar. Los números de dicho billete pueden ya estar preimpresos o bien ser elegidos por las propias personas. El número de aciertos pueden ser todos o parte de los número del billete. Al ganador o ganadores se les entrega un premio en dinero o especies. Por lo general si no hay ganadores para un sorteo el premio se acumula para el siguiente.


Ahora después de esta introducción veamos los conceptos vistos en clase.

Distribución discreta y continua


Discreta
Se denomina distribución de variable discreta a aquella cuya función de probabilidad sólo toma valores positivos en un conjunto de valores de X finito o infinito numerable.

Discreto es aquel en el que las variables de estado cambian instantáneamente en puntos distintos en el tiempo. Se rigen por ecuaciones lógicas que expresan condiciones para que un evento ocurra. La simulación discreta, consiste en seguir los cambios en el estado del sistema resultando de cada uno de los eventos que se realizan. Por regla general este tipo de la simulación se realiza siguiendo la secuencia de ocurrencia de eventos, es decir avanzamos el tiempo de la simulación al tiempo de la ocurrencia del siguiente evento.

En los sistemas discretos, el flujo es tratado como un cierto número de enteros. Por ejemplo en el análisis de flujo de personas en el supermercado, involucra el tiempo que tarda una persona en las distancias aéreas del supermercado y el contador de salida de un sistema discreto, otros sistemas discretos son: el análisis de como el de tráfico de autobuses en una central camionera, e control de tráfico de: trenes en una estación ferroviaria, aviones en el aeropuerto, vehículos en una autopista, buques en el puerto.

Distribuciones de variable discreta:
  • Distribución binomial
  • Distribución binomial negativa
  • Distribución geométrica
  • Distribución de Bernoulli

Continua
Se denomina variable continua a aquella que puede tomar cualquiera de los infinitos valores existentes dentro de un intervalo.

Un sistema continuo es aquel en el que las variables de estado cambian de manera continua en el tiempo. Por ejemplo si consideramos un aeroplano que se mueve por los aires, sus variables de estado como velocidad, posición, consumo de combustible, etc., cambian de manera continua en el tiempo.

En los sistemas continuos el flujo a través del sistema es, el de un medio continuo, por ejemplo el flujo de las partículas sólidas, moviéndose a velocidades relativas al tamaño de las partículas presentes en la corriente.

Distribuciones de variable continua:
  • Distribución ji cuadrada
  • Distribución exponencial
  • Distribución t de Student
  • Distribución normal
  • Distribución F


Ejemplo: Distribución exponencial

Planteamiento del problema


Ahora vamos a poner en claro la realidad de la lotería y la probabilidad de resultar ganador al comprar un solo boleto para el sorteo.

Tomaré como ejemplo de problema el 17º Sorteo de la Siembra Cultural en el cuál se han emitido 180000 boletos.

Para un sorteo la probabilidad de que te toque ser el ganador del primer premio, depende del número de boletos emitidos para ese juego, también importa la cantidad de series, pero en nuestro ejemplo no tenemos alguna cantidad de series y solo contabilizamos en una cantidad fija de boletos emitidos, mencionados anteriormente. En el sorteo se tiene un total de 110 ganadores, pero me enfoco solo para el que desea ganar el primer premio.

La probabilidad de que nos toque el primer premio con un solo boleto es de 1 entre 180 mil.

Ahora planteo el problema con una pregunta: ¿En cuántos sorteos tendría que participar para ganar el primer premio, si solo compro un boleto por sorteo?

Con esto podemos decir que de los modelos vistos el que más se asemeja es el de binomial negativa, porque quiero saber cuanto intentos tengo que hacer para ganar una vez el primer premio, y evidentemente el problema es un modelo discreto.

La siguiente formula nos dice cuantos intentos es necesario hacer hasta obtener el primer éxito.


Haré uso del ejemplo visto en clase para la binomial negativa, pero cambiando lo necesario para adecuarla al problema.


Bueno en realidad no fue como yo quería, en la gráfica anterior los puntos marcados con "+" es la simulación de la binomial negativa, teniendo a K = 1, porque quiero saber cuantas veces se intento para ganar por primera vez el primer premio y se repite mil veces. Además para obtener esta gráfica altere la probabilidad real, cambie que la cantidad de boletos a 90 mil y se compran 1000 boletos por sorteo, extremadamente exagerado.

Igualmente en la linea continua, tengo que K = 1, la probabilidad es la real (1 entre 180 mil), y podemos observar que podemos comprar 1000 boletos por cada sorteo toda la vida y seguramente jamas nos saquemos la casa bonita.

Ahora haré unos cambios, tomare en cuenta que solo se desea ganar cualquiera de los 110 premios posibles, y se compran 100 boletos por sorteo, y por si fuera poco resulta que solo se vendieron 120 mil boletos de los 180 mil.


Si esto pasará así, pasarían más de 100 sorteos para poderte ganar por lo menos una licuadora o en el mejor caso una casa con auto.

En la forma simulada puse 50 mil repeticiones, para lograr acercarlo a la que se hace con formula directa (linea continua roja).

¿Puede hacerse de forma continua?
Bueno tal y como planteo mi problema no, porque en mi problema no involucro términos de tiempo , por lo tanto no es un fenómeno continuo. Tal vez si cambiáramos el planteamiento y digamos que se desea conocer cuanto tiempo pasara para ganar la lotería, tomando en cuenta que cada sorteo se hace en un determinado tiempo, podríamos estar hablando de un problema continuo.

Conclusión
En la realidad, esperar a ganar el primer premio de la siembra cultural, comprando un solo boleto por sorteo, tiene una probabilidad cercana a cero, por lo que nos pasaríamos gastando dinero en boletos, esperando un milagro para poder ganar.

Programa


Para no quedarme sin hacer mi propio programa, haré algo sencillo. Mi problema es:
Se sacan 2 cartas al azar de una baraja normal de 52 cartas y deseamos que las dos sean de corazones, tenemos una probabilidad del 5.88% para que sea así. Y ahora cuantos intentos hay que hacer para obtener un éxito.

Lo trate de hacer con una simulación y cambiando las veces de repetición. Esta fue la gráfica que me arrojo con solo 100 repeticiones.



Bibliografía:
Distribuciones fundamentales
Diagrama de distribuciones
Distribución de probabilidad
Binomial negativa

21 de febrero de 2012

Plataformas de Desarrollo

Ingeniería de Dispositivos Móviles
Laboratorio: Publicación 1

Plataformas de Desarrollo


Definitivamente el desarrollo de aplicaciones móviles es la tendencia actual en cuanto al desarrollo de software, debido a que cada vez son más las personas que cuentan con dispositivos que son fáciles de llevar a todos lados, y los usuarios suelen buscar aplicaciones que vayan de acuerdo a su ritmo y estilo de vida, por lo tanto hay una amplia gamma en cuanto al desarrollo de aplicaciones.

Las plataformas de desarrollo suelen ser herramientas que los creadores de los sistemas operativos para ciertos dispositivos proveen para que los desarrolladores hagan uso de los recursos de los dispositivos y creen ingeniosas aplicaciones.

Las plataformas existentes van de acuerdo a los sistemas operativos existentes, de los cuales hablaré en alguna entrada posterior, por el momento solo mencionaré las plataformas de desarrollo para aplicaciones nativas a los dispositivos con cierto sistema operativo.

iOS

Apple para su sistema operativo iOS nos provee de muchas herramientas para lograr desarrollar aplicaciones, desde el xcode como IDE para desarrollar hasta vídeos y códigos de ejemplo.

Este es el enlace para ir al Dev Center donde encontrarán una infinidad de material.

iOS Dev Center


Windows Phone

Por el momento en la página de descarga del programa para crear aplicaciones para este sistema se encuentra en su versión 7, no se ve a simple vista que tengan gran contenido para iniciar sin saber absolutamente nada, pero en general se ve bien.

Y aquí la página.

Windows Phone

Android

Android es la plataforma con la que voy a trabajar, y hasta el momento he encontrado muy buen material ahí, hay desde código de ejemplo, vídeos y documentación muy extensa, e inclusive te explican paso a paso como instalar las herramientas e IDEs necesarias, para empezar a desarrollar una aplicación, y además provee de un emulador de dispositivos para poder probar las aplicaciones antes de probarlas en un dispositivo real.

Android

En la siguiente imagen podemos ver gráficas y porcentajes, donde podemos ver la importancia del desarrollo de aplicaciones para móviles, se ve que ha tenido un gran avance en los últimos dos años. Esta enfocado a desarrollo web móvil pero lo que queda claro es el gran uso que tienen por ejemplo los dispositivos Android donde han incrementado el uso más del 200%.


Algo de información relacionada
Interfaz de Programación de Aplicaciones
Tendencias en plataformas y desarrollo móvil

20 de febrero de 2012

Week 4

Distributed and Parallel Systems
Contribution: Week 4
This week I'm working in a example of send a file from server to a client. My code is simple, by default the IP is localhost, only for test it in the same computer. But with threads we can have a program that send the same file to several clients. But this change I will do it the next week.

Link to the wiki: Sendfile in Java

Nominations:
Juan Carlos
Rafael
Cecilia Urbina

This image is a simple executation of the program Server to Client.

19 de febrero de 2012

Dispositivo XWave

Cómputo Integrado
Laboratorio

¿Qué es XWave?


XWave es un dispositivo que te permite aprovechar el poder de la mente de una manera muy revolucionaria. Este dispositivo consiste en una serie de sensores distribuidos en ciertos puntos de una diadema, parecida a la de la diadema con auriculares. Los sensores están en contacto con la piel de la frente.

XWave se fundamenta en la investigación médica y de ciertas patentes, y con esto es posible obtener mediciones de las sensaciones que es posible detectar mediante diferentes frecuencias emitidas por el cerebro, así como la meditación y concentración tenida. Estos datos de entrada hacen posible la creación de aplicaciones donde el usuario es capaz de controlar y hacer flotar objetos en una animación virtual de un objeto real, claro también sería posible hacerlo real pero con el hardware necesario. Esta misma tecnología se utiliza en Mindflex de Mattel y el El Force Trainer.

La empresa encargada de la venta de este dispositivo ofrece aplicaciones en la plataforma iOS, con aplicaciones que hacen uso del dispositivos y con versiones existentes para iPod, iPhone y iPad.

¿Un producto nuevo?


Haciendo un poco publicidad a XWave, este dispositivo no es algo que se creo hace poco, es el resultado de un trabajo muy completo en cuanto al estudio de la actividad cerebral y que se viene haciendo desde hace ya varios años, lo que nos ofrece es una forma más cómoda y practica de usar. Como podemos ver en las siguientes imágenes, notamos la diferencia de aparatos que eran necesarios antes que cubrían con sensores todo el exterior del cerebro y ahora con tan solo una diadema con unos cuantos sensores es posible obtener la misma información de las ondas cerebrales.

Antes:
Ahora:

¿Cómo funciona?


Nuestro cerebro se comunica mediante transmisión de electricidad entre las células neuronales llamadas neuronas. Los pulsos eléctricos pueden ser detectados en la superficie de la piel con una pequeña antena. Anteriormente era difícil detectar estas líneas de pulso y tenían que ser interpretadas.

Ondas cerebrales detectadas
Las ondas cerebrales son señales analógicas que van entre 0-50Hz. Los rangos de frecuencias se divide en bandas de etiqueta en la industria médica, como:

Delta (0.5 - 2.75 Hz) - Las ondas delta se producen principalmente en niños y adultos en el sueño profundo. Las ondas delta son también conocidos por desencadenar la liberación de la hormona del crecimiento, que ofrece la curación, de ahí la razón por la cual el sueño es tan importante durante el proceso de curación.

Theta (3.5 - 6.75 Hz) - Se producen principalmente en los niños durante las primeras etapas de sueño y los adultos cuando están estresados ​​emocionalmente.

Alfa de baja densidad (7.5 - 9.5 Hz) y Alpha de alta densidad (10 a 11.75 Hz) - Se producen cuando una persona está relajada, pero alerta. Durante este estado, una persona está despierta, pero en reposo. Durante el sueño, las ondas alfa son reemplazadas por las ondas beta.

Beta baja (13 16.75 Hz) y Beta alta (18 a 29.75 Hz) - Ocurren cuando un adulto se centra, alerta o está realizando cualquier tipo de actividad.

Gamma baja (31 a 39.75 Hz) y Gamma media (41 a 49.75 Hz) - Se asocia con una mayor actividad mental, incluyendo la percepción y la conciencia. Las ondas gamma desaparezca bajo anestesia general.

Interpretación


Atención:
Su atención se deriva de las ondas beta. Estas son las ondas cerebrales entre 13-30Hz. Sus ondas beta se calculan y se interpreta entonces para indicar su nivel de atención. El visualizador te da la oportunidad de experimentar con su nivel de atención por parte de flotar una pelota con la mente.

Meditación:
Su meditación se deriva de ondas alfa. Estas son las ondas cerebrales entre 7-12 Hz. Sus ondas alfa se calculan y se interpreta entonces para indicar su nivel de meditación. La aplicación XWave te da la oportunidad de experimentar con su nivel de meditación, cambiando el color de la pantalla en función de cómo relajado o la fuerza del estado de meditación e la que éstas.

¿Es seguro?
Sí. No existe ningún problema cerebral provocado con este dispositivo ya que sólo escucha las ondas cerebrales. No transmite o envía ninguna señal.

Bibliografía:
XWave

18 de febrero de 2012

Señales de Sensores

Cómputo Integrado
Laboratorio

Introducción


Los sensores se usan sistemas embebidos cada vez con mayor frecuencia. En la industria se han utilizado desde hace tiempo para los sistemas de control de la fabricación, y actualmente los dispositivos de consumo están comenzando a emplearlos también. Los fabricantes están integrando sensores en los productos de consumo para crear mejores experiencias al usuario – el rango de elementos añadidos va desde acelerómetros en teléfonos móviles a sensores de vapor de agua en hornos microondas. Los diseñadores de sistemas, que previamente sólo trabajaban en el dominio digital, están ahora interaccionando con los sensores analógicos.

El siguiente por ejemplo es un sensor de grado de alcohol, que como señal de salida de datos proporciona el nivel de alcohol detectado en una persona que sopla frente a las aberturas. Y lo muestro porque según mis planes es lo que estaré usando para mi proyecto arduino.

Las señales analógicas de los sensores deben digitalizarse para que el sistema pueda usarlas, y luego la trayectoria de las señales pasa a través de amplificadores, filtros y etapas de digitalización. Cada etapa usualmente implica un componente pasivo que realiza una función. Una vez que se digitaliza la señal, puede pasarse a un sistema de control en el micro-controlador y de ahí a un procesador anfitrión a través de un protocolo de comunicación. El protocolo puede usar los datos del sensor para lo que sea necesario.

Cada uno de los sensores tiene una señal y rango de salida diferentes. La señal de salida puede estar basada en voltaje, corriente, resistencia, capacitiva o frecuencia, pero existen pocos standards y sólo los usan los sistemas industriales. Incluso los sensores similares del mismo fabricante pueden tener diferentes salidas, y estas diferencias pueden crear problemas para los diseñadores del sistema. Un diseñador debe seleccionar un sensor que cumpla los requerimientos del sistema. La incorporación de un nuevo sensor con una salida ligeramente diferente necesitará alterar la amplificación y etapas de filtrado.

La mayoría de las señales de salida se basan en pequeñas señales de corriente o voltaje, de manera que una simple red resistiva adapta cualquier señal basada en corriente en un voltaje.

Revisemos ahora algunos conceptos que simplifican el concepto de la selección:

Amplitud
La salida de un sensor puede ser tan pequeña como varios milivoltios o tan grande como varios voltios. Para su correcta digitalización, la señal debe ser lo suficientemente grande como para que pueda leerla el ADC (Analog-to-Digital Conversion). En la mayoría de los casos, la señal del sensor requiere amplificación.

La selección del amplificador se adaptará a las necesidades de cada proyecto y podrá ser un amplificador de instrumentación, un amplificador diferencial, un amplificador operacional, o un amplificador de ganancia programable PGA. También debe determinarse la cantidad de ganancia que el amplificador requiere.

Filtrado
Todos los sistemas imparten algún ruido a la señal de los sensores. El ruido proviene de diferentes fuentes, incluyendo paneles, radios, componentes térmicas, e incluso el sensor ruido. El ruido puede filtrarse usando filtros analógicos pasivos, filtros ICs, y filtros digitales. El método más común, filtrado pasivo, implica crear una red pasiva de resistencias, condensadores e inductores.

Conversión digital
Para usar la señal filtrada del sensor, debe cuantificarse la señal analógica en el dominio digital usando un ADC. La selección de un ADC es la preocupación principal de los requerimientos del sistema para muestrear velocidad y resolución. La velocidad de muestreo necesaria está relacionada con el ancho de banda del sensor y con las necesidades de actualización.

Algunos tipos de sensores


Posición lineal o angular
Como el potenciómetro y el sensor Hall que sirven para conocer en que sentido esta ubicado determinado dispositivo.

Velocidad lineal y angular
Determinar la velocidad a la que se mmueve cierto dispositivo o si este esta girando saber a que velocidad lo esta haciendo.

Aceleración
Permite conocer los cambios de velocidad. Existen el acelerómetro y los servo-acelerómetros.

Temperatura
Existen varios dispositivos encargados de la medición de la temperatura como el Termopar y Termistor NTC y PTC.
Sensores táctiles
Para dispositivos que necesitan saber si alguien toca un aparato para por ejemplo encender una lámpara. En los dispositivos móviles mas recientes con pantallas táctiles, utilizan sensores inductivo y capacitivos para detectar cuando se hace presión sobre la pantalla. De estos dos últimos es más recomendable el capacitivo, porque suele ser más sensible al tacto de las llemas de los dedos.

Sensor de proximidad
Suele usarse el sensor fotoeléctrico para determinar la proximidad debido a la diferencia de la cantidad de luz. Celulares recientes tienen este tipo de sensores de proximidad para reconocer cuando alguien tiene el teléfono en el oído durante una llamada y este apaga la pantalla para ahorrar energía.

Y existen más sensores, como el que mencionaba de detección de grado de alcohol, pero me quedo por lo tanto con estos ya que son los más comunes sobre todo para el tipo de proyectos en los que estamos trabajando.

Bibliografía
Sensores
Tipos de sensores

17 de febrero de 2012

Introducción a Sistemas Integrados

Cómputo Integrado
Laboratorio

¿Qué son los sistemas integrados?


El sistema embebido, como dice el nombre, forma parte de un conjunto más amplio, como puede ser una máquina, un electrodoméstico u otro sistema más amplio. Esta parte que está instalada en el interior de la máquina, es la que llamamos sistema embebido o empotrado. Su misión consiste en resolver una tarea pequeña del conjunto que tiene que resolver la máquina en cuestión.

La mayoría de los sistemas embebidos se encuentran en una placa base, como las tarjetas de vídeo, audio, conexión ethernet, entre otras. Ejemplos de ellos lo podemos ver en un taxímetro, la terminal para el pago con tarjetas de crédito, un termómetro digital, control remoto, y más.

Por lo general los sistemas embebidos se pueden programar directamente en el lenguaje ensamblador del microcontrolador o microprocesador incorporado sobre el mismo, o tambien, utilizando los compiladores específicos, pueden utilizarse lenguajes como C o C++; en algunos casos, cuando el tiempo de respuesta de la aplicación no es un factor crítico, también pueden usarse lenguajes interpretados como JAVA.

Puesto que los sistemas embebidos se pueden fabricar por decenas de millares o por millones de unidades, una de las principales preocupaciones es reducir los costes. Los sistemas embebidos suelen usar un procesador relativamente pequeño y una memoria pequeña para ello.

¿Mi lavadora es un sistema embebido?
La lavadora se compone de un chasis, de motores eléctricos, bombas de agua, de un frontal con varias teclas para que el usuario pueda poner en marcha la lavadora, contiene temporizadores y válvulas eléctricas que controlan el flujo del agua, y más componentes.

Nos podemos fácilmente imaginar la necesidad un circuito electrónico que contenga los diferentes programas de lavado del que disponga el electrodoméstico. Y por razones obvias, esta electrónica no sería otra cosa que un micro-ordenador, especialmente diseñado para dicho fin, en este caso el de lavar. Por lo tanto podemos hablar de un sistema embebido o empotrado en el interior de la lavadora.

¿Dónde encuentro sistemas embebidos?


En todas partes, ya que un sistema embebido es un ordenador más, que a diferencia de una computadora personal, carece de teclado y pantalla en la mayoría de los casos. Dicho de otra manera, un sistema embebido consiste de una electrónica programable especialmente diseñada para soluciones específicas.

Ejemplos
  • Sistemas de telefonía fija o móvil
  • Automatización de procesos de producción
  • Equipos e instrumentación industrial
  • Sistemas de transporte, desde cintas transportadoras, sistemas robotizados hasta vehículos de transporte de todo tipo
  • Electrodomésticos de todo tipo, como microondas, lavadoras, frigoríficos, lavavajillas
  • Sistemas periféricos de un PC, como los MODEM, router, teclados, ratones de nueva generación, equipos multimedia
Características
  • Esta especialmente diseñado para la solución óptima de la tarea o tareas a resolver
  • Generalmente es una "pieza especializada" instalada en un sistema anfitrión
  • A diferencia de un PC, el sistema embebido se dota con los módulos estrictamente necesarios para su función
  • Es una solución única en el mercado, no existe otra igual
La incorporación de un sistema embebido proporciona a un producto un valor añadido importante que lo distingue claramente de los productos de la competencia. Esto es posible gracias a que el sistema embebido con respecto a la solución anterior proporciona una:
  • Solución más precisa y rápida en su especialidad respecto a la solución anterior
  • Mayor número de opciones respecto a la solución anterior
  • Coste reducido, por lo tanto reducción de costes en el proceso de fabricación
  • Aumenta la competitividad del producto por su diferenciación respecto a otros productos similares

Sistemas embebidos por Ing. Héctor Carlos Riso


Por lo menos la primera mitad del vídeo nos habla con conceptos generales que es un sistema embebido, la segunda mitad sugiero ignorarla, ya que solo era relevante a la gente del departamento donde él trabaja.

Bibliografía:
Sistema embebido
Sistemas embebidos - Idose