Controlador MIDI para smartphone Android

Hola a todos.
Este es mi primer hilo en este foro. Soy un habitual de algunos foros de música y audio, pero ando bastante perdido en temas de electrónica y programación. Espero poder resolver algunas dudas gracias a vuestra ayuda.

Se me ha metido en la cabeza la idea de hacerme un controlador MIDI tipo "stompbox" (es un pedal para tocar ritmos con el pie), para conectarlo por USB OTG a un móvil o tableta Android con una app de samplers, que se dispararán con el controlador MIDI.
He estado buscando por internet información sobre el tema, y lo más parecido que encuentro son proyectos de baterías electrónicas DIY con conector MIDI de 5 pines.
Gracias a dichos proyectos ya tengo una idea más concreta de lo que voy a necesitar: una placa Arduino, varios sensores piezo, resistencias de 1MOhm y diodos Zener de 5,1V. También usaré una protoboard y cables tipo Dupont para hacer las pruebas necesarias.
Pero mi primera duda es sobre el tipo de placa Arduino. De momento, me ha parecido entender que me conviene una que lleve el microcontrolador ATmega 32U4, porque la conectividad USB es más sencilla -viene a ser Class Compliant, según he leído-. Las Arduino que creo que llevan ese componente son la Micro, la Pro Micro y la Leonardo. Cualquiera de ellas tiene suficientes entradas analógicas, porque en principio solo voy a necesitar 1 o 2 pads. Lo que me preocupa es el tema de la alimentación: si bien entiendo que una Micro o Pro Micro funciona simplemente con estar conectada a un ordenador por USB, no sé si un móvil dará suficiente corriente para el correcto funcionamiento del controlador MIDI. Con los teclados (de piano) MIDI se necesita alimentación externa cuando se conectan a un móvil, por ejemplo. Si fuese el caso, pienso que la Leonardo me podría resultar más cómoda porque ya tiene un conector de alimentación de 9V.
¿Es correcto todo esto que planteo? ¿Necesitaré alimentación externa? ¿Dónde tiene el conector de barril de la Leonardo el positivo y el negativo (interior-exterior o exterior-interior)?
Al buscar en tiendas de electrónica las resistencias de 1MOhm y los diodos Zener de 5,1V me encuentro con que hay infinidad de variantes que difieren en otras características, y no sé qué debo comprar exactamente. ¿Alguien sabría aconsejarme qué resistencias y diodos necesito exactamente?
Muchas gracias.

Es difícil sin ver el circuito.

Así, "en el aire", las resistencias de 1/8W ó 1/4W son lo típico.
El resto queda pendiente a que adjuntes el circuito.

Perdón. Mi primer error de principiante, je, je...
El esquema sería algo así, para 2 pads:


Saludos

Una duda más acerca del diodo Zener.
Mi intención es que el controlador sea sensible a diferentes presiones en los sensores piezo, de forma que éstos puedan generar diferentes voltajes -entiendo que entre 0V y 5V-, y que la placa Arduino pueda traducir esos diferentes voltajes en diferentes señales MIDI. Esto se usa en MIDI para poder controlar lo que se llama "velocity", que a pesar de su nombre tiene más que ver con el volumen de una nota. Es decir, que según lo fuerte o flojo que se pise el pad, el sonido resultante será más fuerte o flojo. ¿El diodo Zener permite esos diferentes voltajes según la presión, o hace que sólo se genere un voltaje de 5V o nada?
Saludos.

El zener limita la tensión para que no supere 5.1V y queme la entrada analógica.

Se llama velocity porque en los primeros teclados relacionaron la velocidad de pulsación con la fuerza que se aplicaba a la tecla y comparándola con un piano, a más fuerza más volumen.

En cuanto a qué zener comprar, en este caso cualquiera de 5.1V te sirve.

Gracias MaximoEsfuerzo.
Ya he encontrado resistencias de 1/4W y diodos Zener de 1W.

Sigo con el lío de la alimentación de la Arduino. Por lo que he ido encontrando por internet, creo que voy a necesitar alimentación externa, ya que el puerto USB lo necesito para enviar los datos MIDI al móvil o tableta, y no parece que sea posible que estos dispositivos alimenten correctamente la Arduino.
Lo que sí he visto es que, si no me equivoco, puedo dar corriente a cualquiera de los modelos que he mencionado. La Leonardo ya tiene su propio conector de barril, la Micro tiene los pines VIN y GND, y la Pro Micro los pines VCC y GND, a los que puedo soldar un conector de barril o un portapilas. ¿Es correcto?

Depende del modelo, por ej. mi móvil hasta puede darle carga a otro móvil, le he "enchufado" Nano's, Pi Pico, ESP8266, GPS y los ha soportado estoicamente. :grin:

No tengo en mente cada modelo ahora pero mientras la placa que vayas a usar tenga regulador de tensión, no vas a tener problemas.

Hola.
Finalmente me decidí a tirar adelante con este proyecto y ya tengo todos los componentes que comenté: Arduino Leonardo, resitencias, diodos Zener, piezos, etc.
El problema que tengo ahora es que no consigo que el código que tenía previsto usar me funcione. Lo encontré en la web de una persona que había hecho un drumkit de 10 pads: Custom code for ArduinoMidiDrums - 10 drum pads, no hi-hat pedal · GitHub
Tengo instalado el software Arduino IDE 2.2.1, pero cuando copio el código que he mencionado, me da error al compilarlo, aunque no haga ningún cambio. En concreto me pone "Compilation error: call of overloaded 'write(int)' is ambiguous", y se resalta en color rosado la línea 69.
No sé si este código directamente no va a funcionar, o si tengo que modificar algo por estar usando una placa Leonardo (aparte de lo de los 10 pads, pero eso creo que lo tengo medio claro).
Un saludo.

Hola de nuevo.
De momento ya he averiguado lo del mensaje de error. Se ve que la orden "write" da problemas cuando el valor es "0", y por eso lo considera ambiguo. Se recomienda usar "print" en lugar de "write". Con ese cambio ya me deja compilar el código. A ver si puedo seguir avanzando por ahora.
Saludos.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.