Construyendo un controlador MIDI con arduino

lutop
#25 por lutop el 05/07/2022
#24

Pero que dices hombre, porque van a querer borrarlo. Esto queda aqui para la posteridad por si alguien quiere construirse algo similar.
No me lo he leido todo, pero me he quedado con lo del mocoLUFA que no lo conocia, y lo tengo guardado para algun proyecto futuro.

Se agradece el curro.
Subir
OFERTASVer todas
  • Taylor 214ce-SB DLX
    1.198 €
    Ver oferta
  • Harley Benton DNAfx GiT
    139 €
    Ver oferta
  • -18%
    Warm Audio Foxy Tone Purple 70th Fuzz
    129 €
    Ver oferta
acamm
#26 por acamm el 05/07/2022
Hola,
No deberían eliminar este hilo jamás, tío Elias. Está genial y hay un montón de información útil. Supongo que al llevar tantos comentarios sin respuesta por nuestra parte te da la sensación de que no nos interesa. En mi caso sí que me interesa, lo que ocurre es que tanta información me abruma un poco y peguntar alguna idiotez por no haber leído bien algo me parece casi absurdo. Por otro lado tengo dos Nanos, que compré hace tiempo, muertos de risa porque no me he puesto, así que creo que debería empezar por aquí antes que ensuciar un hilo de este tipo.
Subir
elias
#27 por elias el 05/07/2022
Gracias por vuestros comentarios dan ganas de seguir..
Lo que pasa es que yo pensé hacer este hilo precisamente para eso, para gente como yo o como tu ,acam, si tienes un arduino uno o nano (por cierto yo tampoco tengo mucha idea pero me parece que teniendo un atmega 32 no te haría falta flashear el mocolufa ni nada, creo que ya tienes la funcion usb -midi al subirle el codigo..

Este hilo, es para que preguntes todo lo que se te ocurra, yo intento explicar las cosas lo máximo posible, pongo los links necesarios para llegar a la info y todo lo que pongo es porque ya lo he re-probado previamente, pero no tengo ningun grado en automatismos ni ingenieria industrial ni siquiera un curso de windows..
No estoy en posición de hacer tutoriales, que al final es lo que parece...

Ahora me voy a tomar un tiempo, porque ocurre que estoy intentando programar un pic (18f2550) y me estoy volviendo loco en el intento..
Tengo habilidad para sacar las cosas poco a poco, pero en esto de arduino, la informatica etc.. a veces me siento un poco maldito en magia negra (medievo en el culo)

Me acuerdo que esto me paso algo parecido intentando quemar el bootloader del atmega1284 hace un año..

Lo dicho, gracias y ya volveré.
Cualquier pregunta intentare ayudar lo mejor posible, pero en receptores bluetooth con un pic18f2550 no respondo, gracias
Subir
elias
#28 por elias el 05/07/2022
Entre ayer y hoy me he cargado un pc, Dos chips atmel 1284, dos modulos ftdi, una placa que me pase dos horas para hacerla, la pantalla 1306
Un momento de querer probar la pantalla se te va un cable oyes un chisporroteo...a la mierda
Me tomare un tiempo..
Subir
elias
#29 por elias el 23/07/2022
Hola.
Pues sigo con el tema de baterias..
Las baterias las utilizaremos para hacer un controlador midi que sea inalambrico bien por via bluetooth o wifi.
Si, por el contrario..vamos a hacer un controlador que se alimente y se comunique por un cable USB, este tema no nos interesa..

Ya os comente que necesitabamos un cargador para nuestras baterias recargables,ya os enseñé la foto de esta plaquita en particular, os la vuelvo a mostrar..
TP4056
5d528e7a72f0fddf5d3a8408ae6bf-2811411.jpg
La bateria la conectamos a los pines B+ y B- y en los pines OUT+ y OUT-conectaremos un booster y seguido el circuito con el arduino etc.. (el conector usb que veis en la foto es la entrada, para poner un cargador de movil y cargar la bateria, recordad que la luz roja es porque esta cargando una bateria, y la luz azul es que recibe voltaje pero esta sin cargar).

Las baterias, pueden ser baterias de moviles viejos..o de portatiles..tablets..etc..
Todo lo que entregue un voltaje adecuado nos servirá...la clave esta en encontrar los pines negativo y positivo que nos permitan conectarla y posteriormente poder recargarla.
Muchas veces nos podemos encontrar varias celdas en una bateria (como la de la foto, que era de una tablet) y en este caso,se conectan en paralelo (es exactamente lo mismo que si pusieramos varias baterias juntas, de la misma capacidad).
a1dba389afd8fd86dba290825a956-2808264.jpg
Ya os digo que la clave es encontrar los pines negativo y positivo..pero tened cuidado por que si rompeis el sellado de las baterias, esta empezara a calentarse..
Si el agujero es grande peor..
Si juntais los cables positivo y negativo es probable que empieze a salir humo blanco (en mi caso se quemaron los cables y un poco la bateria y salió mucho humo,pero despues funcionaba la jodia....
Lo dicho, con cuidado...
Yo, para mis proyectos re- utilizo muchas baterias con micro-conectores (elimino el microconector, tipo apple o xiaomi, etc..y luego sueldo en los pines positivo y negativo de la bateria).
O baterias viejas de moviles que llevan pines a la vista...

Una vez tengamos nuestras baterias..
Aparte del cargador de baterias...Conectaremos un booster (MT 3608)antes del circuito con el arduino, para poder hacer una lectura eficiente de la capacidad de nuestra bateria y para tambien, poder entregar el voltaje adecuado al circuito del arduino..

Estos booster actuan de la siguiente forma..
Nosotros conectamos una pila de 3,3 voltios, por ejemplo , en la entrada (IN+,IN-)del booster.
Y luego conectamos el tester a la salida (OUT+ y OUT-)y medimos la corriente en continua..
Veremos que nos entrega 20 voltios y entonces giraremos el tornillo de la placa del booster, hasta que baje a 5 voltios...y ya quedará configurado para conectarlo..
2dbcc867eaf0e66540459f5db7f36-2811411.jpg
Mucho Cuidadito con conectarlo directamente entregando 20 voltios(yo me he cargado un atmel entregandole 20 voltios con el booster)
Estos boosters (MT 3608) van conectados despues del cargador TP4056 y tambien conectados antes del circuito con el arduino, tienen una entrada (IN+,IN-) y una salida (OUT+ , OUT-) y el tornillo que regula el voltaje de salida del booster, no tiene ninguna complicación más

Pondremos un interruptor para poder encender y apagarlo todo y así no gastar bateria cuando no utilizemos el cacharro..
El interruptor ON/OFF, se pone despues del cargador TP4056, en el pin del OUT+.
Y por ultimo pondremos un cable con una resistencia (de las de un cuarto de watio) de 10 kiloohmios en el pin positivo de la bateria para llevarlo a una de las entradas analogicas de arduino y que haga una lectura de la capacidad de nuestra bateria, mientras esta encendido el cacharro.
Os pongo un esquema de todo lo explicado anteriormente
8654e6630b2ffcb9461281bb32f14-2811411.png
El cable morado que va del polo positivo de la bateria, llevaria una resistencia de 10K, e iria hacia un pin analogico del arduino.
Bueno..ya hemos explicado como hacer un arduino con un chip atmel 1284 o 328...un poco de como obtener comunicacion MIDI-USB alguna cosa más y seguiremos con este tema...

Saludos
Subir
elias
#30 por elias el 06/08/2022
Buenas..
Tengo que corregir el último post..
El cable morado (el que lleva la resistencia de 10k para la lectura de la bateria en un pin analógico de arduino) se pondría en el pin IN + del booster.
No en la batería como pongo en el dibujo..

El booster tiene los pines IN+ e IN- (recibe la alimentación del TP4056) y los pines OUT+ y OUT-.

Con esto, yo creo que el que quiera ya puede alimentar con baterias sus circuitos con arduino.

Quiero seguir con este tema, porque creo estar en deuda con el foro y quiero dedicarme a explicar mi experiencia, lo mejor posible..a mi nivel, para gente de mi nivel jeje
Así que seguimos..

Despues de las baterias, podriamos seguir haciendo un remember de la comunicacion USB-MIDI.

Cuando tenemos la comunicación USB-MIDI en nuestro dispositivo, esto significa que cuando conectemos el dispositivo al ordenador, este va a ser reconocido como un tipo de dispositivo USB-MIDI.

Hoy en dia hay muchas tarjetas micro-controladoras en las que se puede conseguir este tipo de dispositivo USB-MIDI.
Bien programandolas con ejemplos (a veces basta con una sola linea de declaración en el codigo, por ejemplo: USB-MIDI)
En este caso hay muchas, teensy, arduino leonardo, las esp-32 etc etc etc..
O a veces tendremos que flashearlas (dejan de ser dispositivos arduino, para convertirse en USB-MIDI), en este caso estan arduino mega, arduino uno, etc etc...
Ya explique que hay muchos metodos de flasheo (usb-midiklik, hiduino, pimp my mocolufa, etc,etc...), quizás uno de los mas interesantes y faciles es el pimpmymocolufa que te permite cambiar de arduino a USB-MIDI con solo darle a un interruptor.

Otras veces no podremos hacer ni la una ni la otra con nuestra tarjeta, por motivos que ya he explicado anteriormente..
En este caso, simplemente haremos recurso de programas como MIDI-YOKE, LOOP-BE,HAIRLESS etc etc para conseguir una comunicación usb-midi, aunque nuestro dispositivo no sea reconocido como tal.
Otro metodo sería conectar nuestra tarjeta a traves del serial (TX,RX) a otra tarjeta que si sea un dispositivo MIDI-USB.

Hay muchas maneras, pero yo me doy por satisfecho si ya sabeis que para recibir y enviar señales midi con nuestro arduino, es necesaria ese tipo de comunicación USB-MIDI..

Prometo dejar esto ya a un lado, no os volvere a dar el coñazo con la comunicación USB-MIDI.

El proximo post, yo creo que lo mejor será empezar ya con los modulos bluetooth.
Subir
elias
#31 por elias el 06/08/2022
MODULOS BLUETOOTH

Voy a ir al grano (porque sino otro gallo siglos cantaría...)
Los HC-05.
Comprar estos modulos en amazon,ali etc..se ha vuelto una actividad con cierto riesgo (como ir a china y pillar un gra..bueno..va)
Y es que hay varios modulos que solo pueden fucionar como SLAVE.
Un dispositivo MASTER solo recibira conexiones de un SLAVE ...para que nos entendamos... con un dispositivo SLAVE, podremos verlo en nuestras conexiones disponibles de bluetooth en nuestro movil, si lo encendemos..pero un MASTER no aparecerá en el listado de conexiones disponibles (porque el MASTER esta esperando la llegada de sus SLAVES, no está para otras tonterias..jeje)

Entonces..los HC-06 solo funcionan como SLAVES.
y los hc-05, todos los que son new version (yo no compraría ninguno) tambien solo funcionan como SLAVES.
además tienen un poco de mala leche, porque si te pones a configurarlos...le pondrás AT+ROLE=1
Y el dispositivo te dirá OK,
Pero resulta que si luego le preguntas AT+ROLE?
El dispositivo responde AT+ROLE=0

Por si no lo sabiais...AT+ROLE=1 es para configurar el modulo como MASTER
y AT+ROLE=0 es para configurarlo como SLAVE

Conclusión..muchos dispositivos solo pueden ser configurados como SLAVE y nosotros necesitamos un MASTER para cada SLAVE
O sea que cuidadito al comprar estos modulos..
Necesitamos cambiar su AT+ROLE=1
Necesitamos modulos hc-05 que puedan ser configurados como MASTER.

Los hc-05 viejos en teoria deberían permitir este tipo de configuraciones, aunque los comandos de configuración del modulo bluetooth cambian dependiendo la versión de firmware.

Proximo post configuracion del HC-05 con un FTDI o un arduino UNO y como conectarlos
Subir
elias
#32 por elias el 12/08/2022
MODULOS BLUETOOTH HC-05

Empezamos con un pequeño manual de un modelo en concreto de HC-05 que si funciona como MASTER....
En serio..tened cuidado con aquellos modulos que mienten al decir que si pueden ser MASTERS..hay muchos que solo funcionan como SLAVES (hagas lo que hagas).
https://drive.google.com/file/d/1Fy3bns33Q2KyPoUaUQIo9Pf4JNdCBYag/view?usp=sharing
Despues del manual de iniciación, comentaros...para configurar el modulo bluetooth, podeis utilzar un arduino NANO (como en el manual) o un UNO o un MEGA etc etc o un FTDI-USB (como es mi caso)..
Lo importante es conectar el modulo bluetooth a nuestro arduino o a nuestro FTDI-USB y abrir el monitor serie en arduino IDE (tendremos que cambiar los baudios de comunicación dependiendo del modelo) y seguir el manual para tener una comunicación correcta (poner el modulo en modo AT, presionando el boton al encenderlo).
La idea es que si hemos conectado todo correctamente..escribiremos lo siguiente, en el monitor serie (no olvideis seleccionar el puerto COM correcto en el IDE):
AT
Y si todo esta bien..nos respondera
OK
Y ya podremos empezar a configurarlos mediante comandos AT.
Hay muchos tipos de modulos hc-05 con sus firmwares distintos y puede que algunos comandos funcionen en unos modelos y en otros no...asi que tendreis que buscar el listado de comandos que se acople a vuestro modelo concreto..
Por ejemplo hay modelos que escribiendo AT+HELP? o AT+TYPE?
Te salen todos los comandos posibles..
Pero mi modelo esto no lo tiene en el firmware..
A mi me sirven estos comandos
https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/709/HC-05_ATCommandSet.pdf

Para conectar el modulo hc-05 en vuestro modelo de arduino...podeis seguir el manual del principio del post o cualquier tutorial de google.
Pero si utilizais un arduino tened en cuenta que sus pines alimentan a 5 voltios y no podemos alimentar los pines TX o RX del modulo bluetooth con 5V
Tendreis que utilizar resistencias o un convertidor de voltaje de 3v/5v para alimentar alguno de esos pines del modulo bluetooth (aunque en realidad...el modulo se alimenta en VCC y GND con 5V...pero hacedme caso con ese pin en concreto del modulo, bajadle el voltaje y no lo conecteis directamente como veo en muchos tutoriales).
Tendreis que subir un programa al arduino y luego conectar el arduino al modulo bluetooth para realizar la configuracion en el monitor serie.

Si utilizais un FTDI-USB (yo lo utilizo, es lo mas rapido para configurar modulos bluetooth)
Primero se pone el jumper del FTDI en 3.3V y luego se conecta al modulo utilizando 4 pines
VCC-VCC
GND-GND
TX-TX
RX-RX
Conectamos el FTDI-USB al pc y abrimos el arduino IDE y seleccionamos el puerto COM del FTDI.(en mi caso COM10)
Al encender el modulo bluetooth pulsamos el boton para ponerlo en modo AT (la luz roja parpadea MUY lentamente)
Y abrimos el monitor serie de arduino IDE.
A mi me funciona poniendo la comunicacion del monitor a 38400 baudios y seleccionando "Ambos NL CR"
Vosotros dependiendo de si utilizas un arduino o lo que sea tendras que ponerlo a 9600 baudios o no se, ve probando hasta que veas caracteres legibles en el monitor serie..
La idea es que escribimos
AT
y si nos devuelve un OK, podremos configurarlo..

Volvere para explicaros como lo configuro yo, en mi caso.Que comandos pongo y que es necesario para linkar correctamente MASTERS Y SLAVES..

Ya queda poco para acabar el hilo ;)
Subir
elias
#33 por elias el 13/08/2022
Seguimos...yupiiii!!
Ya os he explicado como conectarlo..vamos a seguir el ejemplo con un FTDI-USB, que es lo que yo uso para configurar estos modulos bluetooth HC-05
Una vez conectado (solo se utilizan 4 cables) y puesto el modulo HC-05 en modo comandos AT, pulsando el boton AT....ya podemos abrir el monitor serie en arduino ide (PRIMERO seleccionamos el puerto COM de nuestro FTDI-USB) (en mi caso COM10).

Tecleando AT...si nos devuelve un ok ya podemos empezar la configuración...
--Empezamos con AT+NAME?
Nos devolverá el nombre actual del modulo bluetooth..
para cambiarlo escribiremos
AT+NAME=PEPELOPEZPEREZ

--Cambiar el ROLE es muy importante..
AT+ROLE? y nos dirá su ROLE (1=master/0=slave)
AT+ROLE=1 para configurarlo como MASTER.(en mi caso voy a configurar un MASTER)

--Podemos seguir cambiando los baudios de comunicación para adecuarlos a nuestro receptor bluetooth..en mi caso utilizo el PIC18F-2550 y necesito establecer la conexión de los modulos a 115200
AT+UART? y nos dirá los baudios actuales
AT+UART=115200,0,0
y ya tendremos establecidos los baudios de conexión.

--Cambiar el pin de establecimiento de conexion bluetooth:
AT+PSWD=4567

--Seguimos con AT+ADDR?
Para saber la dirección MAC de nuestro modulo HC-05, la apuntamos y luego la meteremos en la configuracion del modulo espejo (cada modulo MASTER en el receptor bluetooth USB-MIDI irá conectado a un modulo SLAVE, el modulo SLAVE estará en cada cacharro MIDI que hagamos, por ejemplo la pedalera o los potenciometros, cada cacharro MIDI llevara un modulo HC-05 configurado como SLAVE, y estara conectado a un modulo MASTER del receptor bluetooth (pic 18f-2550).
En mi caso yo escribo AT+ADDR?
Y el monitor serie me dice +ADDR:98da:78:013ba.
Mi modulo HC-05 MASTER tiene esa MAC
98da:78:013ba
Pero nosotros tenemos que escribirla siempre en mayusculas, por lo tanto es
98DA:78:013BA

--Seguimos con el AT+CMODE?
AT+CMODE=1 para conectar con todas las direcciones sin que haga falta meter la MAC en el comando AT+BIND
AT+CMODE=0 para conectar solo con el modulo que hemos especificado con el comando AT+BIND

--Y por ultimo el más importante para establecer una buena conexion entre modulos..
AT+BIND?
Aqui meteremos la MAC del SLAVE si estamos configurando el MASTER...
o meteremos la MAC del MASTER si lo que estamos configurando es el SLAVE..
En mi caso yo meto lo siguiente (la mac del slave al que voy a conectar despues)
(habria que haber configurado el SLAVE antes para poder saber la MAC).
AT+BIND=98DA:50:0126BA
(fijaros que siempre hay que meterlo todo en mayusculas SIEMPRE).

Una vez hecho todo esto escribiremos AT+RESET
Y ya lo tendremos configurado.
Verificar con un led conectado al pin STATE y a GND que la conexion bluetooth establecida entre los modulos es correcta.

Todo esto es un tostonazo, pero el que lo quiera hacer ya tiene la info..
Yo hare uso de ella cuando me haga falta..

Os pongo una foto del FTDI-USB y el modulo HC-05 conectados para realizar la configuracion del HC-05
d1d1fb109c9ba1eba90b1db717026-2815846.jpg
Subir
elias
#34 por elias el 13/08/2022
Y casi que voy a concluir este hilo..
Si se me ocurre alguna cosa volveré...pero lo proximo será abrir un hilo nuevo con mi futura mesa de mezclas o con el pedalino y una esp-32..

Os paso el siguiente archivo que son los planos de la pedalera, los potenciometros y el receptor bluetooth del cacharro MIDI de ignotus 666 que es por lo que se empezo este hilo.
Si no quereis instalar el fritzing, no es necesario con los archivos .png (podeis ver los planos igualmente)
https://drive.google.com/file/d/1fIYhu_HpkAIsvU0fAWCLv8d40piRBxZM/view?usp=sharing

Saludos y gracias cuando estuve bajo la verdad es que me vino bien vuestros posts (se agradecen mucho)
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo