Blogia

mundosimaginados

Performance inacabada para fachada digital y coreografía

El proyecto que hoy les cuento es uno de esos que se va construyendo poco a poco. Recientemente conocí Jaime de Arteklab impulsor convencido de esta aventura y facilitador de los primeros pasos gracias a su residencia en etopia_ durante este mes.

Hace tiempo que le tenía ganas a la fachada digital de etopia_ pero en estos casos ya se sabe, si hacemos algo hagámoslo bien. Para hacer algo "normal" no nos ponemos. Y eso que hemos hecho pero no hemos terminado. Este proyecto aún está en curso.

Hablé con Nestor y me dijo un poco lo mismo. Intercambiamos ideas pero coincidiamos en que la primera obra con que uno se enfrenta a la fachada tenía que ser algo diferente.

Y hete aquí que las ideas de Jaime encendieron la chispa. Enseguida en mi cabeza todo empezó a encajar.

La propuesta era hacer un espectáculo de danza interactivo. Coincidía que Sylvie está también estos días en etopia_ y si le apeteciera sería la primera en probar. Por lo que conozco está entusiasmada con la idea.

Vayamos por partes.

Enseguida diseñé tres escenas para la fachada.

Una basada en triánculos,

otra con curvas de Bezier

y una última con partículas.

El reto era controlarlas, crear la interacción y conseguir que esta fuera en la pasarela. Así el intérprete de la coreografía danzaría con los gráficos en tiempo real.

Al haber una distancia considerable entre el control y la pasarela, programé en processing un sketch de visualización y otro de transmisión de datos. El primero recibiría los datos mediante TCP/IP para producir la representación de las escenas que había ideado. Y el segundo conectado a un Arduino leería los datos de dos acelerómetros colocados en las muñecas del performer y los envíaría hacia el que realiza la presentación.

Para ello configuré un router wifi que viera un equipo situado en el control de la pantalla y otro cerca del punto en el que se fuera a desarrollar la performance. Para las pruebas usé un Arduino conectado vía USB con el ordenador que estaba en la pasarela. Tanto Jaime como yo no eramos performers excesivamente exigentes y por lo tanto no nos importaba que hubiera un cable colgando. Para la versión definitiva como mínimo conectaremos el arduino con el pc mediante RF, Bluetooth o ANT ya veremos.

Las pruebas que hicimos nos avisan de que el punto de acceso tiene que tener un alcance largo para facilitar el que se cubra toda la pasarela y así conseguir un resultado más espectacular.

Aún hay alguna cuestion pendiente de como controlar el desarrollo del espectáculo y hay otras que están avanzadas como es que los algoritmos que se incluyen más abajo se adaptan al performer.

El sketch de Arduino escala los resultados produciendo una salida escalando el valor obtenido en cada momento conrespecto al valor máximo y mínimo que se haya obtenido en la performance. Sería parecido a los principios de los compresores de audio.

int lmax[6];

int lmin[6];

int lectura[6];

void setup()

Serial.begin(38400); 

for (int i=0; i<6;i++) 

{    

lmax[i]=1;   

lmin[i]=127; 

}

}

void loop()

for (int i=0; i<6;i++) 

{     

lectura[i] = analogRead(i)/4;   

if (lectura[i] > lmax[i])   

{      lmax[i] = lectura[i];    }     

if (lectura[i] < lmin[i])   

{      lmin[i] = lectura[i];    }   

Serial.write(int(map(lectura[i], lmin[i], lmax[i], 1, 127)));    

  }   

delay(100);

}

El primer sketch de processing es muy simple ya que lo único que hace es leer los datos del arduino y enviarlos por red al otro ordenador.

import processing.net.*;

import processing.serial.*;

Serial myPort;

Server s;

Client c;

int dato = 0;

void setup() 

size(45, 25); 

background(204); 

stroke(0); 

frameRate(30);  

s = new Server(this, 12345);  

myPort = new Serial(this, "/dev/ttyACM0", 57600); // poner el puerto serie en el entrecomillado según SO.

}

void draw() 

{   

if ( myPort.available() > 6)    

{        

for(int i=0; i<6;i++)   

{     

dato = c.read();   

         s.write(dato);

}

}    

}

El segundo skech es el que se encarga de la visualización, se basa en el ejemplo Demo->Graphics->Particles de processing y para hacerlo funcionar basta abrir el ejemplo y sustituir el programa demo por este.

int ancho = 270;

int alto = 63;  

import processing.net.*;

ParticleSystem ps;

ParticleSystem2 ps2;

PImage sprite;  

import processing.serial.*;

import processing.net.*;

Serial myPort;

int val;

int dato[] = new int[6];

int dato_max[] = new int[6];

int dato_min[] = new int[6];

Client c;

void setup()

{
size(1024, 768, P2D); 

orientation(LANDSCAPE); 

sprite = loadImage("sprite.png"); 

ps = new ParticleSystem(1024); 

ps2 = new ParticleSystem2(1024); 

hint(DISABLE_DEPTH_MASK);

dato[0] = ancho / 10; 

dato[1] = alto / 15; 

dato[2] = 0; 

dato[3] = ancho - (ancho / 10); 

dato[4] = alto - (alto / 10); 

dato[5] = 0;   

dato_min[0] = ancho; 

dato_min[1] = alto; 

dato_min[2] = ancho; 

dato_min[3] = alto; 

dato_min[4] = ancho; 

  dato_min[5] = alto;   

for(int i=0; i<6;i++) 

{   

dato_max[i] = 0;

}   

noStroke();   

background(55); 

// c = new Client(this, "xxx.xxx.xxx.xxx", xxxxx); 

c = new Client(this, "127.0.0.1", 12345); 

void draw ()

{

fill(255, 35); 

rect(0, 0, ancho, alto);  

fill(0,254,254);     

if (c.available() > 6)  

{   

for(int i=0; i<6;i++)   

{     

dato[i] = c.read();   

}   

stroke(255); 

}  

ps.update(); 

ps.display();   

ps.setEmitter(dato[0],dato[1]);

ps2.update(); 

ps2.display();   

ps2.setEmitter(dato[3], dato[4]);
}

Como conclusión comentar que el proyecto está en un 90% acabado. Faltaría poner fecha y contar con una infraestructura potente y adecuada. No descartamos triunfar en pocos días con esta nueva propuesta. ¿Alguien se anima?


Cuando estoy en deuda y no lo sé...

Si hay algo en mi vida que me ha preocupado es el estar en deuda y no saberlo. Recuerdo hace bastantes años en un pequeño comercio en el que tenía cuenta por parte de una asociación y por la mía propia. Hacía consumos por las dos vías dependiendo del beneficiario y sin problema... o eso creía yo. Resulta que en cierta ocasión hablando con el comerciante salió el tema (puede que él lo provocara) de los que le pagaban mal o no pagaban. Y yo le pregunté: yo no te debo nada, ¿verdad? Y resultó que sí. Mi deuda era antigua. Además había comprado y abonado otras posteriormente tanto por mi parte como a nombre de la asociación. Al preguntarle me indicó que había perdido buenos clientes por reclamar "olvidos" y que en mi caso había preferido dejarlo pasar porque era pequeña. Yo le dije que me parecia mal y que al menos cuando alguien me beneficiare quería ser consciente para considerar la gratitud asociada... le pagué y pedí que no dudara en reclamar en el futuro cualquier cuestión pendiente. No puedo decir que desde aquello he sido especialmete cuidadoso en evitar que esta situación se vuelva a repetir.

Hete aquí que hoy en pleno S.XXI me ha ocurrido algo parecido. Resulta que atraído por las condiciones de una oferta de un operador decido acometer las portabilidades, cambios de titulares y variados procedimientos que se enrevesan y se extienden por mor de mas de tres meses. Mi objetivo era el ahorro económico algo que expresé en variadas ocasiones a mis múltiples interlocutores en el trayecto procedimental. Pedí en varias ocasiones a varios de estos que me confirmaran que no recibiría ningún costo adicional ni reclamación de cobro ya que mi motivación era la de control de los gasto (que fuera fijo y controlable). Esta conversación dará para otra reflexión...

Resulta que en la cuenta del banco observo unos cargos que no me cuadran. Llamo a mi operador. Resulta que no sé que juego del móvil ya que no me lo saben decir (en realidad yo sí que lo sé) que traía el nuevo terminal como versión demo ha generado cargos. Y vamos que si yo quiero aplicaciones o servicios supongo que lo normal es que los solicite me los oferten lo acepte y pague, y hasta disfrute. Y resulta que puede ser que lo haya hecho y lo que haya ocurrido es que lo haya hecho alguno de los niños en mi nombre.

Y no es este el asunto del que me quejo. Bueno en segunda instancia sí. Ya que no sé si un menor puede comprar en mi nombre y que eso sea válido y legal sin haber otorgado las correspondientes autorizaciones. Ultimamente hemos oido noticias de que uno de los grandes está devolviendo dinero...

De lo que me quejo es de que un operador se haya erigido en pagador de mis correrías por internet y que haya fiado dinero para que yo tenga servicios y resulta que yo no le he contratado todas estas prestaciones y he sido un ingrato quejandome y reclamando que esas cosas no se hacen. Hoy probaré en algún establecimiento a derivar el pago a estos señores a ver si lo aceptan.

Después de hablar hasta cuatro veces con el operador y de conectarme a dos páginas web distintas (al principio eran tres pero el sistema ha decidido que dos de ellas las podía juntar, ¡qué detalle! un ratico de espera y al lío) me indican que está registrado que hemos contratado las prestaciones y que tendré que atender los importes. Por el camino me dicen que si internet es complicado (le he dado la razón como no podria ser de otra manera aunque le he contado el periplo de compañías y terminales de los que he disfrutado sin incidencias), que la letra pequeña no siempre la leemos (claro y mas aún si las pantallas son pequeñas, que los móviles de regalo son pequeñicos) y que si en un juego pone Demo puede haber cargos por funcionalidades (y yo he dicho que con perretas chufletes que si quiero algo, que faltaría más que se paga y aquí paz y allí gloria). Mi reclamación la he fundamentado en que no he sido consciente ni he recibido información de que al activar el servicio ellos pagarian por mis compras y que luego ellos me lo cobrarían a mí. Y más aun con lo peregrino de la interlocución cuando en varias ocasiones me decían que solo podían atender reclamaciones de los servicios que ellos prestan no de los de terceros. Pero resulta que se prestan a facilitarme el que los pueda pagar pero luego que me aclare yo con ellos. Qué complicada hacemos la vida. Qué tiempos en los que cuando uno quería una app se daba la mano con el desarrollador y el escribano le hacía el código en un pergamino... e inmediatamente se pagaba.

De forma bastante amable he pedido que se considere la devolución de los importes relacionados con las prestaciones al haberse erigido en intermediarios de un servicio de pago que yo no había contratado y que no había sido informado de su activación.

Ya saben que estas cosas hay que tomarselas con filosofía y buen humor y que la gente que le atiende a uno al final está trabajando. Por esto, por el camino, hasta les he contado la anecdota de lo que podía ocurrir cuando vas por la calle o estas en un centro comercial y alguien a tí o a uno de los tuyos te "obsequia", ... y resulta que luego hay que pagarlo. Y ya está el lío montado... que si "esto me gusta ...", "que se lo devuelvas ..." y del donante emerge una voz solicitando un pago. En fin ¿picaresca? 

También me he acordado de otra anécdota mas cogida por los pelos en que en los principios de la web oí a un conocido decir: "... si esto de descargar canciones no es legal, yo no quiero líos". "Que me digan a dónde puedo ir o como puedo devolver la que descargué ayer que no quiero problemas..."

En fin confiemos en la cordura y sobre todo en que estas prácticas no se repitan.

¿Cómo lo hacemos?

PovRay y Blender en Google Cloud. Generando vídeo en 4k.

 

Esto que hoy les cuento sirva para documentar mi experiencia de utilización de los servicios de Cloud Computing de Google para el cálculo de imágenes y animaciones con Pov-Ray y Blender.

Los servicios en la nube nos permiten adquirir y utilizar a demanda potencia de cálculo para el renderizado de imágenes y animaciones.

PovRay y Blender son dos proyectos veteranos que se basan en técnicas de raytracing para la generación de imágenes. Su característica principal y común en este caso es que necesitan de una potencia de cálculo elevada. Esto es debido a que los algoritmos de trazado de rayos evaluan cada pixel para decidir el color que se ha de aplicar a la hora de componer la imágen. Además si se aplican técnicas de suavizado la cantidad de cálculos a realizar crece.

Sus versiones más recientes incluyen planteamientos de programación concurrente en hilos para aprovechar los sistemas multitarea y son capaces de aprovechar todos los procesadores que se pongan a su disposición.

Los servicios utilizados que se describen a continuación son de pago se recomienda revisar las tarifas para elegir los servicios de forma adecuada.

Se accederá al Compute Engine desde cualquir cuenta de google accediendo a la cónsola de desarrollador.

Allí hay que crear un proyecto nuevo y una cuenta de facturación. Una vez activado el proyecto se puede ir al Compute Engine y empezar a trabajar. Este tutorial sirve para poner a punto un sistema básico. Aunque es más fácil hacerlo desde la interfaz gráfica.

El sistema se basa en la utilización de servidores en la nube. Para ello se crean instancias que es como se denomina a la máquina que se arrancará para su utilización.

Al arrancar una máquina virtual se pueden configurar una serie de parámetros. El más importante es el tipo de máquina. Pudiendo configurar un hardware con un procesador y 0,6 Gb de memoria principal (por menos de 2 centavos de dolar la hora) hasta un 16 cores con 104Gb de memoria (por 1,3$ la hora).

En mi experiencia la máquina adecuada para el cálculo de imágenes y vídeo en 4k es suficiente la de 16 cores con 14 Gb de memoria. 

Para arrancar la máquina hay que decidir el sistema operativo sobre el que se desea trabajar. Está disponible Debian 7 con una distribución mínima así como RedHat, SuSe e incluso MSWindows.

La elección para mi proyecto ha sido Debian. Los motivos han sido por ser el más parecido a Ubuntu y por ser el de menos planteamiento comercial.

Al lanzar una instancia se puede elegir hacerlo desde una imágen standard de la distribución o desde un disco de una máquina anterior.

Al principio cada vez que borraba una máquina borraba su disco asociado y al crearlas lanzaba un script que instalaba todo el software que iba a necesitar. 

Posteriormente he trabajado sin eliminar el disco asociado a la instancia y asociandolo a una nueva instancia cuando quería volver a trabajar. En este caso se nos facturará por el espacio que ocupa el disco si lo guardamos de una vez para otra. Pero ahorraremos tiempo al lanzar una instancia ya que tendremos el sistema configurado. Además así tenemos la posibilidad de lanzar instancias más modestas para tareas de administración y de transferencia de archivos de imágenes o vídeos y otras más potentes cuando vayamos a lanzar los render.

También existe la posibilidad de crear discos que se pueden adjuntar a la instancia discos para almacenamiento sin sistema que se puedan montar en las instancias que lancemos.

En el sistema recien instalado procederemos a la instalación de librerias y programas:

PovRay no está en los repositorios por lo que habrá que descargarlo y compilarlo. En la web del proyecto hay un documento explicativo, también hay que instalar las librerías necesarias y las utilidades. Aquí se indica lo mínimo a realizar para que funcione:

Actualizar lista de paquetes:

sudo apt-get -y update

Instalar utilidades sistema:

sudo apt-get -y install unzip

sudo apt-get -y install ftp

Instalar librerías:

sudo apt-get -y install build-essential

sudo apt-get -y install libopenexr-dev

sudo apt-get -y install libtiff5-dev

sudo apt-get -y install libjpeg8-dev

sudo apt-get -y install libpng12-dev

sudo apt-get -y install zlib1g-dev

sudo apt-get -y install libboost-dev

sudo apt-get -y install build-essential

sudo apt-get -y install libboost-thread-dev

sudo apt-get -y install autoconf

Instalar utilidades vídeo e imagenes:

sudo apt-get -y install libav-tools

Instalar servidor ftp.

sudo apt-get -y install vsftpd

Instalar Kdenlive

sudo apt-get -y install kdenlive

Instalar Blender desde los repositorios:

sudo apt-get -y install blender

Descargar y descompirmir los fuentes POV-Ray

wget "https://github.com/POV-Ray/povray/archive/3.7-stable.zip"

unzip povray-3.7-stable.zip

Instalación

cd /home/elartista/povray-3.7-stable/unix

./prebuild.sh
cd ..

  ./configure COMPILED_BY="???" 
make
sudo make install

(Es necesario sustituir ??? por el email o web para identificar la compilación como no estandar del software, si no se hace no funciona)

Instalar Blender desde la página del proyecto (se recomienda para aprovechar las mejoras de las últimas versiones):

wget "http://ftp.nluug.nl/pub/graphics/blender/release/Blender2.71/blender-2.71-linux-glibc211-x86_64.tar.bz2"
 

  tar xvjf blender-2.71-linux-glibc211-x86_64.tar.bz2

Los tres programas POV-Ray, Blender y kdenlive funcionan perfectamente desde la cónsola sin necesidad de entrar en el entorno gráfico. Mi forma de trabajar ha sido el hacer las pruebas y ediciones en local y luego subir al servidor virtual los scripts o comandos para lanzar los procesos. He probado a lanzarlos contra el servidor X de mi portátil pero el rendimiento no ha sido satisfactorio.

A continuación incluyo una serie de comandos para lanzar cada programa con los parámetros que he utilizado y que están validados. En mi experiencia POV-Ray aprovecha completamente los 16 cores observandose periodos de tiempo prolongados con el procesador al 1600%. En el caso de Blender aunque en algún caso llega a esos ratios lo normal es verlo sobre 800%. En algunos casos hay que indicarle el número de hilos que la tarea puede utilizar mediante parámetros al lanzar el programa.

Para exprimir la potencia de proceso he generado vídeo en 4k de resolución con un resultado satisfactorio como se pueden ver en los enlaces a los vídeos al final de este post.

Renderizar con POV-Ray con antialias una animación de 2000 imágenes a 4k.

povray +Iarchivo.pov +H2160 +W4096 +A +AM2 +R3 +KFI1 +KFF1999

Generar la animación corespondiente (mp4):

avconv -f image2 -r 25 -i archivo%04d.png  -b 15000k video.mp4

Dependiendo de la cantidad de movimiento puede ser necesario subir el parámetro del biterate -b (hasta 25000 p.e.)

Generar la animación corespondiente (ogv):

avconv -f image2 -r 25 -i archivo.png  -acodec libvorbis -b 15000k video.ogv

Renderizar con Blender usando 16 tareas:

blender -b 3_animacion_hd.blend -t 16 -F PNG -x 1 -a

Generar la animación corespondiente (ogv):

avconv -f image2 -r 25 -i %04d.png  -b 15000k 3_animacion_hd.mp4

La forma más fácil de obtener los archivos de las imágenes o vídeoses depositarlos en un servidor de FTP intermedio y luego descargarlos desde allí a nuestro equipo o conectarse mediante la IP externa del servidor por FTP y descargarlos. 

Con respecto a la seguridad y a la configuración de la red he utilizado las opciones estandard. Lo suyo sería revisar la configuración del linux y del firewall ya que al fin y al cabo no deja de ser un servidor conectado a Internet. Revisando los log después de tener una máquina en marcha durante una noche he detectado algún ataque chequeando puertos del sistema...

Como conclusión indicar que el resultado es completamente satisfactorio. Es cierto que hay que trabajar un poco. Pero una vez que se tiene un disco con el sistema y los programas instalados es bastante fácil lanzar una nueva instancia subir un fichero pov o blender y lanzar los render.

También me ha llevado tiempo ajustar todos los parámetros de las ejecuciones desde la línea de comandos que he incluído más arriba y que así ya temos para nuestros próximos desarrollos.

Con respecto a la cuestión económica la facturación es mensual y el consumo incurrido aparece con un par de días de cadencia. En el extracto indica de forma detallada el tipo de máquina y los minutos que se han utilizado así como los discos que se han utilizado y el tráfico de red que se haya cursado y no estuviera incluído.

 

Povray Amusant 4k video

Blender summer shape.


 

 

 


Mi campaña anti-SEO II

 

Esto está yendo más despacio de lo que había previsto en un principio.

El número de visitas no ha descendido de forma importante y esto no deja de ser curioso.

Cuando veo los log de la web no hay más que visitas que chocan contra la redirección a la página principal. Incluídos los visitantes de un gran país asiático que algunos meses no hace mucho consumían más del 50% del tráfico web bajándose mp3 de mis músicas (la versión para orquesta de la nana de Raúl era su favorita). Y con tanto éxito Vdes. se preguntarán por qué he hecho el cambio. Por una sencilla razón antes el ego se cubría con ver que me visitaban. Pero nadie decía nada, nadie escribía hace tiempo y eso no puede ser. No sé a lo mejor en esos paises no se estila...

El objetivo es concluir la performance el día que el número de visitas sea cero. Aun tendré que hacer algun trámite de derecho al olvido o algo así...

En fin seguiremos con el objetivo. Quiero llegar a que los visitantes sean todos conocidos que no vengan de ningún sistema de clasificación, sólo me valdrán las referencias... nada de paseantes.

Hace poco oí una reflexión sobre mi iniciativa y me acusaba de que iba a triunfar seguro. Si conseguía 0 visitas porque el propósito se había conseguido y si no porque sería la forma de tener más visitas... ¿qué opinan Vdes.?

Mi campaña anti-SEO

Hace tiempo que tenía pendiente una actualización de la web. La verdad es que nos lo debía hace tiempo ya que la tecnología ha avanzado lo suficiente como para que una vez estudiada la adoptemos para tener una presencia moderna e interesante. Los elementos multimedia estaban integrados de forma primitiva y la actualización era demasiado entretenida y ortopédica.

La motivación principal ha sido el seguir la estela de las nuevas formas de hacer propuestas intentando sugerir y dejando intuir sin contar demasiadas cosas como se hacía en un pasado y que funcione bien con las nuevas costumbres relacionadas con los dispositivos actuales. No tenemos tanto tiempo y mantener un sitio con mucha información cada día cuesta mas y los visitantes cada día dedican menos tiempo.

Además hace tiempo que las visitas que se reciben no muestran un interés más allá de recorrer los contenidos sin interacción alguna. Antes aún había quien se ponía en contacto e incluso con algunos hasta nos hicimos amigos.

La propuesta que voy a probar es justo lo contrario. No quiero visitas con criterios SEO. Lo que busco son visitas directas, sólo los invitados, nada de paseantes. Hace tiempo que creo que soy un estorbo para los paseantes ya que al final creo que no les intereso. Por lo tanto vamos a dedicar los esfuerzos a este experimento. La nueva web no tiene palabras clave, etiquetas, metas, la página se genera con jquery + js de forma dinámica y la galería no se muestra en el mismo orden cuando se vuelve a la web. Quizá es un poco radical pero hay que probar.

En algún momento del pasado y en alguna de las versiones de la web se llegó a tener un pagerank de 7 que se antojaba elevado. Ultimamente ha ido bajando y ahora es tiempo de abordar otros recorridos.

En fin pasen y vean y cualquier comentario será bienvenido.

www.mundosimaginados.com

Arduino Community Logo

Arduino Community Logo

Siguiendo las indicaciones del equipo de Arduino he personalizado el banner con el log de la comunidad y ha quedado así de chulo.

Arduino Yun - Multimedia server.

Esto ha sido muy fácil. He de reconocer que con la Raspberry hacer algo parecido me costó algo más pero con el Yun ha sido super fácil.

Tengo una TV pequeña que tiene la funcionalidad de grabar en un disco duro USB externo (como los TDT con USB). Quería poder ver programas grabados en el disco pero en la tele del salón usando un reproductor WD (mi tele grande no es muy smart-tv). Hasta ahora la unica solución era traer el disco duro al salón.

He usado el YUM y es bastante fácil. Se instala el paquete SAMBA y se configura (en el enlace la final un resumen muy fácil paso a paso).

Ahora mismo estamos viendo un programa en el salón que está en el disco duro que hay en la habitación de la tele pequeña por wifi.

Hay una pega que creo que voy a solucionar con unos relés y es que hay que cambiar el cable del USB del disco duro de la conexión de la tele al YUN. 

Han habido un par de crisis. Y es que he realizado unos test de carga y en algún momento saturando la red Internet iba mal y la imágen se ha congelado. Pero bueno vía wifi desde otra habitación y video en formato TS creo que es más que satisfactorio.

Si alguien sabe cómo puedo conectar el disco al YUN y a la tele a la vez para no tener que conectar y desconectar que lo diga. Pero me temo que son dos conexiones HOST y la única manera será usando unos relés y algo de python en el Arduino.

 

Arduino Yún

Arduino Yún


Hace muy pocos días que adquirí mi Arduino Yún. Las expectativas eran altas y estas son las conclusiones y andanzas de las primeras horas. Han habido sinsabores debido a que no hay mucha documentación todavía. Me recuerda la situación a los primeros tiempos de las primeras placas. En el resto de implementaciones estamos a costumbrados a tirar de la comunidad y el soporte es estupendo. Algo que en este caso está por hacer. Aunque la respuesta en los foros de Arduino está siendo fluída.


Una vez abierto me sorprende que el tamaño sea como los antiguos NG o Diecimilla que tengo por casa. La puesta en marcha es bastante sencilla. Siguiendo los pasos de la página de Arduino Yún nos conectamos a la wifi del Arduino (que actua como punto de acceso) y nos deja configurar nuestra red inalámbrica. Se reinicia y se supone que ya estamos en la misma red. En mi caso he tenido que irme al router y mirar que IP se le había asignado ya que no me ha conectado directamente, seguro que con las prisas no he hecho algo bien. Como he ido haciendo varias pruebas, lo he reseteado varias veces y sí que en alguno de los arranques ha llegado a funcionar esta característica.


Lo siguiente que he hecho es cargar el sketch blink típico de testeo para validar que todo esté en orden. Ya he visto que en el apartado puertos aparecía la IP de la placa y lo he lanzado así la segunda vez. Al proceder pide la contraseña y funciona bien.
A partir de aquí he probado con mayor o menor fortuna los diferentes ejemplos que vienen con la librería. Al principio todo ha ido bien y he conseguido ver como el entorno Arduino recibe una página web y la lanza al monitor del puerto serie del IDE mostrando el texto del html, o porqué no a una pantalla lcd ¿quién se atreve con una versión de lynx para pantallas LCD? Algo más tarde este sketch me ha empezado a dar problemas. Yo lo he achacado a que como cuento más adelante había enredado más de la cuenta. Pero no, una vez reseteado completamente el entorno (una característica más que deseable para probar sin miedo) seguía fallando. En el foro he encontrado que estaba reportado un problema que se solucionaba actualizando el IDE o sustituyendo un fichero. A partir de aquí como un reloj. 


También he tenido problemas con el ejemplo que publica la información como una página web en el servidor de linino. El almacenamiento de las páginas web de estos sketches se hace en una tarjeta SD externa y la estructura de carpetas es fija. En mi caso la tarjeta no aparecía como sd sino como sda1 y por lo tanto no funcionaba... había varias soluciones pero he preferido preguntar en el foro y me han indicado bastante rápido que revisara los problemas típicos de estructura de carpetas y permisos por si pudiera venir de aquí. En mi caso después de varias pruebas ha aparecido el enlace sd a la tarjeta en el mnt y todo solucionado. Seguramente yo habré tenido que ver en que algo no funcionara...
Contar que en algunos trabajos con Arduino me he quedado sin memoria... quiero hacer muchas cosas y los recursos son limitados. También he trabajado con servidores en publicar y leer los pines a través de la red. Mis expectativas eran altas con respecto al producto ya que veía una posibilidad de hacer algo contenido (en recursos) en la línea de lo que he hecho ultimamente. Desarrollar programas en python que se entiendan con el Arduino vía firmata (como el ejemplo del vídeo en este caso desde un PC) y además me permita publicar y leer websockets para explotar con javascript.


Lo que me he encontrado es que precisamente el proyecto a priori está concebido al revés (o al derecho según se mire y en este caso desde el punto de vista del equipo de Arduino). Lo que se ha procurado y conseguido es traer al entorno de Arduino las facilidades de interactuar con el exterior pero mandando y gobernando desde el entorno y gestionando todos los recursos desde allí. Mi planteamiento es justo al contrario veo el entorno como extensión de mis propuestas. Tanto es así que he investigado para "romper" la forma de conectarse y buceando un poco en el sistema he encontrado el puerto serie que usan para comunicarse e incluso he hecho algunas pruebas de transmitir datos. Como siempre una búsqueda en los foros han proporcionado soluciones incluso a la implememtación de firmata y la desactivación de una cónsola serie que apuntaba al puerto y podía dar guerra. No está bien solucionado y además hay todavía algunos flecos ya que si se desactiva la cónsola hay cosas que no funcionan y si el sketch cargado intenta hacer uso de la conexión ni el propio linux es capaz de arrancar. Se soluciona cargando un sketch tipo blink y una vez arrancado el linux carga el sketch correspondiente... En este caso la funcionalidad de reseteo completo ha sido realmente práctica. He tocado todo lo que se me ha ocurrido y una vez reseteado he empezado de nuevo configurando la wifi y arrancando el sistema completamente limpio. Ha sido una buena idea por parte del equipo el hacerlo así.
Lo que viene a continuación es información que se puede encontrar en la web de Arduino y en diversos sitios de internet. La idea es cometar las características y la forma de funcionar. Sugiero consultar las fuentes directamente aunque me aventuro con esta descripción en castellano ya que no he encontrado una completa todavía.


¿Que es Arduino Yún?


Es una placa que implementa un Arduino Leonardo + un linux corriendo cada uno en un procesador y una conexión entre ámbos vía serie. La idea ya había sido apuntada con ejemplos tan bien hechos como la librería firmata. Incluso en mi caso mi último desarrollo hacía algo parecido. La ventaja aquí es que está todo sobre la misma placa y conectado listo para funcionar. Lo que hace grande al producto es sin duda el gran desarrollo software que se ha llevado a cabo mediante las librerías e implementación para que los entornos se entiendan y sobre todo buscando que desde la parte de Arduino sea fácil hacer uso del linux.


¿Qué funcionalidades tiene Arduino Yún?


El proyecto está orientado a utilizar el entorno de Arduino con todas las funcionalidades de un linux. En este caso la distribución es linino que se deriva de OpenWRT. Y que se ha trabajado para que no sea necesario a priori entrar al linux para hacer cosas. Un conocimiento mas importante de linux  ayudará a hacer y entender cosas. Una de las primeras características es el poder cargar en el YUN sketchs vía wifi. El funcionamiento es simple. El IDE de Arduino muestra entre los puertos disponibles la IP del YUN para enviarle programas. En el linino cuando se recibe la petición se levanta el proceso que hace que el scheck sea transmitido al entorno Arduino vía el puerto serie que los conecta.
¿Como se conecta con el entorno linux desde el de Arduino Yún?
En los IDE más actuales (en beta) ya aparece la librería bridge que es la encargada de gestionar todos los servicios y clases que proporcionan la conectividad. Se accede a la conectividad incluyendola en la lista de bibliotecas del sketch para utilizar sus recursos.


¿Que tipos de conectividad (lógica) existen entre los entornos Arduino Yún y linux?


El trabajo realizado con la librería es importante y que por nombrar solo algunos, permite interactuar desde nuestro sketch a nivel de linea de comandos del linux (lanzando comandos o leyendo la entrada e incluso enviando scripts). Se puede interactuar a nivel de ficheros, escribiendo y leyendo datos en ficheros existentes o crearlos. Implementa funciones de red avanzadas permitiendo el acceder a información de la web via servicios http. También permite publicar información vía web en este caso haciendo uso del servidor web que corre en el linux proporcionando incluso vía REST el acceso a los pines del arduino tanto para lectura como para escritura. Esta implementación es la que mas me ha llamado la atención dado que es posible conectarse a una dirección web y desde un navegador en otra máquina interactuar con los pines del arduino leyendo o escribiendo información. Se me antoja una suerte de servidor que ya en javascript o cualquier programa de alto nivel que maneje peticiones vía web, que controle un despliegue de arduinos. Hay otro tipo de recursos que da información de los procesos de la parte del linux o que crean clientes y servidores para compartir la información así como clases de más bajo nivel que se encargan de la mensajería. Por ultimo proporciona ejemplos de interacción de alto nivel con plataformas como Spacebrew y Temboo (con una API para publicar en mas de 100 sitios) o Xively (anteriormente pachube) para leer/publicar información de sensores a lo largo del globo.


¿Qué ocurre cuando se lanza una petición desde el entorno de Arduino al linux en Arduino Yún?


Observando los procesos en el linino vemos que se activan en función de las necesidades y aparece un proceso ’python bridge.py’ que consumiendo un 10% de la capacidad de proceso se encarga de la comunicación en el lado del linux.
¿Que es linino? ¿Cómo funciona linino en Arduino Yún?
Linino es una distribución linux basada en openWRT que es habitualmente usada en sistemas linux embebidos y que consume pocos recursos. La característica más sobresaliente en este caso es la implementación realizada por el equipo de Arduino ya que junto con LuCi que es una capa web sobre el sistema operativo podemos gestionar linino desde cualquier navegador web. Conectarnos al servidor de la placa y gestionar la parte linux sin tener que utilizar la cónsola es una ventaja muy importante sobre todo si se tiene poca experiencia con linux. Las tareas habituales de instalar y desinstalar paquetes, la configuración de red (si se desea modificar) y la de programas de arranque así como la supervisión del rendimiento y revisión de log está disponible con una interfaz clara vía web y preconfigurada. Ni que decir tiene que podemos conectarnos vía ssh y por cónsola hacer lo que haríamos en cualquier linux aunque con las limitaciones de una distribución de estas características (no soporta x por decir algo). La selección de la distribución así como de la interface para gestionarla parece todo un acierto.


Conclusiones.


Como conclusión he de decir que el resultado es estupendo. Proporciona a la comunidad de programadores de Arduino a unos recursos que antes estaban accesibles via shields (lan o wifi) o librerías (firmata) y por añadidura las funcionalidades que todo un linux pone a disposición de nuestro entorno de programación favorito. En mi opinión y por mi planteamiento preconcebido no termina de satisfacer mis expectativas (el fallo es mío por no haber leído mas documentación antes y entiendo que el planteamiento es el lógico desde el punto de vista del desarrollo). Me explico. El que los pines del procesador no estén accesibles directamente desde el entorno linux resta funcionalidad a recorridos que yo había preconcebido. El uso del bridge no es razonable para los fines por mi aventurados ya que la latencia con la que trabaja hace que sean inviables (aunque creo que hay que trabajar en domesticar los ejemplos). En los foros hablan de mejoras que se pueden acometer en la forma de abrir o cerrar puertos o ficheros por el bridge para ahorrar tiempo osea que será optimizable. Además seguro estarán disponibles en las próximas versiones del IDE y las librerías. Por último nombrar que aunque dispone de 32 Mb para los sketches la librería ocupa un poco mas de la tercera parte y hay que valorar que lo que proporciona al entorno es algo muy grande pero deja menos espacio para los programas de usuario al estilo clásico de Arduino.

Disclaimer


Pido disculpas por cualquier inexactitud o información erronea o parcial vertida en esta primera e impulsiva impresión. En todo caso se anima a obtener la información de las fuentes y contrastar cualquier extremo que aquí se haya manifestado.

Concierto de Mª José Hernandez en la sala Eves Bayou

Ayer por la noche asistí al concierto de Mª José Hernandez y les aseguro que me lo pasé estupendamente.

La he visto en dos ocasiones anteriormente que yo recuerde, las dos en formato completo sobre un escenario bien pertrechada de buenos músicos.

Lo de ayer fue otra dimensión. Que de los conciertos con la banda al completo guardo buen recuerdo es un hecho pero esto es otra cosa. La sala tiene una dimensión muy acogedora y la disposición hacía que nos sintieramos como en un salón sentados en los sofas en un entorno muy complice en el que ella con un oficio incontestable mucha contundencia y delicadeza nos contó sus canciones. Sí digo contó por que lo de ayer fue una acto de comunicación de sentimientos, estéticas y sensibilidades. No nos olvidemos que el arte es un estadío de la comunicación, y eso que lo de ayer coincidiamos en que no era arte, era sentimiento, duende... magia, llamenlo como quieran, no se contarlo mejor.

Desde el punto de vista técnico estaba apoyada por un magnífico guitarrista, preciso, sutil, enérgico y musico al servicio del mensaje con un planteamiento incontestable. Ella tocó la guitarra y el piano de forma muy efectiva y no puedo mas que agradecer la velada que nos hicieron pasar. Y eso que en un formato tan próximo había lo que había sin mas, lo que estaban haciendo.

Repasaron los temas de su ultimo disco que no dudé en adquirir y que amablemente me dedicó. Era una asignatura pendiente que hoy estoy recuperando ya que lo he escuchado un par de veces... y me gusta mucho

En fin qué fin de jornada tan reconfortante y bonito.

El Gran Wyoming y los Insolventes

¡Qué bien lo pasamos en el concierto que El Gran Wyoming y los Insolventes celebraron ayer en Zaragoza!

Él lo dijo a lo largo del concierto y es que "ya nadie hace rock & roll", y ellos no hacen otra cosa. También dijo en algún momento (en inglés) que les habían contratado por dos horas y que ya valía (y eso que luego añadió lo que hizo falta)

Lejos de su imágen como estrella mediática sigue fiel a sus shows. Si alguien esperaba algo mediático se vería profundamente desencantado. 

La música basada en guitarras actualmente lleva otros derrotemos mas "modernos" y volver a oir rock del bueno, a ratos más de raiz, sin preocuparse de purismos pero sí de las historias que contaba, a ratos más psicodelico que nos llevo durtante la primera parte del concierto desde los 50 hasta los primeros 70 en un ejercicio de nostalgia y porqué no de adoctrinamiento. Chuck Berry, Sinatra, Beathles los Who por nombrar los más conocidos fueron los protagonistas de esta parte en la el hilo conductor era la proclama de la defensa de buena música bien hecha y bien interpretada. No creo haber tenido la oportunidad de oir muchos de estos temas en directo. En su faceta de showman amenizó los tiempos entre canciones a lo largo de todo el concierto entonando copla aunque de una forma contenida. Lo mismo ocurrió con la segunda parte (sin solución de continuidad ya que no hubo corte) en la que trajeron música de las siguientes décadas, incluyendo musica española, en las que alternaron temas como "Escuela de calor", "Bailaré sobre tu tumba",  "Video Killed de Rock & Roll Star", así como "Maneras de vivir" y algún otro himno de Rosendo. El único pero fué la versión del Black is Black de los Bravos que en mi opinión no estuvo a la altura del soberbio concierto al que estabamos asistiendo, adolecía de funk... En fin no se fien igual el que estaba despistado fuí yo...

Recomendable tanto desde el punto de vista musical como el de fiesta y disfrute.

Juego con python y nanoKONTROL

Hace unos días compré una Raspberry PI. Ya saben que con Arduino hemos hecho bastantes cosas.

Me he reciclado y he dedicado algún tiempo a python ya que RasPi funciona en linux se puede programar con lenguajes de alto nivel.

Con la nueva plataforma aún no he hecho nada muy complicado y eso que lo que les cuento hoy funciona en la RasPi. Si bien es cierto que no con el rendimiento adecuado para interactuar con gráficos.

Ya en tiempos implementé un pong unidimensional para jugar con los chicos.

Estos días he trabajado con los objetos gráficos de phyton y el controlador MIDI nanoKONTROL y este es el resultado... otro juego para los chicos...

 

Para que la tele me aceptara más módos gráficos que los que el Ubuntu tomaba por defecto lo he solucionado gracias a este enlace y otros parecidos.

Solucionado libreria DS1307RTC.h

Estoy estos días preparando un proyecto chulo. Hoy he tropezado un poco.

He adquirido una placa con un reloj de tiempo real que usa el chip DS1307 RTC y no había manera de compilar ni los ejemplos. el google tampoco arrojaba luz o no sabía buscarla (en algún caso me llegaba a decir que el manazas era yo). Al final en el post del blog de arduino explicaban que al cambiar a la versión 1.0 se habían producido varios cambios.

En mi caso ha bastado con editar el DS1307RTC.CPP cambiando los send por write y los receive por read ya que en la librería wire habían cambiado estos nombres con el fin de estandarizar.

El error que me daba el compilador era:

DS1307RTC.cpp:56: error: ‘class TwoWire’ has no member named ‘send’

Para solucionarlo he editado la librería del reloj de tiempo real que es más específica que la wire.

Ahora veo que esto ya estaba seguramente documentado... pero no sé si para la librería del reloj.

En fin que quede constancia por si alguno lo necesita.

 

Como queríamos demostrar...

Cuento:

Ayer asistimos (mi familia y yo) al colapso de las gasolineras de la zona en la que vivimos y del sitio que visitamos. Uno, que ya no sabe que pensar, lo asoció a la subida del IVA. Claro si han vendido más coches tendrán que llenarlos... o a lo mejor alguno más avezado también decidió hacerlo por la subida del IVA en los carburantes. 

Si bien es cierto que en el caso del vehículo el ahorro puede estar entre 500 y 1.000 euros en el caso de la gasolina llenar un depósito no lleva a un ahorro mayor de 2 ó 3 € en el mejor de los casos.

Pues no nos equivoquemos al final es lo mismo, al menos para mí. No tiene sentido que me decida a adquirir un bien por un ahorro y que en el peor de los casos me empuje a un endeudamiento que luego no podré asumir (¿les suena?). Quizá no ha ocurrido en ninguno de los casos de compras en esta ocasión y que el cielo me libre de juzgar ni prejuzgar a nadie. Y qué decir de las monedas ahorradas en colapsar una estación de servicio.

¿Estamos mal informados? ¿qué hay del pensamiento crítico? Es cierto que no deberiamos estar todos con la calculadora decidiendo a cada momento pero lo que percibo es que hay demasiado ruído que no nos deja escuchar al sentido común que cada vez habla mas bajo...

Si que es cierto que en en otros productos/artículos/servicios sí que vale la pena el haber adelantado alguna compra pero en estos casos veo la sombra de una sinecdoque como una casa. Lo de la parte por el todo nos ciega e incluso veremos a alguien que nos hará creer que es que no nos enteramos... 

Más pensamiento crítico por favor. (es una súplica no una exigencia)

Inspirado en una evocación del siglo XXX en la Galaxia de Andrómeda (que es la primera que sale en Google cuando pones Galaxia)

TROGLODITAS

No se me ocurre algo mas contundente que titular la entrada así con mayúsculas (aún a riesgo de que alguna maquinita me penalice).

Ayer asistimos a un puesta al dia de lujo de los temas que esta banda TROGLODITAS nos ofrecia en nuestra adolescencia.
Polémicas a parte respecto a cuantos trogloditas de los prehistóricos había y lo relacionado con el líder anterior. La Sala López sirvió de magnífico marco para un espectaculo que ofrecía los temas de siempre y anteriores con una calidad, ejecución y sonido realmente bueno. Lo cierto es que la predisposición era alta así como las expectativas. Y se alcanzaron con creces. 
La banda es una pasada, ¡vaya pandilla de profesionales! Los arreglos, la precisión, las dinámicas y el encanto de poner la música al servico de lo que cuentan las letras son incontestables. No puedo mas que decir aún a riesgo de no ser imparcial, por ser canciones que forman parte de mi vida, que ha sido uno de los mejores conciertos que he visto nunca. No quiero desmerecer, ni se me ocurriría,  los grandes conciertos que hemos disfrutado con el lider anterior (Loquillo). El actual cantante (Lobo), si bien con un punto menos de arrogancia, hace un papel magnífico, sin imitar pero, manteniendo la actitud (llevada al extremo en la versión oscura de La Mala Reputación traducción de la propuesta de Geroge Brasens) que el discurso sonoro requiere integrandose perfectamente con la banda. Nombrar por otro lado y para todos ellos el riesgo inherente al formato de una sala en la que la franqueza de la puesta en escena y lo que allí se haga no es negociable.
Como especialidades de gourmet destacar las versiones de "Brand New Cadillac", "Todo el mundo ama a Isabel" o "Autopista" con unas revisiones un tanto ácidas que las acerca a la psicodelia que conecta a la banda con las propuestas anteriores con las que, y que a su anterior líder, conectan con la música rockabilly. Y que demuestran la versatilidad y buen hacer de la banda.
No faltaron ninguna de las emblemáticas, Rock Suave, La Mataré, Cadillac Solitario, Rock and Roll Start, Rompeolas (una debilidad personal/familiar), Carne para Linda, El Ritmo del Garage (lejos de las versiones de la movida madrileña) ... y hasta una versión de "Qué hace una chica como tú en un sitio como este..." de Burning que nos la contaron en su estilo y forma de entenderla, sin echar de menos, ni desmerecer por su puesto, la original. Todas con una contundencia y saber hacer incontestable que hicieron las delicias de los que allí nos reunimos. Desde el punto de vista técnico todo un lujo ver como la música entre los estribillos y estrofas fluía. Discurriendo por los puentes de los temas que además de bien trazados incluían todos los detalles de dinámica y musicalidad deseables. Que conducían a cada momento a climax musicales imposibles, por lo logrado de los anteriores, y sin embargo lo conseguian. Espectacular sin duda. Vaya ruedas de batería (incluso con solos de bombo), el bajo cantando sus líneas casi como solos, sosteniendo la música en su espacio y las guitarras con rifts perfectos y sonido magnífico (que la savia nueva aporta)... sólo factible por verdaderos convencidos de lo que están haciendo.

Todo esto lo pensé y ordeno ahora, pero no crean que no disfruté, y de una forma animal, de lo que realmenten nos ofrecieron: Una magnífica noche de rock. De un rock del que aprendimos cosas e historias de la vida hace unos 25 años y que nos acompaño en nuestras vivencias, amigos y circunstancias que de alguna manera afloraron ayer al ritmo de una música que lejos de tener un tratamiento de  revival tiene la vigencia de lo bien hecho y de la necesidad de sentir, tanto por su origen como por la forma de contarnoslo en la propuesta que ayer vimos.
Recuerdos de patatas bravas, bocadillos de panceta y destilados de cereales que volvieron como si reivindicaran ser parte de nosotros los disfrutamos en la mejor compañía, los de siempre
Como antaño en que una vez escuchado un disco se volvía a escuchar (no había problemas de tiempo como ahora) sin duda me apuntaría a volver a verlos hoy mismo.


GRACIAS.

SER DIGITAL. Mi crónica personal.

Después de leer el libro "Ser digital" de José Ramón Alcalá copio un párrafo que en mi opinión resume perfectamente el contenido del texto:


Comprender -y, por tanto, saber habitar- el espacio híbrido es aceptar tanto el anverso como el reverso de la propia realidad, del propio cuerpo protésicamente hiperenlazado. Es saber actuar -manejar- los datos provenientes al unísono del dentro y del afuera del espacio del acontecer que se nos muestra entre la pantalla, así como de las arquitecturas que la soportan; pues en la pantalla convergen perspectivamente las proyecciones de ambos espacios: el físico y el virtual; Sin embargo, el punto de vista de este sistema perspectivo ya no es el ojo del espectador (y su mirar antropocéntrico) reside la mirada híbrida del individuo protésico contemporáneo.


Sin posibilidad de superarlo hago mi propio resumen con sus palabras de la lectura del texto:


Los recursos digitales favorecen la exactitud, repetitibilidad y niegan a priori la interpretación. El lugar del arte digital es el de los espacios informes e indeterminados, variables e inexplorables/inexplorados. El punto actual del recorrido es centrarnos en lo que transmitimos y servirnos del metodo más preciso que nunca se ha dispuesto para crear. Basado en una tecnología compleja y complicada, apta para unos pocos, mediante la cual hay que dar el paso de que ocurra el fluir desde y hacia el espacio virtual. Inmerso en una cultura interdisciplinar no deberá seguir el camino del arte abstracto el cual perdió el discurso cuando comenzó a hablar de forma y color como valores de expresión y no de representación con la consiguiente perdida del discurso del pensamiento y por lo tanto dirigido hacia el propio lenguaje. Y en el caso del arte digital con el agravante de la ausencia de su marco/entorno/escenario lo que el autor llama ausencia de la metáfora funcional. 

La información es el agente constructor del lugar electrónico. Sesgada doblemente tanto por la necesidad de la codificación como por el racionalismo asociado a la forma de accederla (por el hecho de la experiencia) debido al propio interface y representada mediante una arquitectura de red débil, producto de su propia esencia como deudora del diseño. El arte digital necesita al artista para la exploración de las zonas periféricas y borrosas para que las que el espíritu sensible está especialmente preparado. Con una aprehensión originada en la psique electrónicamente ampliada, el ser digital se presenta como el hecho de habitar el espacio electrónico. Se nos invita a elegir la orilla del río en la que nos sintamos más cómodos analógico (ser), codificado (digital), introduciendo el concepto principal del discurso, el de la realidad híbrida como la conquista de lo digital sobre lo físico (realidad aumentada/amplida/extendida/complementada)... Destacando la interactividad como organización no lineal del discurso. Que permite la visibilización de las producciones mucho más allá que la pura contemplación y/o emisión. En un espacio intervenido que es donde ocurren las cosas y se produce la comunicación. El cuál no es el sitio para la sistematización y organización. 

Como apreciaciones personales me ha gustado especialmente la alusión a el sonido como el espacio del paisaje sonoro que existe y se reinvindica. Me he sentido retratado en el primer párrafo del apartado: Regreso a la lectura. Leer en plenitud. Yo he sido lector compulsivo e hiperactivo y de varios textos en paralelo. Y mis relecturas siempre han sido apasionantes y llenas de matices. Aunque alguna no tanto ya que la propia ansiedad lectora en un primer momento engañó a mi entendimiento.


Por último indicar que en mi caso reinvindico el arte abstracto como el arte que habla de arte y que no me quiero perder el momento en que el arte digital hable del arte digital... 

SER DIGITAL : MANUAL DE SUPERVIVENCIA PARA CONVERSOS A LA CULTURA ELECTRÓNICA

Me he alegrado mucho hoy cuando he recibido el correo de Jose Ramón Alcalá en el que nos avisaba de que su publicación "SER DIGITAL : MANUAL DE SUPERVIVENCIA PARA CONVERSOS A LA CULTURA ELECTRÓNICA" está disponible en pdf gracias al patrocinio de la Universidad de Chile.

No nos queda más que agradecerlo como se merece disfrutando del texto y participando con el feedback que él nos solicita haciendo crecer la propuesta con la conversación (y si es en la red mejor).

 

GRACIAS.

El año empieza "Muy bien"

Como he leído en varios sitios al final es cuestión de actitud. Y si lo que aquí hay no es lo que esperabamos que lo suyo es cambiar el chip e intentar ser feliz.

No hablaré de teorías del decrecimiento y cosas de las que me escapan y sí de que a lo mejor el asunto está en los pequeños detalles.

Hoy he tenido una experiencia satisfactoria. Suelo dejarme los correos que revisaré en el futuro como sin leer. Entiendo que esto es común. A lo que me quería referir es que ayer antes de las campanadas los solucioné/archivé todos. Y me produjo cierta satisfacción. Lo más gracioso es cuando hoy he leído el correo que ha llegado por la noche y al leer el último Google me ha dicho "¡Muy bien! Has leído todos tus mensajes de Recibidos." y viniendo de quien viene pues no deja de ser algo a tener en consideración que lo de muy bien no te lo dicen todos los días... Sonrisa


HackLab CAT Arduino 2012

Estamos de enhorabuena con esta interesante convocatoria que no nos deberíamos perder:

"Arduino Academy, junto a Cooking Hacks, Milla Digital y Noise, se complace anunciar la I HackLab CAT Arduino 2012."

Se celebrará en el edificio del CIEM del 11-15 de Enero en Zaragoza.

Allí nos veremos.

Audio Specturm Analyzer. Arduino + LCD + MSGEQ7

Ya les conté en la entrada anterior que esta época estoy haciendo cosas con Arduino. Sigo con proyectos técnicos que me ayuden a profundizar y mejorar mis conocimientos.

Los analizadores de espectro de audio (así como los ecualizadores) han sido siempre una debilidad para mí. Tanto es así que no tengo consciencia de cuando me quedé embobado la primera vez viendo uno. De allí a entender al transformada de Fourier ha habido un camino largo, largo. En este ejemplo no utilizo ninguna rutina para el cálculo de la transformada (y eso que hay sitios en los que está resuelto para el arduino) y en su defecto he empleado el integrado MSGEQ7 con unos resultados muy satisfactorios. El circuito y la inspiración del código la he obtenido de este y este sitio.

En el caso del integrado proprociona los niveles en 7 bandas. Yo he interpolado para llegar a las 16 que son el número de caracteres de la pantalla LCD. Comentar que esta pantalla no permite gráficos y las barras las he generado creando los dibujos como caracteres nuevos al más puro estilo de cuando dibujabamos sprites con los primeros micro-ordenadores...

Para la prueba de concepto he recuperado un tema mío (Zimbolución) del año 2004 que terminé en el 2005 y que se adapta muy bien a la demostración por su rítmo y dinámica. A bailar!

Arduino unidimensional pong

Llevo algunas semanas con proyectos basados en Arduino. Lo que hoy les traigo es un ejercicio de nostalgia retro. En realidad no era este el objetivo pero partes de lo que aquí he utilizado serviran para mis otros proyectos.

Quería trabajar en visualización y pantallas y una de las opciones más básicas es manejar leds con integrados 595 para extender el número de salidas digitales del micro.

Una aplicación típica e histórica es el pong de la que hay muchas implementaciones en 2 e incluso alguna en 3 dimensiones. Para simplificar lo he programado en una dimensión. He encontrado pocas referencias de intentos anteriores de hacer algo parecido y me he convertido en algo así como un retro pionero...

La duda es si sería jugable y para que así lo fuera he implementado varias reglas.

- En la zona de led verde no se permite la pulsación para activar la raqueta.

- En la zona amarilla la velocidad del rebote es normal y en la zona roja es el doble.

- No se permite tener pulsado el botón para que la raqueta actue al salir de la zona verde, si esto ocurre se considera que no hay pulsación.

Gana el que haga primero 12 puntos. Los marcadores se muestran cada vez que se gana un tanto. Al terminar se muestra el marcador de forma intermitente.

Todo, desde el punto de vista teórico, esta gestionado mediante una máquina de estados empleando la sentencia swich del lenguaje del controlador.

Por último comentar que las partidas que ven las hemos jugado con mi hijo mayor y me alegra que en estos tiempos en que los videojuegos son bastante complicados hayamos pasado un buen rato con 24 leds 3 chip 595 y un arduino... Al final en la partida del vídeo me ha ganado 12 - 8 yo jugaba a la derecha de la pantalla y el a la izquierda según se mira.

Por cierto las naves que se ven en el vídeo y en las fotos han sido aportación de él para que el vídeo quedara más bonito.