miércoles, 21 de diciembre de 2016

Panel luminoso de Matrices LED 8x8 controlado mediante Bluetooth


En este POST aprenderemos a controlar mediante Bluetooth un panel luminoso compuesto por 4 matrices LED 8X8, es decir, lo que haremos en cuestión será mostrar un mensaje de texto en forma de bucle desplazándose de derecha a izquierda (Scroll horizontal) dentro de las 4 matrices LED 8x8 que conectaremos en cascada. Estos mensajes que vamos a visualizar en el panel los podemos enviar a través de Bluetooth desde un PC o desde un Smartphone con sistema operativo Android, aunque los que tengáis un sistema operativo iOS lo podréis realizar de una manera similar aunque no se incluya en este POST. No os voy a hablar más sobre la conexión, el funcionamiento y las características de las matrices LED 8X8 porque ya se explicó en otro POSTahora bien, para que nuestro Arduino pueda recibir los mensajes a través de Bluetooth necesitamos añadirle el módulo Bluetooth HC-06 descrito y configurado justamente en el POST anterioraunque lo debemos de conectar a nuestro Arduino como se muestra en la siguiente tabla.

  Tabla de conexiones entre nuestro Arduino y el módulo HC-06
 

Una vez realizadas las oportunas conexiones de todo el sistema lo primero que tenemos que hacer es compilar y cargar el programa que tenemos en la descarga, en nuestro Arduino, puesto que es válido para cualquiera de los dos métodos de envío de mensajes de texto (ASCII) a través de Bluetooth que se van a analizar en este POST. A continuación os describo detalladamente cada uno de los dos métodos de los que disponemos para interactuar a través de Bluetooth con nuestro Arduino junto con el módulo HC-06.

 

Envío de mensajes mediante Bluetooth desde un PC


Como ya os anticipaba con anterioridad, uno de los dos métodos que vamos a poder utilizar para enviar mensajes de texto a través de Bluetooth hacia el módulo HC-06 está basado en la utilización de un PC que tenga este tipo de comunicación o añadiéndole a nuestro PC un “Dongle Bluetooth”, que no es más ni menos que un completo y compacto HARDWARE “Plug and Play” que conectaremos en nuestro PC a través del puerto USB para que se pueda comunicar mediante Bluetooth con otros dispositivos que posean este tipo de protocolo de comunicación.

  Dongle Bluetooth

Para poder vincular y conectar el módulo HC-06 a nuestro PC a través de Bluetooth vamos a utilizar el software “BlueSoleil”, mediante el cual crearemos una conexión Bluetooth entre el PC y el módulo HC-06, asignándole un puerto serie del PC (COM) a dicha conexión. Posteriormente, para el envío de los mensajes de texto a través del puerto serie creado, vamos a utilizar el software “Octoplus Terminal”, que es un entorno gráfico muy simple de configurar y utilizar, que nos facilita enormemente dicha tarea. A continuación os dejo los enlaces de descarga de todo el software necesario así como un video donde se detalla todo el proceso de configuración y funcionamiento del sistema.









Envío de mensajes mediante Bluetooth desde un Smartphone


El segundo método que nos permite el envío de mensajes Bluetooth hacia el módulo HC-06 se basa en utilizar un Smartphone, puesto que están dotados de fábrica de este tipo de comunicación. Para ello debemos de instalar la aplicación "Bluetooth Terminal HC-05" desde la propia PLAY STORE del Smartphone o desde el siguiente enlace.

Aplicación Android Bluetooth Terminal HC-05

Una vez instalada la aplicación debemos de realizar una serie de procesos para vincular y conectar el módulo Bluetooth HC-06 al Smartphone y así poder utilizar la aplicación para enviar mensajes de texto (ASCII) mediante Bluetooth. A continuación os dejo el video donde se detalla todo el procedimiento a realizar.




Lista de Materiales:


  • Arduino UNO Rev.3. 
  • Cable USB tipo A-B.
  • Módulo Bluetooth HC-06.
  • PC con Bluetooth o Dongle Bluetooth.
  • Smartphone con S.O Android.
  • Panel luminoso compuesto por 4 Matrices LED 8x8.
  • Fuente de alimentación de 5VDC/3000mA (opcional).
  • Protoboard.
  • Cables de conexión.



Código del programa:


martes, 13 de diciembre de 2016

Configurar módulos Bluetooth HC-05 y HC-06 mediante comandos AT


