viernes, noviembre 02, 2012

4copter: Conceptos (II) - Presión y altura

La altura barométrica se define como la altura del aparato medida a partir del barómetro. Esto es debido a que la presión atmosférica varía con la altura con la siguiente expresión:
$$h[m] = h_{ref}[m] - \frac{1000m}{110mb} \cdot P[mb]$$
Como se observa la altura depende de la Sin embargo hay que tener en cuenta que la lectura dada en el barómetro también depende de la temperatura y las condiciones atmosféricas, y depende también de la presión a nivel del mar (referencia de calibración).

Las referencias (href a partir de la cual se calibra el altímetro puede ser las siguientes (calados) [1]:
  • QNH: Presión a nivel del mar deducida de la existente en el aeródromo, teniendo en cuenta unas condiciones de la atmósfera uniformes, sin tener en cuenta las perturbaciones en la atmósfera debido a las desviaciones de temperatura. La importancia de esta presión viene dada porque en las cartas de navegación, las altitudes vienen dadas respecto al nivel del mar. Con esta presión de referencia el altímetro, en el momento del despegue o aterrizaje debería marcar la altitud del aeródromo donde se encuentra.
  • QNE: Presión estándar a nivel de mar. Por encima de una determinada altitud (denominada de transición - normalmente 6000 pies) los reglamentos aéreos establecen que todos los aviones vuelen con la misma presión de referencia. Esta presión, 29,92” o 1013 milibares es la correspondiente a la atmósfera tipo a nivel de mar. De esta forma variaciones en las condiciones atmosféricas afectan por igual a los instrumentos de los aviones que vuelan en una determinada zona.
    Existe una determinada altitud, denominada altitud de transición, que es actualmente de 6000 pies en todos los aeropuertos españoles excepto en Granada que es de 7000, por encima de la cual se debe calar el altímetro con QNE. Con esta presión de referencia en el altímetro se habla de niveles de vuelo. El nivel de vuelo es la altitud marcada por el altímetro sin las dos cifras finales (7500 pies = Nivel 75; 10000 pies = Nivel 100...). Por debajo del nivel de transición lo apropiado es ajustar el altímetro con el QNH.
  • QFE: Presión atmosférica en un punto de la corteza terrestre. Si calamos el altímetro con esta presión de referencia, debería marcar cero en el momento del despegue o aterrizaje. Poco utilizada.
  • QFF: Presión a nivel de mar, deducida de forma similar a la QNH, pero teniendo en cuenta los gradientes de presión y temperatura reales en vez de los de la atmósfera estándar. Casi no se utiliza.

A partir de esto las altitudes medida por el barómetro-altímetro son:

  • Altitud indicada: Es la altitud convertida directamente de la lectura en el barómetro. Si está calado con el QNH, la altitud indicada será aproximadamente igual a la altitud del avión sobre el nivel medio del mar.
  • Altitud verdadera: O altitud real, es la altitud real sobre el nivel del mar. La altitud de aeropuertos, montañas, obstáculos, en las cartas de navegación se dan en altitud verdadera.
  • Altitud absoluta: Distancia vertical real entre el avión y la tierra.
  • Altitud de presión: Altitud leída en el altímetro calado en QNE.
  • Altitud de densidad: Altitud de presión corregida con la desviación de temperatura no estándar. Conocer esta altitud es necesaria para determinar cuanta pista es necesaria para aterrizar, para despegar, así como la velocidad de ascenso, sobretodo en días calurosos y húmedos en aeropuertos con una altitud considerable sobre el nivel del mar.
  • Altitud determinada por radar: Los aviones comerciales están equipados con radioaltímetros que indican la altitud absoluta, la cual sirve a los pilotos para determinar la altitud de decisión en las fases finales de aproximación y aterrizaje, especialmente cuando el techo y la visibilidad son bajos.

miércoles, octubre 31, 2012

4copter: Conceptos (I) - Ejes giros y fuerzas

En aeronáutica se consideran 3 ejes de dirección centrados en objeto volador: les llamaremos por simplicidad X, Y, Z. El eje X se considera siempre el eje de la dirección de movimiento (normalmente el eje que pasa por el morro y la cola del avión). El eje Y se considera perpendicular a la dirección de movimiento, siempre en el mismo plano del avión (el eje que pasa por las alas). El eje Z se considera el eje perpendicular a los anteriores, y por lo tanto perpendicular al plano del avión. La dirección de los ejes es la que se puede observar en la figura.


Esta dirección no es arbitraria sino que responde a un sistema de coordenadas muy usado en aviónica: el sistema NED (nord, east, down).

A partir de estos ejes se consideran 3 giros superpuestos a los mismos:
  • Alabeo (Roll): giro sobre el eje X.
  • Cabeceo o picado (Pitch): giro sobre el eje Y.
  • Giñada (Yaw): giro sobre el eje Z.

También, a partir de estos ejes definiremos las fuerzas que actúan sobre el avión:
  • Empuje (Thrust)
  • Sustentación (Lift)
  • Resistencia (Drag)
  • Peso (Weigth)

En caso del cuadróptero la elección de los ejes X e Y es arbitraria; sin embargo, por simplicidad, definiremos uno de los mástiles como el "frontal" del cuadróptero y, por lo tanto, fijaremos el eje X e Y. A esta configuración se le llama disposición del cuadróptero en '+'; en contraposición podríamos fijar los ejes X e Y que fueran a 45º grados de dos de los mástiles que soportan los motores y tendríamos una configuración en 'x'



La elección de la configuración en '+' en vez de en 'x' se ha realizado para facilitar los cálculos a realizar por parte del sistema, el lado negativo es que cuando se quiera cambiar de posición u orientación el trabajo lo realiza un sólo motor.

S2

Ranganok Schahzaman

jueves, octubre 25, 2012

4copter: Fusión de sensores (II) - Filtros Complementarios

En el post anterior hablabamos de la fusión del accelerómetro y el giroscopio para obtener el ángulo y la velocidad angular en un sólo eje, mediante el algortimo de filtros complementarios. Antes de seguir con otros algoritmos es necesario hacer un par de aclaraciones:
  1. El algoritmo utiliza una aproximación del valor devuelto por el accelerómetro tal que se considera sin(x) = x, esto se puede hacer a patir del desarrollo del polinomio de Taylor para esta función alrededor del ángulo 0:
    $$ sin (x) = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + ...$$
    Para un polinomio de grado 1, se puede observar que da una aproximación bastante buena para +-30º.
  2. En 3 dimensiones la cosa se complica ya que al girar uno de los ejes la rotación en los otros dos se ve afectada (por eso se dice que las rotaciones no son conmutativas, pero ya llegaremos a eso más adelante). Una imagen de la Wikipedia es mejor explicación:
    Euler2
    Sin embargo el mismo algoritmo de filtros complementarios puede ser utilizado siempre que el desplazamiento del eje vertical no sea demasiado grande (mayor a 30º), de esta formas el accelerómetro corregirá este desplazamiento, aunque muy lentamente debido al filtro paso-bajo.
  3. La guiñada (yaw) no se podrá corregir con el accelerómetro (a no ser que este se ponga en uno de los extremos y podamos medir la acceleración centrípeta), por lo que sólo se corregirá a partir del giroscopio. el problema de esto es que el giroscopio presenta una deriva en el tiempo que hará que el sistema gire y no apunte a un rumbo concreto. Para corregir este giro deberíamos incluir un magnetrómetro en el sistema.

martes, octubre 23, 2012

4copter: IMU de 10dof (II) - Presentación

Nivel de diseño

En robótica se definen 6 niveles de diseño, en un claro paralelismo con los niveles de la OSI en programación:
  1. Nivel Físico: Comprende la estructura física, las unidades motoras y las etapas de potencia.
  2. Nivel de Reacción: Está formado por el conjunto de sensores y los sistemas básicos para su manejo.
  3. Nivel de Control: Incluye los circuitos más básicos que relacionen las salidas de los sensores con las restantes unidades.
  4. Nivel de Inteligencia: Abarca la planificación a largo plazo.
  5. Nivel de Comunidad: Se trata de la puesta en funcionamiento de más de un robot dentro de un mismo entorno de forma simultánea y sin que ninguno de ellos tenga conocimientos explícitos de la existencia de otros en su mismo entorno.
  6. Nivel de Cooperación: Comprende los sistemas donde a partir de un nivel de comunidad se planifican o programan los robots para que tengan conocimiento de la existencia de otros, de manera que posean la capacidad de cooperar para el buen desarrollo de una tarea.

El objetivo de este proyecto es la de realizar un UAV (Unnamed Aerial Vehicle) de cuatro motores (también conocidos como cuadrópteros), que contenga un sistema de navegación que estabilice el UAV (piloto). Se realizará el diseño en los niveles 1, 2 y 3 (definidos anteriormente), de esta forma se deja como líneas futuras los niveles 4, 5 y 6 (planificación a largo plazo, comportamiento en comunidad y cooperación).


Líneas de actuación

Este proyecto puede ser el germen que de paso a una gran cantidad de proyectos. Vamos a definir algunos ordenándolos por niveles de diseño (ver apartado anterior):
  1. Nivel Físico
    • Diseño de un ESC para un mayor control de los motores: control vectorial del motor (Field Oriented Motor), generación de las fases con PWM con tercer armónico o SVPWM para un mayor aprovechamiento de la energía, comunicaciones de los ESC por I2C o SPI para una respuesta rápida de los motores.
    • Diseño de estructuras de 3, 4, 6 u 8 hélices, se puede cambiar la estructura del cóptero para utilizar más o menos motores. Más motores generalmente implicarán una mayor estabilidad al conjunto y un número menor de motores generalmente implicará menor consumo y mayor agilidad.
  2. Nivel de Reacción
    • Añadir sensores para mayor control del equipo: acelerómetro, giroscopio, barómetro, receptor GPS, brújula, etc.
    • Añadir sensores para mayor conocimiento del entorno: cámaras, sensores láser, ultrasonidos, infrarrojos, etc.
    • Software para la fusión de datos de los sensores: DCM, quaterniones, filtros de Kalman, algoritmos predictivos, etc..
  3. Nivel de Control
    • Añadir un hardware para aumentar la potencia de cálculo y el control de misiones a largo plazo: micro-PC, raspberry pi (y similares), teléfonos inteligentes, etc.
    • Inclusión del protocolo MAVLink para el control y la telemetría del vehículo. El protocolo MAVLink (Micro Air Vehicle Comunicatión Protocol ) se está convirtiendo, actualmente en uno de los más usados por lo que sería interesante incluirlo para el control y la telemetría del vehículo.
  4. Nivel de Inteligencia
    • Software para misiones a largo plazo: mapeado de entornos, seguimiento de objetos o personas, cálculo de la posición en interiores, reconocimiento del entorno./li>
  5. Nivel de Comunidad
    • Software para el control de comunidades: algoritmos de enjambre (swarm).
  6. Nivel de Cooperación
    • Software para el control de la cooperación entre equipos: inteligencia distribuida.

S2

Ranganok Schahzaman

domingo, octubre 21, 2012

4copter: Fusión de sensores (I) -Filtros Complementarios

Uno de los primeros problemas que nos encontramos a la hora de intentar estabilizar un UAV es la necesidad de conocer la posición, la orientación (inclinación) y la velocidad de giro actual.

Existen múltiples sensores que pueden ayudar a conocer estos datos, los sistemas de navegación satelital (GPS, GLONASS, próximamente GALILEO, ...), giroscópios, acelerómetros, barómetros, brújulas magnéticas o magnetrómetros, etc. Las señales de estos sensores, en primer lugar hay que procesarlas y luego combinarlas para eliminar los errores y derivas intrínsecos de los sensores y el ruido o las interferencias del sistema.


Para estabilizar el sistema no es necesario conocer la posición exacta sino que es más importante la orientación y las velocidades de giro; esto es debido a que podemos utilizar un algoritmo Proporcional-Derivativo (PD) para el control de los motores. Por ejemplo para un sólo eje podríamos definir el siguiente algoritmo :

$$ Motor Output = K_p \cdot Angle + K_d \cdot Angular Velocity $$
Para obtener estas variables usaremos una combinación de accelerómetro y giroscópio (el magnetrómetro nos podría servir para terminar de refinar los datos por lo que lo podríamos incluir más adelante).

La forma más obvia es utilizar el acelerómetro para medir el ángulo y el giroscópio para medir la velocidad angular.


La ventaja de esto es que no existe procesado ninguno y se obtienen las muestras sin retardo. El problema principal es que el accelerómetro es muy sensible todas las aceleraciones lineales (vibraciones y desplazamientos lineales) por lo que los parámetros de salida serán muy ruidosos y con errores durante los desplazamientos.

Es conveniente filtrar (con un filtro paso bajo) la señal del accelerómetro.


La ventaja de este sistema es que es muy fácil de programar y el filtro elimina los ruidos y las acceleraciones lineales. Sin embargo esto produce un retardo en la percepción del ángulo, lo cual puede provocar problemas en la estabilización.

Sin embargo, podríamos añadir los datos recogidos por el giroscopio para eliminar el retardo:

No podemos utilizar los datos del giroscopio directamente (integrados en el tiempo para pasar de velocidad angular a ángulo) dado que este tiene una deriva temporal que los inutiliza, sin embargo, a corto plazo sirven para eliminar el retardo producido por el filtro aplicado al accelerómetro.

En código se traduce de forma muy fácil:
$$ Angle = \alpha \cdot (Angle + gyro \cdot dt) + (1 - \alpha) \cdot acc $$
A partir de aquí podemos deducir la constante de tiempo para los filtros paso-bajo y paso-alto:
$$ \tau = \frac{ \alpha \cdot dt }{ 1 - \alpha } $$

Esta última técnica se llama Filtros complementarios, y tiene múltiples ventajas:
  • Reduce el ruido y la deriva producido por los sensores
  • Reduce el retardo en la estimación del ángulo
  • No implica un coste excesivo en tiempo de proceso

S2

Ranganok Schahzaman

EDITO: Se ha utilizado una aproximación para definir el ángulo a partir de los datos del accelerómetro y es que para x pequeños:
$$ sin (x) \approx x $$
Dado que de lo que se trata es de estabilizar el sistema este siempre se moverá en ángulos pequeños y la aproximación utilizada será cierta (x<30º)

domingo, julio 29, 2012

jueves, julio 26, 2012

4copter: IMU de 10dof - Presentacion

Introducción:

Los sistemas autónomos últimamente están teniendo una gran acogida, debido, en parte, al abaratamiento de los materiales y a la evolución de la tecnología que permite realizar sistemas cada vez más pequeños.

Vehículos aéreos, terrestres, acuáticos, submarinos e incluso espaciales se están utilizando cada vez más en multitud de campos, desde operaciones militares y de rescate a investigaciones científicas, desde tareas de inspección y mantenimiento a espectáculos o actividades de recreo.

Un sistema automático de control de dispositivos robóticos autónomos (drones) se pueden dividir en varios componentes (vinculados generalmente a una tripulación típica):
  • Piloto: Este componente se encarga de controlar la posición y orientación del drone y realizar los ajustes pertinentes en los actuadores (generalmente motores o servos), para corregir el rumbo, la posición y/o la orientación.
  • Navegante: Este componente se encarga de dictaminar y decidir el rumbo a seguir, a partir de los datos recogidos por el sistema
  • Maquinista: Este componente se encarga de hacer funcionar los actuadores (en un sistema robótico este cometido está realizado por los controladores de los motores).
  • Tele-operador: Este componente se encarga de recibir las ordenes enviadas desde tierra y transmitir la posición y rumbo.

Aunque parecen sistemas muy complejos y especializados, todos estos vehículos tienen muchos elementos en común: un sistema de posicionamiento y navegación, un sistema sensorial y varios actuadores (generalmente motores o servos).

Objetivos:

La finalidad del proyecto 4copter es realizar un piloto para sistema automático de control de dispositivos robóticos autónomos, que se encargará de estabilizar el sistema. Los objetivos específicos del proyecto serán lo siguientes:
  • Arquitectura y protocolo de telemetría. Se creará un protocolo de comunicaciones independiente de la capa física y el modelo de plataforma utilizado. Por otro lado también se implementará un sistema de radio para la comunicación entre el equipo y la estación base.
  • Unidad inercial (IMU) de 10 ejes: Se implementará una unidad inercial de 10 ejes (acelerómetro, giroscopio, magnetómetro y barómetro-altímetro), de esta forma se podrán realizar algoritmos de fusión de sensores que aumenten la fiabilidad del sistema.
  • Hardware Abierto (Open Hardware): Diseñar una plataforma de hardware abierto para que la comunidad científica pueda utilizarla como base de sus proyectos.
  • Hardware reutilizable e independiente de la plataforma: Aunque se ha elegido un cuadróptero como plataforma, se diseñará un hardware independiente de la plataforma, de tal manera que pueda ser reutilizable para cualquier tipo de modelo, sea este aéreo, terrestre, acuático, submarino o espacial.

Aplicaciones:

Las aplicaciones de este tipo de equipos son prácticamente son infinitas. Actualmente se utilizan equipos tele-controlados para inspección de tuberías y alcantarillado, limpieza de conductos, inspección de cascos de barcos, etc. Todos estas tareas son mayormente repetitivas y pueden ser automatizadas mediante un sistema que marque los puntos de interés.

Por otro lado los sistemas automáticos pueden utilizarse para realizar medidas de datos climáticos, de contaminación, de localización (para sistemas de información geográfica), fotografías geoposicionadas, estudios agro-forestales, de fondo marino, estudios de sedimentación en embalses, búsqueda y rescate de personas durante catástrofes, reconocimientos en lugares peligrosos para el ser humano, y otra multitud de aplicaciones que únicamente dependen de la imaginación.

viernes, junio 29, 2012

CAMPIC (I): Control de una cámara desde un micro

La visión artificial es un reto que la robótica tiene desde hace mucho tiempo. Por ahora se necesitan equipos especializados o PCs para procesar las imágenes que se reciben de las cámaras.

Para micros con pocas prestaciones es un campo difícil, sin embargo no imposible.

Unos compañeros estamos utilizado una cámara con salida serie-TTL (3V3) para recibir imágenes y esta es la primera prueba que hemos sacado (por ahora en PC).


La imagen es pequeña y de poca resolución pero se ven perfectamente a los dos que estábamos saludando a la cámara, e incluso se aprecia el logo de CC en mi camiseta.

A partir de ahora toca el procesado.

S2

Ranganok Schahzaman

sábado, junio 02, 2012

Kicad y Qucs

Hace poco he probado la nueva versión del Kicad (de enero de 2012), y, aunque me sigue sin gustar la forma de trabajar en programas separados (supongo que es acostumbrarse), si que he de reconocer una mejora substancial tanto en la presentación como en algunas de las herramientas (la calculadora me ha gustado tanto que les he enviado una hoja de cálculo con las conversiones de unidades que utilizo más a menudo).

Sin embargo le hecho en falta un simulador de SPICE del esquemático, es un punto en contra del proyecto que además podrían solucionar de forma más o menos sencilla si juntarán el proyecto con Qucs.

Ambos proyectos son compatibles ya que Qucs es lo que le falta a Kicad y Kicad es lo que le falta a Qucs. Me explico:
- Kicad es un programa de diseño de PCBs y Gerbers, pero no tiene simulador (o al menos yo no se lo he podido encontrar).
- Qucs es un programa de simulación de circuitos (bastante bueno), pero no tiene diseño de PCBs.

Si juntaran ambos programas se tendría un programa de diseño de circuitos muy, muy completo, que podría empezar a rivalizar con las soluciones comerciales presentes hoy en día.

Ahí queda eso...

S2

Ranganok Schahzaman

lunes, abril 16, 2012

3m/s (IV): Resolución en el eje Y

Retorno con el velocista después de mucho tiempo...

Como vimos en la primera entrada de la serie el tiempo que tarda en tomar (y procesar) dos medidas de los sensores es muy importante, ya que determinará la resolución máxima que podemos tener a una velocidad determinada. Existe un límite que nos pone una cota máxima al tiempo que podemos tardar entre dos medidas: el teorema de Nyquist (en la wikipedia inglesa está algo más explicado), resumiéndolo un poco nos dice que para poder reconstruir el camino sin errores debemos tomar los datos a una velocidad mayor que el doble de la velocidad a la que cambia la curva.

Vamos a intentar explicar esto (teorema de Nyquist aplicado a un velocista):
Supongamos que no somos un observador externo sino que vamos montados en el propio velocista mirando al suelo. Sin ninguna referencia más podríamos pensar que estamos quietos y lo que se desplaza es el suelo, esto es, una línea negra en un fondo blanco; imaginemos, además, que sólo vemos esa línea a través de una redija muy pequeña sin que podamos ver más allá para prevenir una curva, esto es nuestra señal de entrada.

Si tuvieramos eso sería un sistema analógico normal y corriente; pero nuestro sistema (al ser microprocesado y no construido con filtros analógicos) tiene una particularidad: es discreto en el tiempo, es decir, no estamos viendo la línea continuamente sino que sólo podemos tomar fotografías en instantes concretos de tiempo, o lo que es lo mismo, es como si estuvieramos viendo la línea únicamente iluminada a través de una luz estroboscópica (flashes que saltan cada cierto tiempo).

Si el tiempo entre fotografías (o flashes) es demasiado alto seguramente no podríamos seguir la línea, no podríamos corregir la dirección y acabaríamos estrellando el velocista.

Es difícil determinar el tiempo mínimo que cumple el teorema, sin embargo, es más visual ver la resolución en metros (centímetros o milímetros), es decir la distancia que recorrerá el robot entre dos medidas a la velocidad a la que vayamos. Para tener una referencia contaremos que el eje de giro será t=0, lo que recorra el robot será el eje positivo y lo que ya halla recorrido el eje negativo.

Evidentemente si bajamos la velocidad del velocista la distancia que recorremos entre flashes será menor y si la subimos mayor. Si optimizamos el tiempo de proceso o cogemos un micro más rápido (los flases más seguidos) la distancia recorrida disminuirá y si escogemos un micro más lento la distancia augmentará.

Sin embargo, lo bueno de todo es que, siempre que cumplamos el tiempo mínimo que dice el teorema, dará igual a qué velocidad vayamos que siempre podremos procesar correctamente la señal.


S2

Ranganok Schahzaman

miércoles, abril 11, 2012

Proyecto: Tricorder (II)

He empezado ha hacer mis pinitos con el MIT Android App Inventor que es relamente sencillo de utilizar. Siguiendo con el Proyecto Tricorder, he creado una pequeña aplicación que lee los datos del accelerómetro, la brújula y la posición (a partir de la red GSM), y los actualiza cada segundo.

La aplicación puede bajarse del siguiente código QR (puedes pulsar sobre él):


El próximo paso podría ser utilizar el Bluetooth para comunicar con un dispositivo externo.

S2

Ranganok Schahzaman

PD: Si alguien quiere el "código" (en realidad es un diagrama de flujo), que lo pida y se lo paso.

martes, abril 03, 2012

Proyecto: Tricorder


Hace tiempo que vengo observando las aplicaciones que se realizan para móviles y que convierten estos en un completo laboratorio en el bolsillo (II y III), viendo esto me estaba acordando de la serie Star Trek, y de cómo con un pequeño aparato realizaban todas las lecturas de una zona planetaria, o de una especie nueva (generalmente una hembra con ganas de liarse con el capitán).

Por otro lado, hace unos pocos días ví como querían crear uno de estos Tricoders... Pero, ¿por qué reinventar la rueda cuando ya la tenemos?

Cojamos un móvil (smartphone) que ya lleva varios de los sensores que necesitamos y pongámosle el resto en un aparato externo.

Por ejemplo, un Xperia Neo V lleva:
- Accelerómetro
- Sensor de luz ambiente
- Magnetómetro
- Sensor de proximidad (?)
- GPS & GLONASS
- Touch screen: Capacitiva (multi-touch)
- TFT: 16.777.216 colores, 854x480 pixels, 3.7"
- Cámara: 5 megapixel, Zoom 16x Digital, Vídeo HD 720p
- Cámara frontal: VGA
- LED flash
- Bluetooth™
- Wi-Fi® (IEEE 802.11b/g/n)
- Micrófono
- Altavoz

Es decir, tenemos varios sensores, un procesador muy decente (1GHz), una pantalla para visualizar los resultados y por si fuera poco comunicaciones suficientes para conectarnos con otros sensores u otros equipos. ¿Por qué no usarlo?

S2

Ranganok Schahzaman

PD: Buscando información por la red he encontrado que ya existe una App para Android que lo convierte en un Tricorder, sin embargo creo que se le puede sacar más partido a la cosa, utilizando de otra forma los sensores o añadiéndoles más.

domingo, marzo 18, 2012

Un laboratorio en el bolsillo (III)

Hace poco me he "comprado" (al cambiar de compañía, ya que es la única forma que te lo dejen a un precio asequible) un móvil con Android, para probar la potencia de estos dispositivos a la hora de servir de algo más que para conectarse a las redes sociales y a juegos (que también). Pongo algunas aplicaciones más:

Bonus:

App Invertor: Es un programa para crear tus propias aplicaciones para Android. Si bien no es una aplicación de laboratorio en sí misma sí se puede utilizar para crear de forma más rápida otras que sí lo sean. Es más existe una aplicación para programar desde el propio móvil: AIDE

Ya que nos ponemos a trabajar con Android necesitaremos herramientas para hacer nuestros programas. O quizás un cursillo de programación impartir por los propios creadores del sistema.

También existen smartphones para ciegos: Drawbraille