ARDRUMONE. Trabajo Final. Batería Electrónica. Participación y Gestión en Proyectos de Software Libre. Di Biasse, José Luis

Documentos relacionados
Introducción a Arduino

Batería electrónica. Alumnos: Castro Alejandro Cardozo Griselda

Taller de electrónica para usos creativos: Interconexión con instrumentos musicales a través de MIDI

La plataforma Arduino y su programación en entornos gráficos

Programación y construcción de controladores MIDI

IM : ARDUINO NANO OEM

OKY2002: Arduino Uno Genérico

Introducción a Arduino

Empezando con Arduino. Controla tu entorno con un microcontrolador PIIISA

Comunicación Serial Arduino UNO vs Leonardo

Instalación y entorno de programación

Build & Code 4in1 Primeros pasos

Dispositivos de Entrada/Salida

Sesión 12: Practica 3: Creación de prototipo básico de Arduino.

Introducción: Requisitos: Instalación De Apache 2: Instalación De Apache 2 y PHP 5 Para Ubuntu. Diego Mauricio Herrera - Grupo GRID Uniquindio

REPRODUCIR SONIDOS.WAV EN ARDUINO (Recopilado de Internet)

El Microcontrolador Arduino

3 Sensores y transductores. Alfaomega. Material Web. Arduino 2. Electrónica en arquitectura abierta 7


Midi y Audio Digital. Qué es el MIDI?

Guía de Usuario Iraduino

9. Plataforma Desarrollo del ATmega

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO. ÍÑIGO MARTÍN MIMBELA.

Las 7 claves de Arduino UNO

El ladrillo llamado R8+ es el cerebro del kit robó co. Tiene conectores laterales para motores y sensores.

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

GUIA DE EJERCICIOS Nº 3 INSTRUMENTACIÓN AVANZADA

USB232. Hoja de datos

Arduino. Programa de Estudio.

Arduino Punk Console. Idea

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercialNoDerivs 3.0 Unported

MEDIDOR DE TEMPERATURA

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

MANUAL DE USUARIO Arduino Relay Shield MCI-MA-0064 REV. 1.0

DEPARTAMENTO DE CIENCIAS DE LA ENERGIA Y MECANICA Laboratorio de Automatización Industrial Mecánica. TEMA: Control de procesos con Arduino.

Cómo funcionan los libros Aprender...

Bach. Pablo Sanabria Campos. Programa de Tecnologías Educativas Avanzadas

CARGA DE PROGRAMAS EN EL

Laboratorio de Construcción de Robots Móviles Practica No. 6 Instalación y Configuración de la Computadora Raspberry-PI

INSTITUTO TECNOLÓGICO METROPOLITANO ITM GUÍA DE LABORATORIO INSTRUMENTACIÓN ELECTRÓNICA INTERFAZ ARDUINO - LABVIEW

1. Escribir un dato digital del WinCC al Arduino

Control de movimientos y rutinas para Mini Brazo Robótico por Bluetooth. (Compatible solo con dispositivos Android)

Fluid Audio SRI-2. Guía de usuario - Español

MANUAL DE USUARIO Como utilizar un servo motor con Arduino REV. 1.0

Clase 2: Programación

GUIA DE EJERCICIOS Nº 3 INSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

Tallerine Efectos digitales de audio

UNIDAD 1: - ESTRUCTURA Y FUNCIONAMIENTO DE UN ORDENADOR

5. CONSTRUCCIÓN a) Montar la plataforma móvil según sus instrucciones. b) Soldar un trozo de 20 cm de hilo rígido a los terminales de las reductoras.

TICA EN LA ESCUELA. El Robot (hardware) Alicia Escudero. Apellido y Nombre: Escudero Alicia. Tema: características de un robot

IM : PLACA OEM DUE COMPATIBLE CON ARDUINO

El hardware libre y el Internet de las cosas

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

Investigación y Desarrollos en Open Hardware