Hoy os voy a mostrar cómo configurar módulos Bluetooth HC-05 y HC-06 mediante comandos AT para poder trabajar con ellos en nuestros proyectos junto con ARDUINO UNO, es decir, para que se pueda comunicar nuestro ARDUINO con un PC, con un SMARTPHONE o para poder comunicar dos ARDUINOS de manera inalámbrica. Sin más preámbulos vamos a proceder a configurar estos compactos y sencillos dispositivos.
Logotipo del dispositivo Bluetooth

Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2.4 GHz. La especificación de Bluetooth define un canal de comunicación a un máximo 720 kbit/s (1 Mbit/s de capacidad bruta) con rango óptimo de 10 metros (opcionalmente 100 metros con repetidores). La potencia de salida para transmitir a una distancia máxima de 10 metros es de 0 dBm (1 mW), mientras que la versión de largo alcance transmite entre 20 y 30 dBm (entre 100 mW y 1 W). Los principales objetivos que se pretenden conseguir con esta norma son:
·        Facilitar las comunicaciones entre equipos móviles.
·        Eliminar los cables y conectores entre estos.
·        Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.

Los dispositivos que con mayor frecuencia utilizan esta tecnología pertenecen a sectores de las telecomunicaciones y la informática personal, como PDA, teléfonos móviles, computadoras portátiles, ordenadores personales, impresoras o cámaras digitales. Existen multitud de módulos Bluetooth en el mercado que podemos utilizar junto con ARDUINO u otros microprocesadores, pero los más utilizados son los módulos de “JY-MCU”, puesto que son pequeños, compactos, de bajo consumo energético, muy económicos y por supuesto fáciles de encontrar en el mercado. Existen dos modelos de módulos Bluetooth: el “HC-05” que puede trabajar como maestro/esclavo  y el “HC-06” que solo puede actuar como esclavo.  La diferencia entre maestro y esclavo es que en modo esclavo es el dispositivo quien se conecta al módulo, mientras que en modo maestro es el módulo quien se conecta con un dispositivo u otro módulo.

Módulos Bluetooth JY-MCU

Físicamente, los dos módulos son muy parecidos, y la mejor manera de diferenciarlos es por los pines de E/S que nos ofrecen, es decir,  4 para el HC-06 y 6 pines para el HC-05. A continuación os describo la función de cada uno de los pines y su correspondiente conexión con los pines de ARDUINO:
·         VCC: Alimentación del módulo entre 3,6V y 6V.
·         GND: Masa del módulo.
·         TXD: Pin para la transmisión de datos.
·         RXD: Pin para la recepción de datos. Trabaja a un voltaje de 3,3V, aunque la mayoría de módulos ya trae conversor de niveles lógicos integrado, con lo que lo podemos conectar directamente al pin TX de Arduino (5V) sin tener que recurrir a HARDWARE externo para bajar el voltaje.
·         EN: Pin para entrar en el modo de configuración del módulo (solo en el modelo HC-05).
·         STATE: Pin de estado (salida) para conectar un led y visualizar cuando se está comunicando el módulo (solo en el modelo HC-05).
Tabla de conexiones de los módulos Bluetooth JY-MCU

Como podemos observar no existen diferencias HARDWARE significativas entre ambos modelos, pero sí que las hay en cuanto al FIRMWARE, es decir, en cuanto a la programación interna del módulo, por lo que mientras que el módulo HC-06 entra en el modo de programación (comandos AT) siempre que lo enciendes y no esté conectado a él ningún dispositivo mediante Bluetooth, el HC-05 es ligeramente más complicado de colocar en modo comandos AT y requiere de un modo de arranque específico que veremos más adelante.
Una vez aclarados los conceptos básicos para poder diferenciar los dos modelos de módulo Bluetooth, voy a profundizar en la configuración de cada uno de ellos, para ello primero debemos de conocer que son los “comandos AT” propiamente dichos. Los comandos AT son un tipo de comandos que sirven para configurar el módulo Bluetooth a través de un microcontrolador, un ordenador o con cualquier dispositivo que posea una comunicación serie (TX/RX), en nuestro caso, vamos a utilizar el monitor serie del IDE de ARDUINO para meter a través de comunicación serie estos comandos dentro de los módulos Bluetooth y que estos nos envíen una respuesta de estado a través del mismo monitor serie. Para entenderlo mejor, se puede decir, que los comandos AT son unas instrucciones que nos permiten cambiar por ejemplo la velocidad de comunicación del módulo (BAUDIOS), el código de emparejamiento (PIN), el nombre, etc. Para poder utilizar los comandos AT, el módulo Bluetooth no debe estar vinculado a ningún dispositivo (led rojo del módulo parpadeando). Es importante comprender, que en cuanto conectemos algún dispositivo a nuestro módulo Bluetooth, la luz roja dejará de parpadear y automáticamente saldremos del modo de comandos AT para entrar en el de transporte de información, es decir, cualquier cosa que le enviemos, incluyendo comandos AT, se considerara texto plano que se reenviará al otro extremo de la conexión Bluetooth (recordad que solo podemos enviar comandos AT mientras no estemos conectados a otros dispositivos Bluetooth).



MÓDULO BLUETOOTH HC-06

El módulo Bluetooth HC-06 viene configurado de fábrica como esclavo y no se puede cambiar, pero otras características si las podemos configurar utilizando comandos AT. Algunos de los valores predeterminados, de fábrica, más importantes que trae este módulo se resumen a continuación:
·       Nombre: “linvor” o “HC-06”.
·       Código de emparejamiento por defecto (PIN): 1234.
·       Velocidad de comunicación  (baud rate): 9600 bps (siempre que lo modifiquemos también lo tenemos que modificar dentro del programa para que se pueda comunicar correctamente).
·       Configuración de paridad en la comunicación: Sin paridad.

Cabe destacar que el módulo HC-06 tiene dos estados los cuales es importante conocer:
·         Modo comandos AT:
o      El módulo entra a este modo tan pronto como lo alimentas  y cuando no se ha establecido una conexión Bluetooth con ningún otro dispositivo.
o      EL LED del módulo permanece parpadeando (frecuencia de parpadeo del LED es de 102ms).
o      En este modo es cuando se debe enviar los comandos AT, en el supuesto de que se quiera configurar. Si se envían otros datos diferentes a los comandos AT el módulo HC-06 los ignorará.
·         Modo Conectado:
o      El módulo entra a este modo cuando se establece una conexión con otro dispositivo Bluetooth.
o      El LED permanece encendido (sin parpadear).
o      Todos los datos que se ingresen al módulo HC-06 por el Pin RX, se trasmiten por Bluetooth al dispositivo conectado, y los datos recibidos se devuelven por el pin TX. La comunicación es transparente.
o      En este modo el módulo HC-06 no puede interpretar los comandos AT.

Ahora vamos a configurar el módulo Bluetooth HC-06 a través de comandos AT enviados desde el Monitor Serie del IDE de ARDUINO. Una vez compilado y cargado el código “Comandos_AT_ HC-06” en nuestro Arduino, abrimos el Monitor Serie.
Al enviar un comando AT no se debe enviar ningún carácter de LF (nueva línea) ni CR (retorno de carro) al final del comando.  En el Monitor Serie del IDE de Arduino tenemos que poner “Sin ajuste de línea”,  escribimos  el comando “AT”,  siempre con letras mayúsculas, y pulsamos ENVIAR para comprobar que la comunicación es correcta. Como se puede observar en la imagen vemos que el módulo Bluetooth nos responde con un OK.

Monitor serie al enviar el comando “AT” en módulo HC-06

Ahora únicamente vamos a modificar el nombre del módulo insertando el comando  “AT+NAMEArduino_HC-06”, respondiéndonos el módulo HC-06 a través del monitor serie con “OKsetname”. Los demás parámetros los vamos a dejar como nos vienen por defecto de fábrica. A continuación os dejo una tabla con los comandos AT más utilizados para el módulo HC-06.

Tabla de  comandos AT para el módulo Bluetooth HC-06





MÓDULO BLUETOOTH HC-05

Como se ha mencionado ya anteriormente, este módulo a diferencia del HC-06, requiere de un proceso específico para entrar en el modo de comandos AT, es decir, necesita que estemos presionando el botón que trae módulo cuando abrimos el monitor serie del IDE de Arduino, para que entre en el modo de comandos AT, puesto que necesita tener el pin “EN” activado a nivel alto (HIGH) antes de que el módulo comience a funcionar.

El módulo Bluetooth HC-05 viene configurado de fábrica con los siguientes valores predeterminados, aunque les podemos cambiar en cualquier momento mediante comandos AT.
·       Nombre del módulo: “H-C-2010-06-01” o "HC-05" (Se puede modificar pero no nos responde con el nombre).
·       Pin o contraseña: 1234 (+PSWD:1234).
·       Modo de trabajo: Modo Esclavo (+ROLE:0).
·       Modo de conexión: Se conecta al módulo Bluetooth especificado (+CMOD:0).
·       Velocidad de transmisión: 38400 bps; Bit de parada: 1 bit; Bit de paridad: Sin paridad (+UART:38400,0,0).

Cabe destacar que el módulo HC-05 tiene tres estados los cuales es importante conocer:
·         Modo comandos AT:
o       El módulo entra en este modo de funcionamiento si mantenemos presionando el botón que trae mientras abrimos el monitor serie y cuando no se ha establecido una conexión Bluetooth con ningún otro dispositivo.
o       EL LED del módulo permanece parpadeando (frecuencia de parpadeo del LED es de 2 segundos).
o       En este modo es cuando se debe enviar los comandos AT, en el supuesto de que se quiera configurar. Si se envían otros datos diferentes a los comandos AT el módulo HC-05 los ignorará.
·         Modo Conectado:
o       El módulo entra a este modo cuando se establece una conexión con otro dispositivo Bluetooth.
o       El LED permanece encendido (sin parpadear).
o       Todos los datos que se ingresen al módulo HC-05 por el Pin RX, se trasmiten por Bluetooth al dispositivo conectado, y los datos recibidos se devuelven por el pin TX. La comunicación es transparente.
o       En este modo el módulo HC-05 no puede interpretar los comandos AT.
·         Modo Desconectado:
o       El módulo permanece inactivo, es decir, ni emite ni recibe datos y el LED parpadea con una frecuencia de 102ms.

Ahora vamos a configurar el módulo Bluetooth HC-05 a través de comandos AT enviados desde el Monitor Serie del IDE de ARDUINO. Una vez compilado y cargado el código “Comandos_AT_ HC-05” en nuestro Arduino, abrimos el Monitor Serie, siempre manteniendo presionado el botón que trae el módulo.
A diferencia del módulo HC-06, al enviar un comando AT desde el monitor serie, este módulo espera que la línea acabe en “\r\n” y entonces es cuando ejecuta el comando AT. En el Monitor Serie de IDE de Arduino tenemos que poner “Ambos NL&CR” para terminar las líneas , escribimos  el comando “AT”,  aunque este módulo no distingue entre mayúsculas y minúsculas,  y pulsamos ENVIAR para comprobar que la comunicación es correcta. Como se puede observar en la imagen vemos que el módulo Bluetooth nos responde con un OK.

Monitor serie al enviar el comando “AT” en módulo HC-05

Ahora únicamente vamos a modificar el nombre del módulo insertando el comando  “AT+NAME=Arduino_HC-05”, respondiéndonos el módulo HC-05 a través del monitor serie con “OK”. Los demás parámetros los vamos a dejar como nos vienen por defecto de fábrica. A continuación os dejo una tabla con los comandos AT más utilizados para el módulo HC-05.

Tabla de  comandos AT para el módulo Bluetooth HC-05.



 




Lista de Materiales:


·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Módulo Bluetooth HC-06.

·         Módulo Bluetooth HC-05.

·         Protoboard.

·         Cables de conexión.



Código del programa:

          Comandos_AT_ HC-06:






          Comandos_AT_ HC-05:


martes, 22 de noviembre de 2016

Batería electrónica MIDI con Pro Tools 10 y EZ Drummer


Gracias a este POST seremos capaces de construir nuestra propia batería electrónica MIDI,  basándonos en la placa ARDUINO UNO, que se comunicará a través del puerto USB con el software “Pro Tools 10”, para reproducir sonidos reales de batería gracias al “Plugin” EZ Drummer, para poder crear nuestras propias bases o nuestros propios temas como si de una batería electrónica se tratase.  Como es un proyecto algo complejo y extenso lo voy a dividir en dos partes, la parte correspondiente al HARDWARE necesario para simular la batería física, es decir, los PADS y pedales que accionaremos,  y la parte SOFTWARE correspondiente tanto a la instalación de los programas necesarios como del código que tendremos que cargar en nuestro ARDUINO UNO para que con cada golpe que demos en los PADS o cada vez que pisemos los pedales suenen los tambores, platos y el bombo de la batería virtual del EZ Drummer. Sin más demora comenzamos con todo este reto.

HARDWARE

La parte más importante de este proyecto, sin duda, es la creación de los PADS de la batería, que no es más ni menos donde vamos a golpear para generar una señal capaz de estimular nuestro ARDUINO y que este actúe en consecuencia a través de su programación interna para ejecutar sonidos mediante SOFTWARE. Para ello utilizaremos sensores piezoeléctricos como sensores de golpe, es decir, cada vez que los hagamos vibrar con un golpe, estos generarán una señal eléctrica entre sus dos terminales que podrá ser leída por ARDUINO a través de sus entradas analógicas.
Sensor piezoeléctrico

Los piezoeléctricos están polarizados, así que hay que conectarlos correctamente, es decir,  el terminal positivo que es el que va soldado a la parte central del piezo lo conectaremos a la entrada analógica de ARDUINO que le corresponda y el terminal negativo que es el que va soldado a la parte externa del piezo lo conectaremos siempre a la masa de ARDUINO (GND). Entre los dos terminales del piezo es necesario conectar en paralelo una resistencia de 1 MΩ para limitar el voltaje y corriente generados por el sensor y proteger así la entrada analógica de ARDUINO donde va conectado cada uno. A continuación os muestro la correcta instalación de dichos sensores piezoeléctricos a nuestro ARDUINO. 
Diagrama de conexión de los sensores piezoeléctricos 

Como nuestro ARDUINO UNO solamente posee 6 entradas analógicas, solo podremos conectar un máximo de 6 PADS para nuestra batería, lo que nos limita el número de tambores y platos a simular, para posteriormente enlazarlos mediante SOFTWARE a la batería virtual dentro del EZ Drummer. Para realizar una estructura mucho más compacta a la hora de golpear los sensores piezoeléctricos, tendremos que pegarlos con cola de contacto, en alguna superficie circular de mayor tamaño y que pueda vibrar también al golpearla. Yo he optado por utilizar un tupperware circular de plástico, aunque esta parte es a libre elección de cada uno. También, para dar una mayor vistosidad a nuestros PADS,  he añadido 6 LEDS alrededor de cada tupperware, que se iluminarán cada vez que golpeemos en el PAD correspondiente. Estos LEDS simplemente irán conectados en serie, es decir, el pin de masa (pata más corta) de cada uno de los LED lo conectaremos a masa (GND) a través de una resistencia de 220Ω para limitar la corriente que lo atraviesa para no quemarlo, y el otro pin (pata más larga) de cada uno de los LEDS irá conectado al pin digital de ADUINO programado para encender y apagar los LEDS del PAD correspondiente. Se conectan 6 LEDS por cada PAD por el motivo de que ARDUINO es capaz de generar la suficiente corriente en un pin digital como para encender todos al mismo tiempo cada vez que golpeamos en el PAD correspondiente sin tener problemas de alimentación. Muy importante a tener en cuenta es que el PAD 1 se compone del PIEZO 1 y del grupo de LEDS 1 dentro del tupperware de plástico.

Diagrama de conexión de los LEDS para cada PAD 

Por último y para amortiguar los golpes en la tapa y que esta suene lo menos posible a “plástico” al golpearla,  he añadido una pieza de goma EVA (Etilvinilacetato) en la parte superior de cada PAD. Al final de todo el proceso nos tiene que quedar todo integrado dentro de cada tupperware, obteniéndose tres salidas o cables por cada PAD, un cable que tendremos que conectar a la masa de ARDUINO (GND), puesto que la masa para el piezoeléctrico y para los LEDS es la misma, otro cable que conectaremos a la entrada analógica de ARDUINO correspondiente y el tercero que conectaremos al pin digital que maneja los LEDS de cada PAD.  A continuación se muestra cómo quedaría cada uno de los 6 PADS.

PAD correctamente finalizado

Para finalizar con la fabricación e instalación de la parte física de la batería (HARDWARE), vamos a ver cómo crear y conectar los dos pedales necesarios (Charles y bombo), además de conectar un pulsador para el control del “doble bombo” y dos LEDS para avisarnos del estado tanto del bombo como del plato Charles en cada momento. La construcción de los pedales simplemente la vamos a realizar con un pulsador de timbre convencional que cortaremos en ángulo de 30 grados para acomodarlo a la base, un trozo de madera que utilizaremos como base del pedal, donde fijaremos el pulsador de timbre para su correcta sujeción cuando lo apoyemos en el suelo y por supuesto cable para su conexión a nuestro ARDUINO. A continuación os muestro el resultado final de cómo nos tiene que quedar cada uno de los dos pedales.

Pedal para Charles y para Bombo 

