#24 Gracias por compartirlo compañero!!
Pedalera MIDI DIY
OFERTASVer todas
-
Squier Sonic Strat LRL Ultravi Set
-
Harley Benton ST-20HSS SBK Standard Series
-
Millenium Rookie E-Drum Set
Buenas,
Aquí seguimos trasteando... Esta vez le he hecho una mejora interesante: comunicación por bluetooth. Suelo tocar al lado del ordenador así que no era una necesidad imperiosa, pero una vez que se me ha metido la idea en la cabeza, no me he podido resistir al reto de intentarlo y el resultado es mejor de lo que esperaba, con muy poca latencia. Es de cajón que tenga más latencia que por cable, pero es inapreciable.
Cuando se me ocurrió la idea, estuve indagando para ver cómo se podría hacer y vi que el tema bluetooth-MIDI se puede hacer pero está un poco complicado. Así que lo planteé de otra manera. Viendo los módulos bluetooth que hay, encontré unos muy baratos (HC-05, unos 3€) que se pueden programar para que funcionen de maestro o esclavo, cambiar tasas de transferencia, nombre, contraseña, etc. Estos módulos reciben y emiten datos seriales, que es como lo transmite el Arduino. Así que mi solución fue instalar un módulo bluetooth en la pedalera, recibiendo y emitiendo datos seriales del Arduino, y luego hice un receptor para el ordenador que consiste de un circuito USB-MIDI con otro módulo bluetooth que recibe los datos, los transfiere al circuito USB-MIDI, y éste lo manda al ordenador. Total, que en el PC no hace falta andar con drivers ni historias para el bluetooth y el MIDI porque recibe los datos ya en formato MIDI por el USB. El camino que recorren los datos sería este:
Arduino ----> Bluetooth(emisor) ----> Bluetooth(receptor) ----> Circuito USB-MIDI ----> PC.
Este es el receptor:
Por otro lado, destripé una batería externa de esos para móviles y la instalé en la pedalera. Me costó 4€ en el carrefour y da una autonomía de unas 12 horas. Le estañé unos cables a los puertos USB de carga y descarga, y otro a una entrada analógica del Arduino. De esta manera se puede cargar la batería a través de un puerto USB instalado en la pedalera, y por otro lado el Arduino detecta la carga que tiene y la muestra en la pantalla, añadiendo unas líneas de código, para así saber cuándo hay que cargarla.
He simplificado un poco las cosas en la explicación anterior porque hay que saber programar los módulos, compilar código para el circuito USB-MIDI, modificar la librería MIDI del Arduino... Si a alguien le interesa lo puedo explicar en más detalle, pero si no es un poco tostón.
También he quitado todos los potenciómetros de la pedalera. No eran nada prácticos por tener que agacharse cada vez que quieres cambiar algo... Así que fuera. La idea ahora es hacer un controlador para el escritorio con los potenciómetros y que también vaya por bluetooth, aprovechando el receptor que ya está hecho y al que se pueden conectar hasta 7 emisores.
Saludos!
Aquí seguimos trasteando... Esta vez le he hecho una mejora interesante: comunicación por bluetooth. Suelo tocar al lado del ordenador así que no era una necesidad imperiosa, pero una vez que se me ha metido la idea en la cabeza, no me he podido resistir al reto de intentarlo y el resultado es mejor de lo que esperaba, con muy poca latencia. Es de cajón que tenga más latencia que por cable, pero es inapreciable.
Cuando se me ocurrió la idea, estuve indagando para ver cómo se podría hacer y vi que el tema bluetooth-MIDI se puede hacer pero está un poco complicado. Así que lo planteé de otra manera. Viendo los módulos bluetooth que hay, encontré unos muy baratos (HC-05, unos 3€) que se pueden programar para que funcionen de maestro o esclavo, cambiar tasas de transferencia, nombre, contraseña, etc. Estos módulos reciben y emiten datos seriales, que es como lo transmite el Arduino. Así que mi solución fue instalar un módulo bluetooth en la pedalera, recibiendo y emitiendo datos seriales del Arduino, y luego hice un receptor para el ordenador que consiste de un circuito USB-MIDI con otro módulo bluetooth que recibe los datos, los transfiere al circuito USB-MIDI, y éste lo manda al ordenador. Total, que en el PC no hace falta andar con drivers ni historias para el bluetooth y el MIDI porque recibe los datos ya en formato MIDI por el USB. El camino que recorren los datos sería este:
Arduino ----> Bluetooth(emisor) ----> Bluetooth(receptor) ----> Circuito USB-MIDI ----> PC.
Este es el receptor:
Por otro lado, destripé una batería externa de esos para móviles y la instalé en la pedalera. Me costó 4€ en el carrefour y da una autonomía de unas 12 horas. Le estañé unos cables a los puertos USB de carga y descarga, y otro a una entrada analógica del Arduino. De esta manera se puede cargar la batería a través de un puerto USB instalado en la pedalera, y por otro lado el Arduino detecta la carga que tiene y la muestra en la pantalla, añadiendo unas líneas de código, para así saber cuándo hay que cargarla.
He simplificado un poco las cosas en la explicación anterior porque hay que saber programar los módulos, compilar código para el circuito USB-MIDI, modificar la librería MIDI del Arduino... Si a alguien le interesa lo puedo explicar en más detalle, pero si no es un poco tostón.
También he quitado todos los potenciómetros de la pedalera. No eran nada prácticos por tener que agacharse cada vez que quieres cambiar algo... Así que fuera. La idea ahora es hacer un controlador para el escritorio con los potenciómetros y que también vaya por bluetooth, aprovechando el receptor que ya está hecho y al que se pueden conectar hasta 7 emisores.
Saludos!
mod
Muchas gracias por los comentarios!
En efecto @fmk, y cuando utilizas algo hecho por tí la satisfacción es el doble - y me consta que de eso sabes un rato!
Ya he pedido las piezas para la siguiente fase del proyecto. Va a ser muy simple, basado en un Atmega16: una pequeña barra para dejar encima del escritorio con 7 potenciómetros (quizá más, lo tengo que pensar), batería de litio y bluetooth. Al no llevar pantalla y 4 LEDs que solo se encenderán al pulsar un botón para saber la carga de la pila, tendrá una autonomía bastante larga.
En efecto @fmk, y cuando utilizas algo hecho por tí la satisfacción es el doble - y me consta que de eso sabes un rato!
Ya he pedido las piezas para la siguiente fase del proyecto. Va a ser muy simple, basado en un Atmega16: una pequeña barra para dejar encima del escritorio con 7 potenciómetros (quizá más, lo tengo que pensar), batería de litio y bluetooth. Al no llevar pantalla y 4 LEDs que solo se encenderán al pulsar un botón para saber la carga de la pila, tendrá una autonomía bastante larga.
Buenas,
Aquí os dejo unas fotillos del controlador MIDI de escritorio que he hecho para controlar todo lo que son los potenciómetros dentro del VST que sea. Este también va por bluetooth y lleva una pila 18650 reciclada de la batería "muerta"* de un portátil viejo, con circuitos añadidos de protección y carga.
Resulta que me había colado de listo y si bien el protocolo bluetooth permite emparejar hasta 7 esclavos con un master, los baratillos que yo estoy usando, no. Así que tocó añadir otro módulo al receptor hecho anteriormente. Ahora el problema era que había 2 módulos alimentando el mismo pin Rx del microcontrolador del receptor, pero buscando por la red encontré un apaño usando una resistencia y un par de diodos que ha resultado funcionar perfectamente.
Así queda el receptor ahora, con un módulo para la pedalera y otro para el controlador de escritorio:
El controlador se basa en un atmega1284. La idea inicial era usar un atmega16 pero empecé a añadir funciones y en seguida se quedó corto; el otro era lo que tenía a mano.
Este es el circuito donde va todo conectado, con el módulo emisor bluetooth y un conversor FTDI-USB para programar el atmega:
El controlador consta de 11 potenciómetros, un joystick y una pantallita OLED:
Ya que con 11 potenciómetros te quedas un poco corto, el joystick lo que hace es subir/bajar bancos de notas para las filas superior e inferior de potes independientemente. Es decir, para la fila superior he programado 3 bancos de 6 notas. Moviendo el joystick en vertical se sube y baja de banco. Esta fila la uso para los cabezales de ampli. Para la fila inferior hay 7 bancos de 5 notas. Esta fila la uso para los pedales y demás elementos que pueda haber. Moviendo el joystick en horizontal vas saltando de un pedal a otro.
Pulsando el joystick hacia dentro, se vuelve a los valores iniciales. El nº de bancos se puede aumentar hasta cubrir las 127 notas MIDI, pero tampoco hace falta.
La pantallita es para saber en qué banco está cada fila, mostrar el voltaje de la batería y cuando se acciona un pote muestra la nota y el valor CC:
Sé que hay controladores MIDI por 4 duros, pero... ¿dónde está la gracia? Además, este hace lo que yo quiero como yo quiero y no necesita cables, que mi escritorio ya parece un nido de serpientes sin tener que añadir más...Mi código sigue siendo de nivel parvulito, pero estoy aprendiendo un montón y para mí el proceso de montaje en sí ya es un entretenimiento.
*Después de unos años las baterías de nuestros portátiles dejan de cargar y de alimentar, pero resulta que en realidad a las celdas que llevan dentro les queda bastante vida aún. La explicación de por qué sucede esto se puede consultar fácilmente en la red, pero que sepáis que son un recurso que es muy interesante para reciclar. Eso sí, con MUCHO CUIDADO. Yo ya me he pegado un susto desmontando una batería y es algo que mejor hacerlo en el exterior por si acaso y después de documentarse bien sobre cómo proceder.
Aquí os dejo unas fotillos del controlador MIDI de escritorio que he hecho para controlar todo lo que son los potenciómetros dentro del VST que sea. Este también va por bluetooth y lleva una pila 18650 reciclada de la batería "muerta"* de un portátil viejo, con circuitos añadidos de protección y carga.
Resulta que me había colado de listo y si bien el protocolo bluetooth permite emparejar hasta 7 esclavos con un master, los baratillos que yo estoy usando, no. Así que tocó añadir otro módulo al receptor hecho anteriormente. Ahora el problema era que había 2 módulos alimentando el mismo pin Rx del microcontrolador del receptor, pero buscando por la red encontré un apaño usando una resistencia y un par de diodos que ha resultado funcionar perfectamente.
Así queda el receptor ahora, con un módulo para la pedalera y otro para el controlador de escritorio:
El controlador se basa en un atmega1284. La idea inicial era usar un atmega16 pero empecé a añadir funciones y en seguida se quedó corto; el otro era lo que tenía a mano.
Este es el circuito donde va todo conectado, con el módulo emisor bluetooth y un conversor FTDI-USB para programar el atmega:
El controlador consta de 11 potenciómetros, un joystick y una pantallita OLED:
Ya que con 11 potenciómetros te quedas un poco corto, el joystick lo que hace es subir/bajar bancos de notas para las filas superior e inferior de potes independientemente. Es decir, para la fila superior he programado 3 bancos de 6 notas. Moviendo el joystick en vertical se sube y baja de banco. Esta fila la uso para los cabezales de ampli. Para la fila inferior hay 7 bancos de 5 notas. Esta fila la uso para los pedales y demás elementos que pueda haber. Moviendo el joystick en horizontal vas saltando de un pedal a otro.
Pulsando el joystick hacia dentro, se vuelve a los valores iniciales. El nº de bancos se puede aumentar hasta cubrir las 127 notas MIDI, pero tampoco hace falta.
La pantallita es para saber en qué banco está cada fila, mostrar el voltaje de la batería y cuando se acciona un pote muestra la nota y el valor CC:
Sé que hay controladores MIDI por 4 duros, pero... ¿dónde está la gracia? Además, este hace lo que yo quiero como yo quiero y no necesita cables, que mi escritorio ya parece un nido de serpientes sin tener que añadir más...Mi código sigue siendo de nivel parvulito, pero estoy aprendiendo un montón y para mí el proceso de montaje en sí ya es un entretenimiento.
*Después de unos años las baterías de nuestros portátiles dejan de cargar y de alimentar, pero resulta que en realidad a las celdas que llevan dentro les queda bastante vida aún. La explicación de por qué sucede esto se puede consultar fácilmente en la red, pero que sepáis que son un recurso que es muy interesante para reciclar. Eso sí, con MUCHO CUIDADO. Yo ya me he pegado un susto desmontando una batería y es algo que mejor hacerlo en el exterior por si acaso y después de documentarse bien sobre cómo proceder.
mod
Estimado IGNOTUS...
Saludos desde ROSARIO - ARGENTINA
No puedo creer lo que has hecho... esto es DIY nivel DIOS
Realmente supera ampliamente todo lo que he investigado en la red sobre sobre pedaleras midi-usb basadas en arduino.
Hece meses que investigo para encontrar algún proyecto que me sirva de base para realizar mi primer proyecto en arduino (lo cual ya de por sí es ambicioso)... pero viendo este hilo se me dio vuelta la cabeza imaginando las posibilidades que me daría replicar tu proyecto.
Sinceramente, para mí es imprescindible intentar algo así, ya que la situación en argentina (mi siatuación) no me permite comprar amplificador, multiefectos y demas cacharros.
Solo soy YO, mi BAJO y mi laptop.
Por lo tanto... ahi va el pedido... Ruego, suplico, imploro que me envíes el esquema de conexiones con alguna explicación (aunque sea breve) como para poder intentarlo. He visto en este hilo que haz publicado el código en github junto con una descripción del proyecto. pero no me queda claro si voy a poder empezar sin una explicación de conexiones.
Disculpa si te incomoda, si decides no acceder a este pedido (súplica) no habrá rencores de mi parte... jajaja. Entiendo que cuesta trabajo y tiempo y te juro que si pudiera te ofrecería dinero por el ezfuerzo...
Te dejo mi mail... danielfedericogimenez@gmail.com
Me despido... Gracias.
Saludos desde ROSARIO - ARGENTINA
No puedo creer lo que has hecho... esto es DIY nivel DIOS
Realmente supera ampliamente todo lo que he investigado en la red sobre sobre pedaleras midi-usb basadas en arduino.
Hece meses que investigo para encontrar algún proyecto que me sirva de base para realizar mi primer proyecto en arduino (lo cual ya de por sí es ambicioso)... pero viendo este hilo se me dio vuelta la cabeza imaginando las posibilidades que me daría replicar tu proyecto.
Sinceramente, para mí es imprescindible intentar algo así, ya que la situación en argentina (mi siatuación) no me permite comprar amplificador, multiefectos y demas cacharros.
Solo soy YO, mi BAJO y mi laptop.
Por lo tanto... ahi va el pedido... Ruego, suplico, imploro que me envíes el esquema de conexiones con alguna explicación (aunque sea breve) como para poder intentarlo. He visto en este hilo que haz publicado el código en github junto con una descripción del proyecto. pero no me queda claro si voy a poder empezar sin una explicación de conexiones.
Disculpa si te incomoda, si decides no acceder a este pedido (súplica) no habrá rencores de mi parte... jajaja. Entiendo que cuesta trabajo y tiempo y te juro que si pudiera te ofrecería dinero por el ezfuerzo...
Te dejo mi mail... danielfedericogimenez@gmail.com
Me despido... Gracias.
Ok, lo postearé aquí para que pueda servir a otros. Una pregunta: ¿Vas a hacer la versión bluetooth o solo MIDI-USB? Porque cambia un poco, y añadir la batería de litio lo hace un poco más complejo (aunque también le puedes enchufar una batería portátil por USB y a correr). Por otro lado, ¿Vas a incluir todos los potes? Al final no me pareció práctico y los quité, pero es para incluirlos en el esquema o no. El circuito MIDI-USB está en el repositorio de GitHub, así como el firmware y cómo programarlo - esa parte la doy por explicada.
Bueno, pues cuando saque un rato hago un esquema a mano, y luego si surgen dudas ya echaré una mano.
Bueno, pues cuando saque un rato hago un esquema a mano, y luego si surgen dudas ya echaré una mano.
Buenas,
La verdad es que dibujar un esquema completo iba a ser un lio tremendo porque hay muchos cables, así que como hay algunas partes que básicamente se repiten (botones y LEDs), te dejo algunas referencias.
Aquí va un esquema de cómo se conectan un LED y un botón:
Y aquí un esquema bastante chapucero de cómo he conectado yo los botones (en su posición "física"), y el pin del Arduino al que van:
Y los LEDs:
Las resistencias para los LEDs son de 220 ó 330 ohms, y los de los botones, de 10k. Si miras mi código, en 'Pedalboard_0.75.ino', verás que de la línea 49 a la 68 hay un número asignado a cada LED y botón. Estos son los pines correspondientes del Arduino y son arbitrarios - puedes usar los que quieras, siempre y cuando lo reflejes luego en el código. En la primera imagen, corresponderían a las líneas verde y negro. Como son muchos botones y LEDs he usado tiras de cobre adhesivo, una para GND y otra para 5v, pasando cerca de los botones y LEDs, para así no tener que sacar cables individuales de cada uno hasta el Arduino - en las primeras imágenes de este hilo se ve un poco cómo lo hice.
Como de todas formas hay muchos cables que tienen que ir a 5v, GND y 3v3 (botones, LEDs, pantalla, potenciómetros, sensor hall...) hice pequeñas placas con 5 ó 6 pines unidos entre sí y luego a los pines GND, 5v y 3v3 del Arduino, para así tener múltiples conexiones disponibles de cada uno.
La pantalla va como sigue:
TFT (2.4”, controlador ILI9341):
A través del conversor de nivel:
SCK → 52
MOSI → 51
DC → 49
CS → 53
-------------------------
sin pasar por conversor:
GND → gnd
LED → 3v3 (Arduino)
RESET → reset en placa Arduino
VCC→ 3v3 (Arduino)
El conversor de nivel es necesario porque si no, con las señales a 5v acabas cargándote la pantalla, Lo que hace es rebajar esas señales a 3v3. Se conecta así:
Lo marcado como LV1, LV2, etc. (low voltage) y HV1, HV2, etc. (high voltage) es donde entran y salen las señales entre la pantalla y el Arduino. Luego tienes que conectar GND a ambos lados y en HV, 5v, y en LV, 3.3v.
Potenciómetros (vistos desde el frente):
Pin izquierdo: gnd
Medio: A entrada analógica Arduino (A0, A1, etc)
Derecho: 5v (Arduino)
Sensor Hall (A1302), cara más estrecha hacia tí:
Izq: 5v
Medio: GND
Dcho: A entrada analógica Arduino (A0 en mi caso)
Si todo esto te suena a chino... mi consejo es que antes de embarcarte, te documentes bien sobre cómo conectar y hacer funcionar botones, LEDs y potenciómetros en Arduino, y que primero hagas tus propios sketches simples usando estos componentes. Yo partí casi desde cero y antes de llegar al resultado actual pasé por un proceso gradual de aprendizaje empezando con cosas muy simples. Creo que sin una base sería muy difícil completar este proyecto con éxito porque tiene bastantes piezas y tienes que planificar un poco antes de empezarlo, y para eso tienes que saber lo que haces. No es nada difícil una vez que tienes esa base, pero creo que es esencial.
Bueno, espero que esto despeje algunas dudas!
La verdad es que dibujar un esquema completo iba a ser un lio tremendo porque hay muchos cables, así que como hay algunas partes que básicamente se repiten (botones y LEDs), te dejo algunas referencias.
Aquí va un esquema de cómo se conectan un LED y un botón:
Y aquí un esquema bastante chapucero de cómo he conectado yo los botones (en su posición "física"), y el pin del Arduino al que van:
Y los LEDs:
Las resistencias para los LEDs son de 220 ó 330 ohms, y los de los botones, de 10k. Si miras mi código, en 'Pedalboard_0.75.ino', verás que de la línea 49 a la 68 hay un número asignado a cada LED y botón. Estos son los pines correspondientes del Arduino y son arbitrarios - puedes usar los que quieras, siempre y cuando lo reflejes luego en el código. En la primera imagen, corresponderían a las líneas verde y negro. Como son muchos botones y LEDs he usado tiras de cobre adhesivo, una para GND y otra para 5v, pasando cerca de los botones y LEDs, para así no tener que sacar cables individuales de cada uno hasta el Arduino - en las primeras imágenes de este hilo se ve un poco cómo lo hice.
Como de todas formas hay muchos cables que tienen que ir a 5v, GND y 3v3 (botones, LEDs, pantalla, potenciómetros, sensor hall...) hice pequeñas placas con 5 ó 6 pines unidos entre sí y luego a los pines GND, 5v y 3v3 del Arduino, para así tener múltiples conexiones disponibles de cada uno.
La pantalla va como sigue:
TFT (2.4”, controlador ILI9341):
A través del conversor de nivel:
SCK → 52
MOSI → 51
DC → 49
CS → 53
-------------------------
sin pasar por conversor:
GND → gnd
LED → 3v3 (Arduino)
RESET → reset en placa Arduino
VCC→ 3v3 (Arduino)
El conversor de nivel es necesario porque si no, con las señales a 5v acabas cargándote la pantalla, Lo que hace es rebajar esas señales a 3v3. Se conecta así:
Lo marcado como LV1, LV2, etc. (low voltage) y HV1, HV2, etc. (high voltage) es donde entran y salen las señales entre la pantalla y el Arduino. Luego tienes que conectar GND a ambos lados y en HV, 5v, y en LV, 3.3v.
Potenciómetros (vistos desde el frente):
Pin izquierdo: gnd
Medio: A entrada analógica Arduino (A0, A1, etc)
Derecho: 5v (Arduino)
Sensor Hall (A1302), cara más estrecha hacia tí:
Izq: 5v
Medio: GND
Dcho: A entrada analógica Arduino (A0 en mi caso)
Si todo esto te suena a chino... mi consejo es que antes de embarcarte, te documentes bien sobre cómo conectar y hacer funcionar botones, LEDs y potenciómetros en Arduino, y que primero hagas tus propios sketches simples usando estos componentes. Yo partí casi desde cero y antes de llegar al resultado actual pasé por un proceso gradual de aprendizaje empezando con cosas muy simples. Creo que sin una base sería muy difícil completar este proyecto con éxito porque tiene bastantes piezas y tienes que planificar un poco antes de empezarlo, y para eso tienes que saber lo que haces. No es nada difícil una vez que tienes esa base, pero creo que es esencial.
Bueno, espero que esto despeje algunas dudas!
Hilos similares
Nuevo post
Regístrate o identifícate para poder postear en este hilo