Tecnología robótica. Tema 7.- Tarjeta controladora Arduino

LABORATORIO DE ELECTRÓNICA DE POTENCIA PRÁCTICA N 3

Módulo 3. Ambiente de desarrollo

Tutorial Básico Cmake en Linux

Tutorial de Instalación de Tarjetas Inalámbricas sobre Linux Serie EVO W300 PCI / USB (Configuración por DHCP)

Capítulo 3: Implementación hardware mediante plataforma en tiempo real. Capítulo 3 Implementación hardware mediante plataforma en tiempo real 33

ESPino - Especificaciones

AudioBox USB 96. Guía rápida. Interface de Audio USB.

Características principales

Control de brazo robótico por Bluetooth (Compatible solo con dispositivos Android)

BANCO CENTRAL DEL ECUADOR ENTIDAD DE CERTIFICACIÓN DE INFORMACIÓN

Como Instalar el Squeeze Center 7 via QPKG para reproducir archivos de música hacia el Squeezebox Duet

Emmanuel Pericon Federico Presa. Streaming de audio. Software utilizado : Music Player Deamon (MPD). Sonata. MPDroid.

Especificaciones técnicas de los prototipos:

INSTALACIÓN DE GREENSTONE EN SISTEMAS LINUX

LABORATORIO DE ELECTRÓNICA DE POTENCIA PRÁCTICA N 1

APRENDE ARDUINO FACILMENTE CON CURSOSINDUSTRIALES.NET.

HARDWARE DE UN COMPUTADOR (PARTE 01)

QUE ES LA TARJETA DE SONIDO?

Introducción a Arduino. Electrónica para todos.

Qué es y por qué usarlo

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

Grupo GNU/Linux UDB-EIC. facebook.com/grupo.gnulinux.udb

CURSO BÁSICO DE ALFABETIZACIÓN DIGITAL CENTRO INFORMÁTICO EMPEDRADO CONTENIDO: ELEMENTOS BÁSICOS DE

QUÉ ES MBOT? Conectores RJ25

Nombre de la asignatura: Tecnologías e Interfaces de Computadoras

Dirección Académica MANUAL DE PRÁCTICAS PRÁCTICA NO 7. CONVERTIDORES A/D Y D/A.

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

Laboratorio de Casas Inteligentes Etapa de potencia Practica No. 3

MANUAL DE USUARIO Sensor de temperatura y humedad digital MCI-SEN REV. 1.0

Instalación del software del controlador Controlador de audio USB Manual de instalación (Mac)

Software de Voz sobre Protocolos de Internet (VoIP)

TALLER DE ABLETON LIVE

Electrónica para crear con Arduino

PLACA BASE. Diferentes tipos de placas base de los fabricantes habituales.

Conmutador Switch KVM 2 puertos HDMI con Hub Concentrador USB 2.0 Audio x1200

SSH. Vicente Sánchez Patón I.E.S Gregorio Prieto. Tema 3 SAD

Manual de Funcionamiento Sonido, Video e Imágenes

Tutorial básico para el diseño de un Data Logger con Arduino y micro-sd

CURSO: MICROCONTROLADORES UNIDAD 4: COMUNICACIÓN SERIE- ARDUINO PROFESOR: JORGE ANTONIO POLANÍA

Taller de Introducción a la Ingeniería Eléctrica Instituto de Ingeniería Eléctrica - Facultad de Ingeniería Universidad de la Republica

Transcripción:

Trabajo Final Batería Electrónica ARDRUMONE Materia: Participación y Gestión en Proyectos de Software Libre Profesor: Di Biasse, José Luis Alumnos: Marchionne, Cristian Palazzo, Leonardo 1-16

