lunes, 11 de abril de 2011

Taller de electrónica para creación artística @ UC3M

El 27 de abril empezaremos Javier y yo a impartir, de nuevo, el primer taller de electrónica que hicimos en el Aula de Propulsión Escópica.

Fueron cinco días de un esfuerzo mental y creativo brutal donde lo más destacable fue la gente que conocimos, de inquietudes peculiares.

Aunque no podemos recrear exactamente las mismas condiciones nos han llamado de la Universidad por lo que tendremos muchos más recursos.

Hoy (11 de abril) voy a presentar el taller en Leganés a las 17:30. Inscripción y más información en http://control.escopica.net

sábado, 4 de diciembre de 2010

Introducción al PFM


Ya tengo elegido tema para el proyecto fin de máster que estoy haciendo. No tiene título pero va a ser algo así:
  • FPGAs en Open Hardware
  • Hardware reconfigurable abierto
  • Arduino en FPGA
  • Plataformas de Hardware de altas prestaciones y bajo coste
O cualquier combinación de esas palabras. El objetivo del proyecto va a ser sacar una conclusión del estado en el que el hardware reconfigurable por si alguien hubiese sido tan inteligente de haberlo adaptado a la moda: Arduino (que parece que sí y pretendo ayudar a ello).

El hardware reconfigurable abierto es lo contrario a un core 2 quad.

Primero, es abierto en el sentido que todos sus componentes están conectados de un modo que es del dominio público y no cae sobre él ninguna patente ni secreto. Además, las herramientas para conseguir programarlo también son abiertas en el sentido de que puedes bajarte la herramienta y su código fuente por si necesitases hacerle algún cambio. Para que se entienda en oposición al core 2 quad, los esquemas de un microprocesador de Intel son un secreto mejor guardado que el de la coca-cola.

Segundo, es reconfigurable. El core 2 quad tiene cientos de instrucciones simples. Sumar, cargar desde la memoria, comparar con cero, etc. Éstas se aplican contra una serie de memorias (llamadas registros) que hay dentro del chip y sus resultados se guardan en otras.Tras un complicadísimo proceso van pasando de chip en chip hasta que sus resultados se muestran en pantalla o se envían por bluetooth o lo que sea. Está creado de tal forma que las instrucciones se ejecutan muy deprisa. En el hardware reconfigurable las instrucciones son preparadas por nosotros: hacer la raíz cuadrada de un número A y luego restarle la mitad de otro número B para devolver la cotangente de su inversa. A y B se pueden poner directamente en los pines de una FPGA (ejemplo de hw reconfigurable) y el resultado sale en otros pines de forma casi instantánea.

Cada operación se hace en menos tiempo que en el Intel. Pero esto no siempre es mejor. No es que las FPGA sean mejores que los microprocesadores o más rápidas. Simplemente hacen ciertas cosas a un coste mucho más bajo. Coste es tiempo, energía y, en algunos casos, peso y volumen.

Tienen otras ventajas, como que al ser reconfigurables nunca están obsoletas. Puede dejar de fabricarse una FPGA pero será perfectamente reemplazable por otra de la misma marca o de otra, porque es totalmente personalizable. Por esta razón se usan en aviones, que son máquinas que tienen que durar 25 años y es necesario garantizar que siempre va a haber repuestos y piezas.

La única razón por la que las FPGA se estudian en la universidad es porque las marcas (básicamente Xilinx y Altera) morirían si no donaran miles de aparatos cada año a los laboratorios para que los alumnos hagan un semáforo. Estas placas cuestan de doscientos a miles de euros. Tienen de todo, Ethernet, salidas VGA, audio, botones, switches, potenciómetros, pantallas LCD, LEDs...

Yo siempre he estado obsesionado con las FPGAs. Uno de los requisitos de elección del máster fue que aparecieran en algún lado del programa porque me apetecía volver a programarlas, ahora que las entiendo y no como pasó en la carrera. Lo que me molesta, razón principal por la que me he inventado este proyecto, es que yo no pueda comprar una placa, programarla en el entorno que yo quiera, con el lenguaje que yo quiera y usarla para lo que yo quiera.

¡Hasta ahora! Gracias a la revolución iniciada por Arduino (bueno, iniciada por el open-source hace treinta años), la gente está pensando que aprender a programar hardware en la comodidad de un hogar no tiene comparación con la presión, olor y frío de un laboratorio en una universidad. Y lo que es más importante: puedo programar lo que yo quiera y no el semáforo de la práctica de teleco o industriales.

Pues lo que me hizo decidirme por la investigación en este ámbito es que, como era de esperar, ya hay alguien que está aprovechando este tirón y aplicándolo a las FPGA. Hace una semana me compré una placa Papilio Platform a Gadget Factory y ahora mismo tengo un LED parpadeando cada 600 milisegundos programado desde el entorno de desarrollo de Arduino, como si estuviera programando una duemilanove o una Arduino Uno.

He comprado la más potente (500.000 puertas, que es una cantidad media) y me ha costado $70.

Ahora, lo que toca, es comprobar qué programas y shields de Arduino son compatibles con esto, detectar por qué no lo son los que fallan e intentar corregir esas cosas para facilitar a otros, con más capacidad creativa, crear cosas increíbles.

Por ahora he comprobado que no se puede escribir un valor analógico. Esta parte requiere cierto dominio de los temporizadores del Atmega103 que se emula en la placa y como ya me peleé en su momento con ellos voy a intentar empezar por aquí.


domingo, 21 de marzo de 2010

Veinte curiosidades (técnicas) del mundo aeronáutico


  1. Los estabilizadores horizontales de cola (las alas de la parte posterior de los aviones) más que sustentar, empujan hacia abajo la cola de los aviones.
  2. No es lo mismo la ignición que el arrancado de un motor. Se arranca con fuerza hidráulica (líquido a presión) y una vez se alcanza una velocidad, se inicia la combustión.
  3. Donde menos gasto de combustible se hace es en el límite de la troposfera. Por debajo hace más calor (es más difícil refrigerar) y por encima no hay suficiente aire para empujar el avión. [Edit: sólo aviones turbofán]
  4. En el Ecuador se vuela a 20km sobre el nivel del mar. En los polos a 11.
  5. La temperatura del exterior de un avión comercial es de -65ºC y la presión 0.2 bares.
  6. La medición de altitud de los aviones se basa en la presión y depende de ésta por lo que no es real. Los aviones no se chocan porque todos llevan el mismo error, al compartir el mismo entorno. [Edit: ahora hay radioaltímetros]
  7. Con aire seco es más fácil despegar.
  8. Una persona sin suficiente oxígeno puede pensar que está haciendo todo bien cuando no es para nada así. En ciertas situaciones es obligatorio que los pilotos usen máscara de oxígeno.
  9. Algunos aviones tienen un sistema de emergencia de generación eléctrica consistente en un pequeño molino de viento (aerogenerador) que sale del fuselaje. Se llama RAT.
  10. El RAT cae por gravedad cuando ninguno de los generadores funciona.
  11. El aire acondicionado debe compensar el calor que produce cada pasajero, que es equivalente a una bombilla de 100W.
  12. En los lavabos, se tira del aire desde fuera, a diferencia del resto de la cabina, que se empuja para renovarlo. Así si hay algún problema, el olor no se cuela a la cabina.
  13. Peor que el hielo, para los aviones, es el agua superenfriada. Las gotas sin impurezas no cristalizan bajo cero hasta que impactan en el avión. Para estos casos se montan sistemas anti-hielo.
  14. Lo malo de tener los motores detrás de las alas es que el hielo acumulado en ellas puede desprenderse de golpe y dañarlos.
  15. Los motores funcionan mejor en lluvia, porque tienen más capacidad de empuje con agua que con aire (no se puede nadar en el aire). [Empujan más pero no gastan menos]
  16. Un avión se estrelló porque, al aterrizar, la lluvia apagó un motor. Desde entonces hay que tomar tierra con los motores en un régimen del 45%.
  17. El botón más difícil de accionar en cabina es el de extinguir fuego en un motor. La razón es que sale muy caro reparar la acción del extintor.
  18. Antes del amerizaje del Hudson (causado por pájaros en el motor), en la cabina olía a pollo frito porque el aire acondicionado se saca del motor. Este proceso se llama sangrado.
  19. El Boeing 787 es revolucionario por (casi) no utilizar aire sangrado del motor. Por ello, necesita generar cuatro veces más de potencia eléctrica que un A330 para aire acondicionado, sistemas antihielo, etc. Airbus decidió seguir usándolo en su A350. Esta diferencia puede hacer interesante la competencia en un futuro cercano.
  20. En el ala derecha hay una luz verde y en la izquierda una roja. Aunque parezca que sirven para saber si un avión va o viene, las luces de navegación no se ven desde atrás. Su cometido es actuar de semáforo en un cruce de dos aviones en el aire. Si un piloto ve la luz verde (del ala derecha del otro avión) tiene preferencia. Si no, verá una luz roja. Como en los coches, tiene preferencia el que viene por la derecha.
Estos datos son apuntes que estoy recogiendo de comentarios de profesores y algo de wikipedia por mi parte en un módulo del Máster en Integración de Sistemas de Aeronaves de la Universidad Carlos III, que nos están dado a empleados de EADS/CASA.

La foto que ilustra el post tiene licencia Creative Commons bajo condición de reconocimiento. Es del usuario individuo de flickr.

martes, 2 de marzo de 2010

Controlar un vehículo aéreo no tripulado desde Android

Este post no es un tutorial, sólo una recopilación de apuntes.


Un Vehículo Aéreo no Tripulado (UAV - Unmanned Air Vehicle, desde ahora) es un avión, helicóptero, quadcóptero o cualquier cosa que vuele sin la supervisión en tiempo real de un humano. La diferencia entre un UAV y un vehículo radiocontrolado es que el último necesita la intervención y supervisión continua de algún ente que lo domine y el primero tiene los sistemas típicamente electrónicos que le confieren la inteligencia suficiente para ejecutar órdenes, lidiando con los obstáculos o impedimentos (viento, fallos de comunicación, etc.) por sí mismo.

Hay gran cantidad de proyectos de UAVs, desde los de bajo presupuesto hasta los utilizados en operaciones militares, capaces de transportar y disparar armamento (UCAV, Unmanned Combat Air Vehicle). Además, teniendo en cuenta que los aviones de transporte civil aterrizan de forma automática en la mayoría de las situaciones, habría que tenerlos en cuenta al hablar de vehículos no tripulados.

En lo que estoy trabajando desde hace unos meses con un compañero del trabajo es en crear la -ya clásica- estructura para un quadcopter. Gracias a lo que ha avanzado la tecnología en motores R/C, es bastante económico hacer un vehículo volador con cuatro motores brushless y un controlador tipo Arduino.


Las características del sistema que hay que maximizar en principio son:
  • Duración del vuelo
  • Peso que es capaz de levantar
  • Dureza y tolerancia a los choques
  • Capacidades (GPS, cámara, acelerómetro, brújula, telemetría, etc.)
Lo que hay que minimizar es:
  • Peso de todo el sistema
  • Tiempo de respuesta (en general)
  • Coste
Un móvil moderno tiene las siguientes capacidades y características, por orden de importancia:
  • Peso reducido
  • Procesador de 300Mhz-1Ghz
  • Puerto de comunicación USB
  • Conexión GPRS/UMTS
  • Batería de larga duración
  • Acelerómetro de tres ejes
  • Brújula
  • GPS
  • Altavoz
  • Pantalla gráfica
  • Dispositivo de almacenamiento
  • Cámara de fotos y vídeo
  • Cierta dureza
  • Micrófono
Es una elección lógica, por lo que no soy el primero en pensar que es un controlador perfecto para un UAV. Si elegimos un móvil Android para el proyecto, dado que es Open-Source y se basan en hardware potente, el equipo parece tener un potencial impresionante (y bastante divertido).

Temas resueltos:
  • Aunque la electrónica de control y comunicaciones se realice en el móvil, un controlador externo basado en Arduino (con chip AVR) deberá lanzar las órdenes a los motores.
  • Desde Android se cambian los parámetros de vuelo, no se controlan directamente los motores.
  • La comunicación con el móvil se hace por GPRS/UMTS o Wi-Fi indistintamente.
  • Aunque se cuente con un GPS, el control se debe hacer en base a datos de un sensor de altura o barométrico, externo al sistema.




Los asuntos que aún hay que tratar son (algo así como un TO-DO List):
  • Habilitar la comunicación serie en el móvil, modificando el kernel del móvil: http://code.google.com/p/android-serialport-api/ y http://forum.xda-developers.com/archive/index.php/t-496976.html
  • Crear el circuito interfaz entre móvil y el controlador externo. http://www.instructables.com/id/Android_G1_Serial_Cable/
  • Dotar al software de prioridad suficiente en el móvil para evitar que otras aplicaciones lo saturen
  • Conseguir un quadcopter totalmente funcional radiocontrolado con Arduino y alguno de los proyectos libres disponibles:
  • Probar si el acelerómetro del móvil es suficientemente:
    • Sensible
    • Rápido detectando cambios,
    • Rápido comunicándose con el software
    • Rápido comunicándose con la Arduino
    Puesto que es bastante posible que falle en alguno de estos pasos, habrá que tener en cuenta la posibilidad de adaptar un acelerómetro externo conectado directamente a la Arduino.
  • Crear un protocolo de comunicaciones que admita comandos desde un portatil como:
    • Ir a un punto con el GPS
    • Pararse, manteniendo una altura.
    • Tomar una foto
    • Empezar un vídeo
    • Terminar un vídeo
    • Calibrar a 0
    • Aterrizar
    • Desplegar un paracaídas (por qué no)
  • Crear un sistema de telemetría que envíe datos por el mismo canal de comunicación al portatil.
    • Datos del GPS
    • Datos del acelerómetro
    • Vídeo en tiempo real
Nota sobre licencias: todas las fotos son CC de fuentes mencionadas y vinculadas en el post.

miércoles, 28 de enero de 2009

3dsymax - El canal de la infografía española


Orígenes: las news y el IRC


Al principio de los tiempos de Internet (hace miles de e-años), antes de los portales, antes del IRC y continuando el rollo en las BBS, existían las news. Este concepto de comunicación es totalmente desconocido para el que haya entrado en la red a partir del año 2001. Esta forma de comunidad emigró a los foros en la www.

Empecé en el mundo de las news coincidiendo con la salida de unos fascículos que había sobre 3d Studio R3 en 1996. En algún grupo de news leí sobre el IRC y sobre el canal de chat #3dsymax.

Recordemos que en 1997 se pagaba Internet a precio de llamada local, que no era gratis como ahora. El de padres más permisivos con las horas al día de Internet era el que más tiempo se pasaba en el IRC, con lo que al poco tiempo ya era uno de los administradores del canal.

La web


En la web había contados tutoriales de 3d Studio y 3d Studio Max (y buscar en yahoo y en altavista era un infierno por lento) por lo que me dediqué a recopilarlos. La web se llamaba 3d Vision y era la típica página personal que teníamos los infógrafos amateur por entonces. Lista de tutoriales, lista de links a otras webs y galería con todos nuestros trabajos.

Esta web dejó de ser personal para convertirse en la página oficial del canal #3dsymax y en el año 2000 se compró el dominio 3dsymax.org. Hasta hice una base de datos en Access y no tengo la menor idea de cómo conseguí conectarla a una página web para mostrar la lista de tutoriales, una lista de usuarios, etc. Como una subsección más se creó el foro, dedicado a las consultas técnicas sobre 3D Studio, Max y otros programas de modelado y animación.

[Primeras versiones de 3dsymax.org en archive.org]

El foro


Poco a poco el foro fue ganando importancia hasta tal punto que "la web" se convirtió en "el foro" e incluso cuando el Messenger mató al IRC, 3dsymax ya era un foro y no un canal de IRC. Hacíamos concursos (alguno hasta patrocinado), teníamos clanes de juegos como del Counter Strike, hacíamos quedadas en las que nos reuníamos 30 ó 40... En esos tiempos pertenecer a un grupo de este tipo era muy geek por lo que todos teníamos bastante en común.

La primera crisis


Había dos tipos de usuarios, los que veníamos del IRC, en muchos casos amigos y conocidos desde hacía años y los nuevos usuarios del foro, que no necesariamente se habían pasado por el canal. En ese momento el caracter técnico cedió ante la conversación casual y fuera de tema ya que antes para contar el fin de semana teníamos el chat.

Los moderadores y administradores tomamos la decisión de crear la categoría Offtopic(fuera de tema) para mover este tipo de conversaciones y durante un tiempo estuvimos vigilando activamente que nadie se saliera de los temas para preservar la calidad de las respuestas y de la información. Al fin y al cabo el servidor tenía un coste y los Gigas de transferencia que se hacían al mes se iban en chorradas.

Más crisis


Surgió una plataforma autóctona que operaba en el subforo Offtopic y que tenía una especie de cruzada contra los administradores. Eran los rebeldes de la clase y de vez en cuando salían por el resto de foros a sembrar cizaña. En muchos casos eran grandes infógrafos que simplemente querían pasar un buen rato y de hecho era gente bastante graciosa y ocurrente. En 2004 Offtopic llegó a los 1000 mensajes, teniendo 4000 el foro "general". Dos años más tarde ambos foros se empataron con unos 20.000 posts cada uno.

La muerte


La solución desesperada y un tanto autocrática fue acabar con la sección de Offtopic y prohibir su dispersión por el resto de foros. Incluso sugerimos crear un foro completamente independiente para los sublevados.

Por lo tanto el foro murió de cansancio y dejadez a mediados de 2006. Los buenos artistas y técnicos no veían sentido a publicar sus trabajos en un gallinero para que se pierdan entre el bullicio. Más tarde, otro de los antiguos administradores intentó reflotarlo. Compró otro motor de foros e hizo un portal de infografía con éxito relativo y aunque le he perdido la pista a la web, sé que ha tenido problemas con el hosting y se pasaba semanas inactivo. Según las últimas estadísticas (agosto de 2008), cuando está activo recibe miles de visitas al día desde google, de toda la información que hemos generado en diez años. Hay miles de palabras clave asociadas a la web y hay que decir que se hizo un gran trabajo de posicionamiento desde el inicio. La publicidad que se puso, por cierto, daba unos luctuosos $100 al año.

Conclusiones


Me he propuesto recuperar toda esa información y colgarla en algún lado. Al fin y al cabo son miles de horas las dedicadas aunque creo que fueron una buena inversión, aprendí mucho sobre páginas web, programación, mantener un proyecto grande y lo más importante, fracasar.

El primer foro de infografía española hoy es 3dpoder. Tienen un hilo sobre 3dsymax. No he podido leerlo entero porque tiene 20 páginas y la mitad de los mensajes son offtopic. Incluso parece que una usuaria anuncia que va a ser madre por la página 4.

martes, 6 de enero de 2009

Noche de vacaciones. De Gene Kelly a Darth Vader.

Por suerte vuelvo al trabajo pronto. Dejaré de perder el tiempo en viajes absurdos por Internet.

No sé cómo me encuentro viendo un vídeo de Singin' in the Rain (Good Morning[youtube]) y recuerdo que Gene Kelly es el que sale bailando[youtube] con Stewie en un capítulo de Family Guy así que me pregunto con quién actuaba originalmente. Con Jerry (de Tom y Jerry). En un related de youtube me sale el vídeo "Ding fries are done" de Peter Griffin y recuerdo que es una versión del que me parece el villancico más escalofriante, Carol of the Bells [en youtube], que según leo en la wikipedia es de origen ucraniano (Shchedryk, de Mykola Leontovych aunque basado a su vez en el Folk del país [unas cuantas versiones en mp3]). Para encontrarlo, busco información sobre Home Alone y me sorprende ver que el responsable de la banda sonora es ni más ni menos que John Williams. Por un momento pienso que es el compositor del villancico. Técnicamente es una obra en 3/4 alternada con un impetuoso 6/8 (merry merry merry Christmas) basada en un motivo musical llamado ostinato. Básicamente es una repetición que construye la composición. Es la base de la música dance y gran parte de la electrónica y el jazz pero me intereso por otros usos, especialmente en clásica. Hablan del movimiento Mars[youtube], de la suite The Planets, de Gustav Holst. Al escuchar su bélico 5/4 vuelvo a John Williams, ya que recuerda muchísimo a las escenas previas a la guerra en Star Wars. En el artículo sobre su banda sonora leo que The Planets se puede escuchar en El Retorno del Jedi, pero con su movimiento Uranus[youtube]. Me pongo la película que, por cierto, he re-visto la semana pasada así que encuentro rápidamente la escena de Luke ayudando a Vader a subir a una lanzadera. Reconozco las ocho primeras notas de Uranus pero nada más. Indago un poco, me extraña que Mars no venga referenciado. Al final, encuentro que George Lucas utilizó este movimiento como banda sonora temporal por lo que Williams la fusiló totalmente.

Así que me voy a dormir.

jueves, 20 de noviembre de 2008


Floyd se preguntaba a veces si el bloque de noticias, y la fantástica tecnología que tras él había, sería la última palabra en la búsqueda del hombre en perfectas comunicaciones. Aquí se encontraba él, muy lejos en el espacio, alejándose de la Tierra a miles de millas por hora, y sin embargo, en unos pocos milisegundos podía ver los titulares de cualquier periódico que deseara. (Verdaderamente que esa palabra de «periódico» resultaba un anacrónico pegote en la era de la electrónica.) El texto era puesto al momento automáticamente cada hora; hasta si se leía sólo las versiones inglesas, se podía consumir toda una vida no haciendo otra cosa sino absorber el flujo constantemente cambiante de información de los satélites— noticiarios. Resulta difícil imaginar cómo podía ser mejorado o hecho más conveniente el sistema, pero más pronto o más tarde, suponía Floyd, desaparecería para ser reemplazado por algo tan inimaginable como pudo haber sido el bloque de noticias para Caxton o Gutemberg.


Arthur C. Clarke - 2001: A Space Oddyssey (1968)