Herramientas de usuario

Herramientas del sitio


personas:johnny:proyectos:hiduino

¡Esta es una revisión vieja del documento!


Hiduino - Proceso para convertir un Arduino en un instrumento musical Midi

Repo oficial

El proceso creativo para desarrollar este ejercicio se lleva a cabo en varios momentos, primero se diseña y se realiza la parte de Hardware, luego de software y por ultimo las respectivas programaciones y composiciones musicales o para lo que se este desarrollando.

En este caso automatizaremos un xilofono para que actue como un instrumento musical esclavo.

  1. Elaboracion y diseno del instrumento Robotico.
  2. Programacion y composicion en el Tracker de la Gameboy
  3. Programacion y composicion en el Tracker de la Gameboy.
  4. Sincronizacion midi Gameboy como MidiOut y controlador USB (Hiduino) como esclavo.
  5. Programacion y composicion en el computador con la musica construida en la Gameboy.
  6. Composicion de la musica final anadiendo las partes y melodias del instrumento robotico.

Elaboracion y diseno del instrumento robotico

El desarrollo del instrumento robotico se lleva a cabo en diferentes partes, tanto hardware como software:

Construccion del instrumento

El instrumento musical es un rediseño de un viejo xilofono, adaptado para ejecutar un golpe con un voltaje definido y realizado por los solenoides y que ademas no distorsione el sonido del instrumento.

ensamblando1.jpg

ensamblando2.jpg

ensamblando3.jpg

diseno2.jpg

Para llevar a cabo este proceso se experimenta con varios modelos, alturas y voltajes que llegan a los actuadores hasta encontrar la posicion ideal. Posteriormente se construye un circuito electronico que permite accionar cada percutor y este a su vez; es controlado electricamente por un microcontrolador(Arduino).

Este microcontrolador es el encargado de convertir notas musicales (datos digitales) en voltaje o datos analogos, que seran los respectivos percutores de cada nota del xilofono.

Elaboracion del circuito electronico

Para que el instrumento pueda funcionar es necesario realizar un circuito para controlar y alimentar los actuadores y estos a su vez, puedan golpear las laminas del xilofono como vimos en el anterior video.

El circuito esta compuesto de varios transistores TIP122, ademas de un adaptador de 9v y algunos diodos para que no hayan cortos en el proceso de alimentacion de los actuadores. Los transistores seran nuestro puente entre la comunicación del Arduino y el circuito.

Cambio de firmware en el chip original del Arduino

La placa Arduino que usamos en este proyecto cuenta con un microcontrolador ATmega16U2, que cumple la funcion de traducir una informacion a otra, es decir; es un conversor USB-serial. Para que este chip pueda llevar a cabo el proceso de transduccion, este es previamente programado a un lenguaje de programacion de bajo nivel, y este tipo de programas se llaman Firmware.

Hiduino es un firmware del chip Atmega16U2 que permite que la placa Arduino sea reconocida por computadores como dispositivos HID, es decir; teclados, mouses y perifericos conectados al computador. (human interface device)

Para flashear el Arduino se pueden tomar diferentes caminos, en este caso usamos Ubuntu 14.04 LTS.25

En general se siguen los siguientes pasos:

  1. Primero se abre una terminal, luego se escriben los siguientes comandos: [lubusb-1.0-0 libusb-1.0-0-dev libusb-dev]
  2. Luego instalamos el dfu-programmer escribiendo: [sudo apt-get install dfu-programmer]
  3. Conectamos el Arduino por usb y lo ponemos en modo dfu, que consiste en conectar dos pines entre si de la interfaz ISP.

  1. Borramos el firmware: [sudo dfu-programmer atmega16u2 erase]
  2. Cargamos el nuevo firmware: [sudo dfu-programmer atmega16u2 flash MYFIRMWARE.hex]
  3. Reiniciamos el chip: [sudo dfu-programmer atmega16u2 reset]

Despues de hacer este proceso, es conveniente programar el chip Atmega que controla los pines por medio de un programador AVR usando las entradas ISP del Arduino.

El programador ISP es necesario porque una vez el arduino es flasheado, no pueden subirse programas por el puerto USB . Ahora el paso a seguir es programar los Pines del Arduino usando una librería Midi, para que la placa reconozca los mensajes Midi provenientes del DAW.

Programacion de la placa Arduino para que funcione como Input-MIDI debido a las condiciones motoras del Instrumento.

Luego de que el chip ATmega esta flasheado, procedemos a programar las salidas digitales de la placa segun nuestras necesidades. Este proceso se lleva a cabo mediante el Ide proporcionado por Arduino para programar la placa.

En este caso necesitamos reconocer notas midi que seran programadas en el software Ableton Live. La programacion del codigo se basa en escribir funciones que reconozcan velocity, channel y pitch, que son variables del protocolo Midi para reconocer que nota es, que dinámica tiene esa nota, y un canal que le dice al computador cual es ese instrumento Midi.

Cuando este código en software esta listo, procedemos a conectar el programador ISP y luego abrimos la interfaz de Arduino, es muy importante elegir el programador a usar, porque ya no estamos usando la interfaz USB.Para sellecionar el programardor adecuado, por favor mire la imagen de arriba.

Con los pasos descritos anteriormente hemos finalizado la construcción del instrumento robotico, pasamos entonces a la composición en el software LSDJ.

Aqui un video del flasheo del arduino.

personas/johnny/proyectos/hiduino.1477261305.txt.gz · Última modificación: 2016/10/23 22:21 por brolin