Índice de contenido Proyecto Ardrumone...3 Objetivo:...3 Introduccion:...4 MIDI...4 Desarrollo...5 SOFTWARE UTILIZADO...5 Hydrogen...5 Configuracion MIDI...5 Jack...6 Qjackctl...6 TTYMIDI...7 INSTALACIÓN...7 COMPILACION...7 DEPENDENCIAS...7 Libreria ArduinoMIDI...7 EJECUCIÓN...8 HARDWARE UTILIZADO...9 Arduino...9 Instalación...9 Características...9 Sensores...10 Programa...11 Ejemplo 1:...11 Ejemplo 2:...12 Ejemplo 3:...13 Refrencias...14 Hydrogen...14 Documentación...14 Tutorial...14 Videos de Hydrogen...14 Arduino...14 Instalacion de Plataforma...14 Lenguaje...14 Ejemplos...14 Arduino ONE...14 Esquema de Pines...14 Distribuidores...14 DealExtreme...14 LadyAda...14 Trabajos Futuros...15 2-16

Proyecto Ardrumone Objetivo: Objetivo Mezclar el mundo del Software y Hardware. El proyecto consta de construir una batería electrónica a partir de información y material libre de copyrigth. Esto se documenta a modo de tutorial para que lo puedan abordar principiantes.

Introduccion: MIDI MIDI es un protocolo de comunicación serial estándar para dispositivos musicales electrónicos. Nacio en el año 1983. Ventajas: Espacio de almacenamiento. Editar con facilidad Manejar a los sonidos independientemente El protocolo establece distintos tipos de mensaje. Activar/Desactivar una Nota Selección de canción Reloj de temporización Inicio Continuación Parada Espera activa Reseteo del sistema Volumen Ejemplo de un mensaje MIDI: CODIGO DEL MENSAJE CANAL NOTA VOLUMEN Note on/off 0 15 0 127 0 127 4-16

Desarrollo SOFTWARE UTILIZADO El objetivo es reproducir la nota recibida en este caso por el puerto usb. Para esto necesitaremos programas para emular al puerto como una entrada midi, que reproduzca la nota y que enlace ambos. Hydrogen Para la reproducción de sonidos de batería. Lo único que debemos configurar es en Preferencias >Sistema de audio elegimos Jack. (asegurarse de ternerlo corriendo). También tenemos la forma de configura el disparo de acciones propias (play, pause) mediante algún mensaje midi. Configuracion MIDI Se pueden cargar distintos tipos de librerías (drumkit) para simular los sonidos de la batería. Por defecto esta configurado el GmKit. Las librerías relacionan una posición de un instrumento con una nota midi y una tecla del teclado de la pc. Hay que tener cuidado y entender bien que la posición no esta relacionado 5-16

con en nombre del instrumento en si. Posición de Instrumentos Nombre del Instrumento 1 Kick 36 Nota MIDI 2 / 3 Snare Jazz/Rock 37 / 38 4 / 5 / 6 Tom Low/Mid/High 39 / 40 / 41 17 / 18 / 19 HH Closed/Pedal/Pppen 52 / 53 / 54 20 / 21 Crash / Crash Jazz 55 / 56 Para descarga y más detalles: http://www.hydrogen music.org/hcms/ Jack Servidor de sonido que provee conexión de baja latencia entre aplicaciones. Es decir que la salida de un programa puede ser la entrada de otro. Por ejemplo si tenemos un reproductor de musica que por defecto sale por los parlantes, podemos configurarlo que sea la entrada de un programa que es por ejemplo una consola y luego a los parlantes. Para descarga y más detalles : http://jackaudio.org/download Como este programa no tiene interfaz gráfica podemos agregarla con Qjackctl Si bien tenemos muchas opciones es bastante intuitivo lograr nuestro objetivo que es conectar la salida del TTYMIDI a la entrada del Hydrogen y su salida a los parlantes. Para descarga y más detalles : http://qjackctl.sourceforge.net/ 6-16