También remarcar que tanto el pedal del plato Charles como el del bombo son idénticos en su estructura física, además ambos irán conectados a entradas digitales de ARDUINO mediante conexión PULL DOWN con una resistencia de 10KΩ,  pero dentro de la programación van a tener tareas distintas como era de esperar. Como ya os anticipaba anteriormente tendremos que conectar también un pulsador, de la misma manera que los pedales (PULL DOWN con resistencia de 10KΩ), a uno de los pines digitales de ARDUINO, que cuando sea presionado será el encargado de cambiar la función de “bombo simple” a “doble bombo” del pedal del bombo, y para saber en todo momento en que MODO de los dos nos encontramos se encenderá un LED conectado a través de una resistencia de 220Ω, para limitar la corriente que lo atraviesa, a otro pin digital de ARDUINO cuando estemos en “doble bombo” permaneciendo apagado cuando ejecutemos el “bombo simple”. Para rematar esta parte también tenemos otro LED conectado a un nuevo pin digital de ARDUINO, limitado en corriente mediante una resistencia de 220Ω, para indicarnos cuando estamos pisando (LED encendido) o no (LED apagado) el pedal del Charles en cada momento para que,  mediante programación y SOFTWARE,  suene a “Charles cerrado” cuando pisamos el pedal o a “Charles abierto” cuando el pedal se encuentra en reposo. A continuación os muestro todo el diagrama de conexión de todos estos últimos periféricos que vamos a añadir a nuestra batería.

Diagrama de conexión de los pedales y señalización de FUNCIONES 

Para recordar todas las conexiones de la batería a nuestro ARDUINO a continuación os dejo una tabla de conexiones detallada,  además de una imagen de cómo os tienen que quedar los 6 PADS de la batería. Las conexiones de todos los elementos de este proyecto las podéis realizar a través de una PROTOBOARD o crear vuestra placa de circuito impreso (PCB) que podamos conectar a nuestra batería a modo “PLUG AND PLAY”, cosa muy recomendable,  para no tener que estar montando todo desde el principio cada vez que utilicemos nuestra batería electrónica y que no haya falsos contactos entre los componentes.

Tabla de conexiones del HARDWARE de la batería electrónica 

A continuación os muestro la imagen final de cómo nos debe de quedar nuestra batería electrónica si nos decidimos a utilizar los tupperware redondos como PADS.

Batería electrónica MIDI completa

 
SOFTWARE

La parte SOFTWARE es bastante más compleja que la HARDWARE, aunque no os preocupéis demasiado puesto que no vamos a profundizar en exceso en el tema, simplemente nos vamos a limitar a instalar el SOFTWARE necesario para que la batería suene y cargar el programa a nuestro ARDUINO para que ejerza de interface entre el HARDWARE creado y el SOFTWARE instalado. Lo primero que vamos a hacer es instalar el programa “Pro Tools 10.3.7” para posteriormente añadirle el “Plugin” EZ Drummer. Este software es funcional en S.O Windows 7 y en adelante, aunque para aquellos usuarios que utilicen MAC OS o LINUX tendrán que buscarse la manera de obtener el SOFTWARE. A continuación les dejo los enlaces para la descarga, dentro de los cuales vienen todos los archivos y explicaciones necesarias para la correcta instalación de todo esto.



Una vez que tengamos instalados tanto el Pro Tools como el “Plugin” EZ Drummer, continuaremos instalando el LoopBe1 Monitor, que nos es más ni menos que un dispositivo MIDI interno (puerto MIDI Virtual) para transferir datos MIDI entre programas de computadora. Básicamente LoopBe1 es un "cable invisible" para conectar un puerto de salida MIDI de una aplicación a la entrada MIDI de cualquier otra aplicación, que en nuestro caso nos va a servir de enlace entre la salida del “Conversor Serie a MIDI” que ejecutaremos más adelante y la entrada MIDI de “Pro Tools”. El LoopBe1 una vez instalado quedará siempre ejecutándose en segundo plano dentro de la barra de tareas, a no ser que lo silenciemos (MUTE). En el siguiente enlace nos podemos descargar esta sencilla y práctica aplicación.

Descarga del Puerto MIDI Virtual - LoopBe1 Monitor


Después de tener correctamente conectado todo el HARDWARE a nuestro ARDUINO, el siguiente paso será conectarle al PC a través del USB, para posteriormente cargarle el programa denominado “Bateria_MIDI.ino” que tenemos en descarga directa al final de este POST justo antes del vídeo, como habitualmente venimos haciendo. Doy por hecho de que todos tenemos ya instalado tanto el IDE de ARDUINO como los drivers de la placa, si no es así, os recomiendo pasaros antes por el siguiente POST donde se detalla todo esto. Además, para aprender a subir o cargar correctamente el programa (Sketch) a nuestro ARDUINO tenemos este POST donde también se explica.  El siguiente paso será descargar y ejecutar el conversor serie a MIDI como a continuación se indica. 



