Innovación: Robótica_sensores en red

Fuente: http://hangar.org/wikis/lab/doku.php?id=start:osc2midi2osc

“Este patch ha sido desarrollado en los laboratorios interactivos de Hangar. Propuesta de innovación de INTACT para el proyecto colaborativo entre INTACT y Hangar (“Sin cuerpo. acciones telecompartidas en red”).

“Presupuesto: Fondos Ministerio de Cultura, Hangar y con el soporte de la Anella Cultural

ARDUINOS EN RED (P2P)

Conversor PureData de OSC a MIDI y viceversa para un espacio de mensajes determinado.

Este patch espera recibir mensajes OSC de terminales por el puerto 9889 y rutea 12 terminales (arduinos y/o computadoras) y sus sensores (6 para cada terminal).

Los mensajes OSC se formulan /terminalX/sensorY valor con X=[1..12], Y=[1..6], valor =[0..1023].

Estos se convierten a MIDI según la convención: número de control = X, número de canal = Y, valor del control = valor y se envían al puerto MIDI.

Para ello debemos seleccionar por el menú de Pure Data Media > ALSA-MIDI

También recibe mensajes de control MIDI para recuperar el mensaje OSC y enviar de nuevo a los terminales de su propia red por el puerto 8998.

El caso práctico son 2 estaciones conectadas por Scenic, que permite la comunicación mediante MIDI.

Cada estación cuenta con 6 terminales y una máquina con Scenic en una misma red local.

A cada terminal se le asigna un identificador X diferente para todas las estaciones.

En este caso la estación A tendrá 6 terminales del 1 al 6, y la B otros 6 terminales del 7 al 12.

Los terminales se conectan a la máquina de Scenic y le envía mensajes OSC por el puerto 9889 indicando los valores de sus sensores.

A su vez esperan recibir mensajes OSC por el puerto 8998, que son filtrados para obtener los valores de cada sensor para cada terminal.

Para que Scenic envíe y reciba los mensajes MIDI hay que activar y seleccionar la entrada y salida por las de Pure Data, en la pestaña MIDI de Scenic.

El código base se compone de 4 patches:

osc2midi2osc.pd - es el servidor ruteador que debe correr en la maquina de Scenic

oscTerminal_A.pd y oscTerminal_B.pd representan terminales y la idea es que cada uno corran un espacio distinto y acordado, dentro de la misma red de la máquina Scenic respectivamente.

routeSensor.pd es una abstracción que se utlizan en los patchs anteriores y debe estar fisicamente en el mismo directorio.

Se puede ejecutar con Pure Data sin la interfaz de usuario por consola y leer el log de mensajes

$ pdextended -rt -alsamidi -nogui /mnt/codis/oscScenic/osc2midi2osc.pd

y también con la interfaz.

Se utilizó Pure Data extended (0.42.5) ya que integra la librería de externals oscx utilizada. También es posible usar Pure Data vanilla, instalando la biblioteca oscx.

   

Licencia de Creative Commons
sensores en red by INTACT project is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License.

Deja un comentario