TTYMIDI ttymidi es un programa que nos permite interconectar un dispositivo serial externo con el secuenciador ALSA. INSTALACIÓN COMPILACION El código del ttymidi esta compuesto por un único archivo escrito en C. Para compilarlo hay que ejecutar el siguiente comando: make DEPENDENCIAS Este programa tiene una dependencia con: libasound2, si no esta instalada hay que hacerlo ejecutando: apt get install libasound2 dev Después de haber compilado ttymidi hay que copiarla al directorio /usr/bin para acceder facilmente. Esto se puede hacer así: sudo make install Libreria ArduinoMIDI Para instalar en el Arduino la librería ttymidi (conocida como ardumidi) solo hay que copiar la carpeta ttymidi a la carpeta de librerias del Arduino cp r ardumidi /path/to/arduino/sketchbook/libraries/ Esta librería trae algunos ejemplos básicos. Conviene mirarlos porque contienen información de como se maneja la librería. 7-16

EJECUCIÓN Para correr este programa y escuchar un puerto usb como si fuera una entrada del tipo midi. Ejecutamos: ttymidi s /dev/ttys0 b 2400 donde /dev/ttys0 es el puerto serie que queremos leer y 2400 es la velocidad. ttymidi s /dev/ttyusb0 vvv donde la que la velocidad por defecto es 115200bps y la opción v es para que muestre las entradas recibidas por consola. El nombre del puerto lo podemos averiguar desde la IDE de arduino yendo a Tools serialport. Para descarga y más detalles : http://www.varal.org/ttymidi/ 8-16

HARDWARE UTILIZADO Arduino Arduino es una herramienta para hacer que las computadoras puedan sentir y controlar el mundo físico. Es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Posee un comunidad muy amplia que esta en constante crecimiento. El microcontrolador en la placa Arduino se programa mediante el periférico USB utilizando el lenguaje de programación Arduino (basado en Wiring) con su propio entorno de desarrollo (basado en Processing). Instalación Para realizar la instalación de la plataforma ver: Si usas linux y sos fanático de la consola: $ apt get install arduino arduino core $ apt get install gcc avr avr libc $ apt get install sun java6 jre http://arduino.cc/es/main/software Características Placa Utilizada: Arduino UNO En términos generales esta placa posee: 14 entradas i/o salidas digitales (de las cuales 6 pueden ser salidas PWM). 6 entradas analógicas con una resolución de 10 bits. Se alimentación con 5V cc, aprovechando el USB o con una fuente externa. Para más detalles se puede ver: http://es.wikipedia.org/wiki/arduino#esquema_de_pines 9-16

Sensores Como la placa que utilizamos tiene varias entradas analógicos, tenemos que decidir cuantos cuerpos queremos utilizar. Por cada cuerpo colocamos un sensor que se conectara a una entrada analógica. Utilizamos un Buffer Piezoeléctrico como sensor para detectar la accion (el golpe). Para mejorar la adquisición de datos se coloco un circuito adicional que nos permite obtener mayor sensibilidad al golpe. 10-16

Programa A continuación vemos a ver tres ejemplos de programas que van a cargarse en el Arduino: 1. Básico Para comprobar el funcionamiento del protocolo MIDI 2. Simple Para relacionar el sensor con el nivel del volumen de una Nota. 3. Completo Para armarte una batería con cuerpos analógicos y digitales. Ejemplo 1: Programa para verificar el funcionamiento del Protocolo MIDI y comprobar que la configuración de la PC. /* Reprodusco una Nota mediante el protocolo MIDI por USB */ #include <ardumidi.h> const int channel= 0; //Canal que para identificar el instrumento const int NOTE_KICK= 36;//Nota MIDI const int volume= 127; //Variable donde almaceno el valor del Volumen MIDI void setup() { Serial.begin(115200); void loop() { // Resprodusco una nota en un canal con un volumen determinado cada 500mseg midi_note_on(channel, NOTE_KICK, volume); delay(500); 11-16

Ejemplo 2: Programa para verificar la interaccionan del sensor con la variación del volumen MIDI de una nota. /* Leo el valor del canal Analogico cero (A0) y reprodusco el sonido MIDI con su correspondiente volumen */ #include <ardumidi.h> const int ANALOG_TIME_OF_CONVERSION = 50; // Tiempo necesario para la conversion const int channel = 0; instrumento const int NOTE_KICK = 36; const int sensorpin = 0; const int threshold = 50; consideran Ruido int volume = 0; MIDI //Canal que voy a utilizar para identificar el //Nota MIDI //Canal Analogico en el que conecto el Sensor //Nivel del Sensor. Los Valores inferiores se //Variable donde almaceno el valor del Volumen void setup() { Serial.begin(115200); void loop() { //Leo el valor analogico de algun Pin volume = readvolumemidi(sensorpin); //Comparo el nivel de Volumen contra un nivel minimo if( volume > threshold) { // Resprodusco una nota en un canal con un volumen determinado midi_note_on(channel, NOTE_KICK, volume); delay(analog_time_of_conversion); int readvolumemidi(const int analogpin){ //Leo el valor analogico de algun Pin y lo ajusto a los niveles de Volumen MIDI [0-127] return map(analogread(analogpin), 0, 1023, 0, 127); 12-16

Ejemplo 3: Programa para comprobar la adquisición de datos analógicos. /* Leo el valor del canal Analogico cero (A0) y visualizo el valor obtenido */ #include <ardumidi.h> const int ANALOG_TIME_OF_CONVERSION = 50; // Tiempo necesario para la conversion const int sensorpin = 0; const int threshold = 50; consideran Ruido int volume = 0; MIDI //Canal Analogico en el que conecto el Sensor //Nivel del Sensor. Los Valores inferiores se //Variable donde almaceno el valor del Volumen void setup() { Serial.begin(115200); void loop() { //Leo el valor analogico de algun Pin volume = analogread(sensorpin); //Comparo el nivel de Volumen contra un nivel minimo if( volume > threshold ) { Serial.print("\nSensorValue = "); // Resprodusco una nota en un canal con un volumen determinado Serial.print(volume); Serial.print("\tMidiValue = "); // Resprodusco una nota en un canal con un volumen determinado Serial.print(map(volume,0,1023,0,127)); delay(analog_time_of_conversion); int readvolumemidi(const int analogpin){ //Leo el valor analogico de algun Pin y lo ajusto a los niveles de Volumen MIDI [0-127] return map(analogread(analogpin), 0, 1023, 0, 127); 13-16

14-16

Refrencias Hydrogen http://www.hydrogen music.org/hcms/ Documentación http://www.hydrogen music.org/hcms/node/5 Tutorial http://www.hydrogen music.org/hcms/node/7 Videos de Hydrogen http://www.hydrogen music.org/hcms/node/44 Arduino http://www.arduino.cc/es/ Instalacion de Plataforma http://arduino.cc/es/main/software Lenguaje http://arduino.cc/es/reference/homepage Ejemplos http://arduino.cc/es/tutorial/homepage Arduino ONE http://arduino.cc/en/main/arduinoboarduno Esquema de Pines http://es.wikipedia.org/wiki/arduino#esquema_de_pines Distribuidores http://arduino.cc/es/main/buy DealExtreme http://s.dealextreme.com/search/arduino LadyAda http://www.ladyada.net http://www.adafruit.com 15-16

Trabajos Futuros Investigar por la implementación de distintos sensores. Implementar el diseño de distintos Instrumentos (teclado, guitarra, flauta, etc). Investigar si existe o realizar un programa para la pc que sea intermediario entre la entrada midi y el controlador final. Que sea Flexible permitiendo configurar distintas salidas midi de a grupos de canales y configurar el nivel de disparo de cada uno. De esta manera el programa del Arduino estaría trabajando de forma transparente, escaneando todos los sensores y enviando los datos a su máxima velocidad sin ningún control lógico. 16-16