Con el conversor en ejecución, la primera prueba que tenemos que hacer para comprobar que nuestro ARDUINO envía correctamente los mensajes MIDI al golpear los PADS o pisar el pedal del bombo es configurarlo como se muestra en la siguiente imagen.

Configuración serie a MIDI básica del conversor

Lo primero que hay que hacer es seleccionar el puerto COM donde tenemos conectado nuestro ARDUINO, después seleccionar la velocidad de comunicación, que en nuestro caso es siempre 57600 bps (BAUDIOS) y por último seleccionar tanto el puerto MIDI de entrada como el de salida como se muestra en la imagen. Todas las opciones de los menús se seleccionan pulsando las letras del teclado del PC que hay entre corchetes antes de cada opción. Si hemos configurado correctamente el conversor, al golpear cualquiera de los PADS o pisar el pedal del bombo sonarán las notas MIDI en piano que tengamos asignadas mediante programación para PAD o el pedal del bombo, además de encenderse los LEDS del PAD que estemos golpeando y por supuesto el cuadrado del Serial RX se tiene que poner de color verde. Esto todavía no tiene mayor relevancia puesto que es solamente para comprobar que todo va bien hasta el momento y que existe una buena comunicación MIDI con el PC, sino fuese así, tendríamos que revisar todo para ver que hemos hecho mal o que se nos ha olvidado hacer. Una vez corroborado todo esto pasamos a configurar definitivamente el conversor de la misma manera que lo acabamos de hacer, para que se comunique con “PRO TOOLS”, como se muestra en la siguiente imagen.

Configuración serie a MIDI del conversor para Pro Tools

Lo que hace el conversor ahora es enviar el MIDI por la salida “LoopBE Internal MIDI” y no directamente al “sintetizador de Microsoft” como hemos hecho en el caso anterior, para posteriormente poder enlazar esa salida MIDI directamente a una entrada MIDI de Pro Tools y a su vez asignar ese MIDI a los platos, tambores y el bombo del “Plugin” EZ Drummer. Siempre que queramos cargar nuevamente un programa en nuestro ARDUINO, tenemos que cerrar el conversor puesto que ocupa la comunicación USB y el IDE quedaría sin posible comunicación con nuestro ARDUINO (Nos tocaría volver a ejecutar y configurar el conversor cada vez que nos comuniquemos con el IDE). Ya nos estamos acercando al resultado final de nuestra batería electrónica, solo nos queda configurar la entrada MIDI en Pro Tools, asignar el “plugin” EZ Drummer a una pista MIDI que crearemos y además crear una pista de audio por si queremos ir grabando nuestros primeros temas y compases. Para ello primero nos descargaremos el siguiente PROYECTO de Proo Tools donde ya he incorporado todo lo necesario para que la batería funcione, aunque todavía tenemos que realizar unos pequeños ajustes dentro del programa.



Descomprimimos y abrimos la carpeta descargada y ejecutamos el archivo “Arduino.ptx”, de esta manera se nos abrirá ya directamente Pro Tools con todas las pistas necesarias para trabajar. Lo siguiente a realizar, y esto hay que hacerlo siempre que ejecutemos el EZ Drummer, es meter el código de autorización, para ello, vamos a la carpeta EZ Drummer que anteriormente nos descargamos y ejecutamos el “KeyGen.exe”. Después tenemos que copiar el “Computer ID” de la pantalla del EZ Drummer y pegarlo en el KeyGen para posteriormente dar al botón “Generate” y obtener así nuestro código de Autorización que tendremos que ingresar en el EZ Drummer. El programa una vez autorizado tarda unos segundos en cargarse por completo no os pongáis nerviosos. Para finalizar todo esto nos vamos a la pestaña del Pro Tools: “Configuración” à “Periféricos” à “Controladores MIDI” y lo configuramos como se muestra en la siguiente imagen (Tengo el canal 8 seleccionado puesto que es el canal que se utiliza para enviar el MIDI desde Arduino).

Configuración de la entrada MIDI en Pro Tools 10

Ahora solamente nos queda de revisar que la entrada MIDI esté correctamente activado, para ello nos vamos a la pestaña de Pro Tools: “Configuración” à “MIDI” à Dispositivos de entrada … y nos cercioramos de que la casilla “LoopBe Internal MIDI” esté activada. Para finalizar la configuración del SOFTWARE tenemos que revisar la configuración del “Plugin” EZ Drummer para que suene correctamente nuestra batería para ello tenemos que configurar las pistas de la siguiente manera:


Configuración de las pistas en Pro Tools 10 

