Practica 6: Primera conexión con Arduino
45 mins
Por fin vamos a conectar Arduino con Pure data y vamos a utilizar nuestro ritmo cardiaco para controlar el kick drum.
Ahora en lugar de ser la app oscControl la que nos envie datos a traves de osc, sera Arduino el que envíe esos datos. En Arduino vamos a recoger y procesar los valores que el sensor de latidos nos de. Tras procesar esos valores vamos a identificar cuando se produce un latido, y cuando ese latido se produzca vamos a enviar un mensaje a Pure data a traves de osc para activar el kick drum. El ritmo de nuestro corazón se va escuchar a traves de los altavoces y sonara como un kick drum. Con este ritmo podríamos controlar cualquier evento de pure data, es un juego de números.
En Arduino cuando detectamos una pulsación en lugar de encender el LED vamos a enviar un mensaje osc a Pure data para que active el Kick drum.
Instalamos la librería OSC en Arduino con el gestor de Biliotecas
Pd
Cuando Arduino detecte un latido enviara un mensaje a traves de su puerto serie que tendremos que recibir con pure data. En nuestro caso va a enviar un 1, en Pure data, cuando recibamos ese 1 vamos a activar el kick drum
¿Como vamos a recibir ese mensaje? Utilizando el objeto "comport". En el tendremos que configurar que puerto serie va a escuchar y la velocidad de comunicación. Tanto el puerto como la velocidad tienen que coincidir con las utiliza nuestro Arduino. En mi caso es el COM 5 y la velocidad son 9600 baudios:
Al objeto comport le indicaremos en puerto en el primer argumento y la velocidad en el segundo. El mensaje device imprimirá en la ventanita de Pd la lista de puertos Serial disponibles, tendréis que escoger aquel que coincida con el que utiliza vuestro Arduino. Para abrir el puerto enviaremos el mensaje open, en ese mensaje también podemos especificar el identificador del puerto que vamos a abrir, en mi caso es el 5. Para cerrar la comunicación enviaremos un mensaje con la palabra "close".
Cerrar la ventana de Serial en Arduino para abrir la comunicacion de pure data, si no, no os dejara. Para cargar el programa a Arduino tambien necesitaremos cerrar el puerto en pure data, de lo contrario nos dará error.
Una vez recibido el mensaje tendremos que decodificarlo, para ello vamos a utilizar el siguiente grupo de objetos. Ahora no vamos a entrar a explicarlo. Simplemente lo utilizaremos tal cual se muestra en la imagen.
A este grupo le llegara el output del objeto "comport", Y de su ultimo objeto "cyclone/fromsymbol" obtendremos la información que Arduino envió por el puerto serie, en nuestro caso es el numero 1. Con ese numero activaremos un bang que activara nuestro kick drum. Lo haremos de la misma forma que el la práctica de osc pero esta vez utilizaremos un random para que con cada latido se active un uno de los 3 valores iniciales del envelope que regula la frecuencia del kick drum.
Recordar que tenéis que tener encendido el DSP de pure data para procesar sonido.