Connect – Arduino + Ruby + FTP + lindenScript + OpenSIM

Esta semana he asistido al taller Connect, en el centro de arte LABoral, ya soy un veterano de ellos. Este curso/taller trataba sobre la interconexión de hardware/software a través de diversos protocolos… serial, usb, midi, osc… arduino, processing, puredata, php, python… muy divertido.

captura-opensim.pngEntre todo lo que fuimos haciendo, mis pequeños proyectos durante el curso han sido un teletenis (al estilo clasico del PONG de los 70) en processing, cuyas raquetas respondian a dos potenciometros conectados a un arduino… vamos, como el original pero con un backend high-tech.

Pero el otro proyectillo que surgió, junto con Pablo de Soto, y que acabó siendo bastante interesante, fue la idea de tomar datos del mundo real e insertarlos en un mundo sintético en tiempo real, siendo los cambios paralelos en ambos entornos.

Pues nada, instalé un servidor de OpenSim (el software liberado que corre en los servidores de Second Life), y empezamos a jugar con lindenScript, el lenguaje de scripting de este motor, sintaxis similar a C… sin problema. Asi, encontramos el llHTTPRequest… la mitad ya estaba hecho.

Con un SquidBee, recogemos los datos de luminosidad, humedad y temperatura del entorno real, y despues de transformarlos en valores “humanos” (% de luminosidad y humedad, y ºC de temperatura) los enviamos por el puerto USB/Serie a un PC, ejecutando un script en Ruby, que crea un archivo de texto con estos datos y lo sube a un ftp cada 10 segundos.

Luego desde el mundo de OpenSim, tenemos un scrip asociado a un objeto, que cada 10 segundos también, hace un HTTPRequest a la url donde se sube el fichero, lo descarga y lo parsea extrayendo los datos que usamos para modificar el estado de este objeto. En este caso, es la “Farola” (palo con una bola roja encima), que cambia de color con la temperatura (de negro si es menor de 15º a 100% rojo si es superior a 30º), y de opacidad con la luminosidad (transparente a 0% de luminosidad a opaco con el 100%). El sensor de humedad se nos estropeó, asi que no hicimos nada con el.

La idea ahora es aplicar estos cambios globalmente en el mundo virtual, de manera que podamos cambiar el estado del dia virtual dependiendo del dia real, etc. Pero ha sido interesante este primer paso.

Producción Masiva

produccion_masiva.jpgNunca había hecho tantos PCB’s de una vez. Estoy preparando el material para un taller que realizaré para la LABoral junto con el proyecto de ocio juvenil Abierto hasta el amanecer del Ayuntamiento de Gijón.

supersensor.jpgEl taller, titulado “La ciudad invisible” consistirá en la realización de unos pequeños circuitos que nos permiten escuchar los campos electromagnéticos que nos rodean. Los participantes soldarán y construirán los circuitos para luego moverse por diferentes entornos escuchando las reacciones del dispositivo a los campos electromagnéticos de su alrededor, grabándolos y elaborando mapas y apuntes de zonas que consideren de interés.

A ver que tal sale, tengo ganas.

GBCartFlasher – Segundo capítulo.

Sigo con el desarrollo del flasheador de cartuchos de GameBoy. Poco a poco vamos haciendo progresos, ya tengo un prototipo definitivo del programador con el FT232RL  funcionando sin problemas,  he traducido la aplicación de flasheo al castellano y he añadido una opción al archivo de configuración que si está activada arranca por defecto en modo USB (deseable puesto que sólo estamos trabajando en el interfaz USB). También he creado una pequeña aplicación para sacar a información de los las roms de gameboy, así podemos saber que cartuchos son interesantes para la conversión, sabiendo de antemano cuanta rom y ram tienen, y qué mapper. Para llevar todo esto, he creado un wiki, http://wiki.ladecadence.net, en el que además iré llevando el progreso de mis otros proyectos. Podeis pasaros para echar un vistazo.

GameBoy Cart Flasher

Estos dias he estado preparandome un programador de cartuchos de gameboy, bien, los cartuchos de gameboy son ROM, asi que hay que substitituir estas ROMS por chips FLASH para luego ser programados. El que me he hecho está basado en el diseño del GBCartFlasher V2, pero a raiz de un post en gp32spain.com estamos desarrollandolo para hacer una nueva versión. De momento tengo un prototipo con el nuevo chip FT232RL de FTDI, y estamos estudiando diseñar cartuchos nuevos para no tener que modificar los originales, que es un trabajo bastante fino y pesado.GBCartFlasher

Este es mi primer prototipo, que usa una placa externa para la comunicación por USB, con un FT232B.

Los cartuchos que he fabricadolos hice partiendo de cartuchos originales ROM+MBC1+RAM+Pila quitando la ROM y substituyendola por unaFLASH de 4Mbit, una AM29040B PLCC32, que hay que adaptar al pinout de la ROM original… el resultado: GBCartFlasher Cartucho 4Mbit

Ahora estamos trabajando en modificar cartuchos MBC5 con flash de 32Mbit, asi podriamos meter cualquier juego de la GameBoy/ GameBoy Color… usando un chip AM29F032B… y estudiando la posibilidad de hacer cartuchos a medida para no tener que adaptar el pinout de los ROM al FLASH… que en el caso de 32Mbit, es bastante más complicado.

Incluso se está barajando implementar la funcionalidad del MBC5 en un microcontrolador, asi no dependeriamos de cartuchos originales para usar el MBC5… Pero esto ya con tiempo…

Ya iré informando de nuestros progresos, de momento, mi programador está funcionando :-)

GP2X BreakOutBoard

GP2X BreakOutBoardEstos dias después de enladrillar mi GP2X con el Firm 4.0 (culpa de las pilas), decidí terminar el proyecto que tenia en marcha para hacerme una BreakOutBoard para la GP2X. La que me he construido tiene Salidas de audio y video (compuesto, no S-Video), Puerto serie RS232, J-Tag para puerto paralelo y USB Host. La he probado y garantizo que funciona el J-Tag, el Serie y el TV-Out, el USB todavia no lo probé, porque como vereis en la foto, no tenian el conector cerca de mi casa y tardaré un par de dias en comprarlo.

EDIT: Probado el USB Host con un pad. Funciona perfecto.
Adjunto los PDF con las mascaras para fabricar la placa, y la lista de componentes:

PCB – Pistas
PCB – Compo

Componentes:
IC1- MAX3232CPE, IC2 – Regulador 7805,  Resistencias: 2 de 33 Ohm, 7 de 100 Ohm y 2 de 15K, Condensadores cerámicos: 5 de 100nF, 4 de 33pF, 2 de 47pF y uno de 410pF, Condensadores electrolíticos: 2 de 10uF, Diodos: 7 1N4148, Conectores: 1 SUBD9, 1 SUBD25, 3 RCA, 1 DC Jack, 1 USB”A”, y tira de pines.

Fuente de alimentación

Fuente FuncionandoFuente -  PCBComo ahora estoy usando una fuente de laboratorio comercial, no me había acordado de postear la fuente de alimentación que me construí para alimentar los proyectos una vez fuera de la mesa de mi “taller”. Es una fuente estabilizada de 5 y 9V bastante simple; transformador, rectificador y reguladores de voltaje…

Adjunto los diseños de la placa y la lista de componentes.

Placa – pistas

Placa – Serigrafia

Componentes: R1: 220 Ohm, C1, C3: cerámicos 100nF, C2: cerámico 22pF, C4: electrolítico 470uF 25V, D1-D6: 1N4004, IC1: 7809T, IC2: 7805T, Led 5mm, y un transformador de 12V 2.4 A.
PD:
Hay un pequeño puente entre D4 y el conector de pines de la salida que no sale en la serigrafia.

Desde la sala de control

panorama-situation.pngEstos dias estoy participando del proyecto de un amigo, Pablo de Soto, arquitecto y activista, miembro de hackitectura.net. Situation Room, una instalación que simula , emulando las salas de control militar y similares, una posible sala de situación civil, desde la que se analizarian y cartografiarian datos relevantes para la sociedad. Junto con la instalación, se están desarrollando una serie de talleres y charlas, con participantes como el Bureau d’etudes, y los componentes de hackitectura.net, en los que se tratarán diferentes temas como qué datos serían relevantes para monitorizar y cartografiar, o como hacerlo a nivel de software y representación. Estoy colaborando con la parte técnica de la instalación, soft, hard, y algun guiño tech como un efecto de luces realizado con Arduino. Muchas gracias a Pablo por contar conmigo.

Un saludo desde la sala de control.