Para que suene la batería solamente nos queda activar el botón “REC” de la pista de “Audio 1”, además para grabar nuestros temas tenemos que activar los botones “REC” y “PLAY” generales de Pro Tools (Arriba a la derecha de la pantalla principal), y comenzar a tocar.  A continuación os dejo un video donde podréis seguir paso a paso la configuración de todo lo anteriormente explicado.

 

Como os vengo repitiendo desde el inicio del POST el programa Bateria_MIDI.ino” que tenemos que  cargar en nuestro ARDUINO simplemente sirve para enviar un mensaje MIDI desde ARDUINO a través del puerto USB hacia el PC, cada vez que golpeamos un PAD o presionamos el pedal del Bombo. Dicho mensaje MIDI está compuesto por el estado de la nota MIDI (ON/OFF), el canal MIDI por el que realizamos la transmisión del mensaje, el tono de la nota MIDI que transmitimos y por último la velocidad con la que se tiene que reproducir dicha nota, para ello utilizamos la función “void MIDI_TX(unsigned char MENSAJE, unsigned char TONO, unsigned char VELOCIDAD)”. Además podemos configurar las siguientes funciones dentro del programa para personalizar nuestra batería electrónica:
·         #define canal 7;  à  Canal MIDI del 0 a 15 (+1 en el "mundo real"). Utilizo el 8 porque es el que utilizo dentro de Pro Tools 10.
·         unsigned char Nota[6] = {11,69,50,47,43,58}; à Contiene las notas MIDI que enviamos al presionar los PADS (del 1 al 6). Estas notas MIDI, dependiendo el SOTWARE que estemos utilizando, pueden ser unas u otras (de 0 a 127), aunque en este caso están configuradas para el “Plugin” EZ Drummer  dentro de Pro Tools 10 (Charles, caja, TOM 1, TOM 2, TOM de suelo y platillos).
·         int Nota_pedal = 36;  à Nota MIDI que enviamos cuando pisamos el pedal del Bombo, también configurada para el “Plugin” ES Drummer (Bombo). Mediante el pulsador denominando “pulsador_bombo”, conectado mediante PULL DOWN a la entrada digital 10 de Arduino, podremos cambiar el MODO del pedal del Bombo de “Bombo simple” a “Doble Bombo” al accionarle.

PADS relacionados y notas MIDI dentro de EZ Drummer 
  
·         int Sensibilidad_golpeo[6] = {400,400,400,400,400,400}; à  Es el valor de la sensibilidad de golpeo de los PADS (valor máximo 1023). A mayor valor menor sensibilidad, es decir, más golpe tendremos que dar en el PAD para que se reproduzca el sonido correspondiente.
·         int Respuesta[6] = {70,70,70,70,70,70}; à Es el tiempo mínimo de espera o respuesta entre golpes (en milisegundos). A mayor valor menor respuesta de la batería, es decir, tendremos que esperar más tiempo para poder golpear nuevamente un PAD y que tenga respuesta dentro del “plugin” EZ Drummer.
·         int Velocidad_pedal = 120; à  Velocidad del pedal entre 0 y 127 (elegir la que más os guste). 
·         int Tiempo_maximo = 70; à Tiempo mínimo de espera que tiene que transcurrir hasta que se permite pisar una segunda vez el pedal y que suene el Bombo (respuesta del pedal).
Para finalizar os dejo el “Keyboard Layout” de las notas MIDI que relacionan directamente el teclado del editor MIDI de Pro Tools con los respectivos sonidos de batería del “plugin” EZ Drummer.

  Keyboard Layout  del “plugin” EZ Drummer

Si queréis una mayor información acerca del funcionamiento del programa de ARDUINO os recomiendo revisar los múltiples comentarios añadidos dentro del mismo. Mucha suerte y espero que os funcione correctamente, para cualquier duda no dudéis en contactar conmigo. SALUDOS!!!



Lista de Materiales:


·         ARDUINO UNO Rev.3.

·         Cable USB tipo A-B.

·         6 Sensores piezoeléctricos.

·         6 Resistencias de 1MΩ.

·         38 LEDS de 3mm (de distintos colores).

·         8 Resistencias de 220Ω.

·         1 Pulsador.

·         2 Interruptores de timbre.

·         2 Trozos de madera (base pedales).

·         4 Tirafondos.

·         3 Resistencias de 10KΩ.

·         6 Tupperware redondos de plástico.

·         Plancha de Goma EVA.

·         Cola de contacto.

·         Soldador de 30W y estaño.

·         Protoboard o en su defecto fabricar PCB.

·         Cables de conexión.


Código del programa:




Video: