Construyendo un controlador MIDI con arduino

elias
#13 por elias el 11/06/2022
Pues no he hecho más que empezar mi proyecto y ya estoy sobrepasado :D
Sin ayuda, yo solo.., creo que voy a conseguir bien poco o nada :D

Me he dado cuenta de que el anterior post no sirve para nada..
Si os dais cuenta..hay que compilar antes de poder subirle el archivo .hex de midiklik a nuestro arduino con el atmel flip..
Aqui lo explica el autor..
https://github.com/TheKikGen/USBMidiKliK/wiki#how-to-compile-the-firmware

Yo he descargado todo lo necesario y estoy trasteando con el winavr a ver si soy capaz de hacer que el makefile de midiklik compile el archivo .hex para mi arduino MEGA 2560..
pero no he compilado nada en mi vida ,que yo recuerde, y cualquier tutorial me suena a chino y....mal....estoy flipando..

He sido muy bruto metiendole el archivo build, y escribiendolo aqui, pero bueno..

Alguien me puede ayudar a compilar el midiklik?

Un saludo a todos.
Subir
OFERTASVer todas
  • -29%
    Boss T-Shirt CCB-MT2TMC (Talla M)
    15 €
    Ver oferta
  • -29%
    Boss T-Shirt CCB-SD1TMC (Talla M)
    15 €
    Ver oferta
  • Squier Sonic Strat LRL Ultravi Set
    255 €
    Ver oferta
elias
#14 por elias el 11/06/2022
Bueno, me molesta auto-responderme, pero es lo que hay..

De momento, dejo aparcado el midiklik porque soy completamente incapaz de hacer nada con la información que da el autor sobre la instalación...
El autor da por supuesto que sabemos compilar con un makefile y nuestra placa de arduino...
Yo imposible..he perdido muchas horas ya..

Así que vuelvo a mi mocolufa (ver el primer video) y vuelvo a tener un dispositivo midi y tambien un arduino para empezar a aprender un poco más sobre la libreria control surface y avanzar con mi mesa de mezclas.

Saludos.
Subir
elias
#15 por elias el 12/06/2022
Hoy culebrass, os voy a traer un metodo de renacer un arduino uno o mega, traerlo de la muerte, desbrickearlo, etc..

Yo despues de mi triunfo en el mundo de la compilación, al conectar el arduino me aparecía como un arduino uno (en realidad es un mega bien gordo)
El pobre cacharro ya no sabía ni quien era..y no había manera de subirle codigo ni forma de resucitarlo con los archivos .hex , que hay para estos casos extremos, en arduino/hardware/ o en la carpeta de atmel flip (normalmente si no te has pasado mucho con los chips, te sobra con estos archivos .hex y el programa atmel flip y conectarlo por usb, ya lo resucitas..).

Pero siento comunicaros que hay ocasiones en las que yo soy completamente incapaz de desbrickear el cacharrico, (en esos malos momentos que a veces tiene a mi lado), en un entorno como windows 10 o con el programa atmel flip conectandolo por usb..

Para mi es imposible desbrickearlo en windows 10 (creedme que lo he probado..), seguro que habrá gente que sí que pueda, pero como esos no comparten..os j... y aqui paso yo a explicaros y daros mis consejos..

Primero necesitais un programador avr usb-asp (vale poco y renace cacharros que lo flipas nen) y luego un windows 7..
Y lo más importante seguir estas instrucciones al pie de la letra..(ya sé que es un peñazo, pero si te resucita un arduino.., no hace falta que me des las gracias, , yo ya lo sabía antes de que se te jodiera jajajajjaaj)
https://drive.google.com/file/d/12hiQE0v710BRuJZTVhRgHvr1vxrmGjDT/view?usp=sharing

Los archivos necesarios para seguir el tutorial son estos (el programa zadig...buscarlo por google e instalarlo)
https://drive.google.com/file/d/17dn_HzvbRd7GecWXLI4Wiwzsh-mamcAN/view?usp=sharing

Toda esta info la he cogido de un tutorial mio para hacer un dispositivo ledwiz ,pero a nosotros nos sirve perfectamente.
Debereis hacer los pasos UNO a TRES y resucitareis el arduino (no hagais los ultimos pasos que os convertirá el arduino en algo que no conoceis...un ledwiz)
Y volvereis a tener un arduino uno o mega funcional y volvereis a subirle codigo y todo como antes.. (a mi me salía stk 500 connection time out...era imposible subir codigo al arduino).

A no ser que tengais un problema de hardware que ahi ya no hay ayuda posible..
Si alguno tiene problemas con los drivers, bootloader, etc....puedo ayudar...ya he pasado por muchos malos momentos y mi metodo es mano de santo..

Podemos seguir..
P.D:..entre tanto disgusto, por lo menos he podido hacer un circuito para recibir datos midi IN a traves de un cable midi (en el circuito solo hace falta unas resistencias y un optoacoplador, creo que se llama así jeje, 6N138, bueno y tambien un condensador de 100 nanofaradios para la corriente de 5 voltios de arduino que llega al opto y algun diodo zener 4148 (que recuerdos estos diodos y el puerto paralelo db-25 del ordenador...).

Este circuito MIDI IN-MIDI OUT-MIDI THRU tiene varias versiones en internet y me interesaba hacerlo para ver que es capaz de hacer (no espero acordes ni nada por el estilo, pero bueno..algo aprendere y veremos que puede hacer) os pondre fotos, materiales, y esquema, pero aun lo tengo que probar mucho más..

Saludos.
Subir
elias
#16 por elias el 12/06/2022
Os pongo la foto de este circuito MIDI in para arduino (es la parte de la derecha del protoboard, en la izquierda solo hay dos pots y dos shift-registers 74hc595 (se utilizan para salidas digitales como por ejemplo los leds)
Y os pongo la foto del esquema para conectarlo todo..pero hay muchas versiones distintas..con diferentes opto-acopladores, resistencias, capacitor..yo de momento he seguido el esquema de la foto de enmedio en blanco y negro y me va bien (pero el diodo lo he cambiado por un 4148).

Para que funcione solo teneis que subir a arduino el codigo de alguno de los ejemplos que viene con las librerias de MIDI en arduino.
Archivos adjuntos ( para descargar)
20220612_224735[1].jpg
3d9f1f9e5a31dc11bc0dbb8ccc04a8b6160bb0a1_2_500x348.png
Sample-Redirect-1 (1).png
Subir
elias
#17 por elias el 18/06/2022
Bueno pues lo del circuito del midi in lo vamos a dejar aparcado momentaneamente..

Antes os he explicado un metodo que a mi me funciona para desbrickear un mega pero hay otros muchos metodos para poder instalar los driver correctos en nuestra placa de arduino, uno de los más importantes es buscar nuestro arduino en administrador de dispositivos e intentar desinstalar (boton derecho y seleccionar desinstalar controlador y pinchar la opción de eliminar este dispositivo).
Una vez desinstalado le daremos a instalar controlador (botón derecho del ratón) y luego buscar manualmente los drivers y seleccionaremos la dirección del programa atmel flip (os pongo en la foto de abajo... la dirección de esta carpeta con los drivers necesarios) y el controlador se os instalara automaticamente.
Otra solución puede ser...
Para utilizarlos en atmel flip tambien tenemos una lista de archivos .hex que nos serviran para arreglar nuestros arduino igualmente (donde hayais instalado vuestro arduino ide..)
/arduino/hardware/arduino/avr/firmwares/


Sin los drivers adecuados no podreis subir codigo u os dará error al abrir atmel flip o al intentar abrir la comunicación usb de atmel flip o diez cosas más, todas indeseables..

Si teneis problemas con estas cosas, este es vuestro hilo para exponerlas..

El proximo capitulo (confirmado) trata sobre chips atmel1284, con la ayuda inestimable de ignotus, ya he conseguido subirle un bootloader a un chip 1284 y luego he subido varios sketches para probarlo..y funciona perfectamente..
Nos centraremos en el chip atmel1284 y vamos a utilizar un arduino uno como programador del 1284 para traerlo a la vida y os pasare toda la info necesaría para hacernos un arduino 1284.

Saludos,hastapronto!
Archivos adjuntos ( para descargar)
kPsOo7w.jpeg
Subir
elias
#18 por elias el 18/06/2022
ATMEL 1284p

Vamos a hacer nuestra propia placa de arduino, el chip atmel 1284 es una muy buena opción, sino la mejor para hacernos nuestra propia placa.
Esta placa de arduino será de las que no se pueden flashear para obtener midi-usb.
Así que estaremos obligados a utilizar la comunicación serial (hardware serial) para transmitir señales midi (tendremos que utilizar el hairless midi para poder verlas en el pc).
Una de las cosas buenas que tiene el chip 1284 es su capacidad ya que duplica la del mega.. y aparte no anda mal en numero de pines (aunque utilizaremos multiplexores).
Otra es su precio, antes de la pandemia valían cinco euros...ahora ya valen diez..(pero vale menos que un arduino mega que valía 10 euros antes de la pandemia y ahora los veo por 20/50 euros ).

Echadle un ojo a este link y podreis ver mucha info sobre este chip...
https://github.com/MCUdude/MightyCore

Para hacer nuestra propia placa necesitaremos:

-Chip atmel 1284p
-Cristal de cuarzo de 16 mhz
-2 condensadores de 22 picofaradios (lentejitas)
-1 condensador 10 microfaradios
-1 resistencia de 10 kiloohmios de las de 1/4 de watio.
-Protoboard,cableado,etc..

Y para programarla vamos a necesitar una placa arduino uno.
Vamos a empezar..en el siguiente link teneis lo necesario para empezar el proceso de hacernos nuestra placa
http://www.technoblogy.com/show?19OV#install

Pero antes no os olvideis de instalar vuestras tarjetas en el arduino ide (arduino/hardware/)
Teneis las librerias de tarjetas disponibles en los siguientes links..
https://github.com/JChristensen/mighty-1284p/tree/v1.6.3
https://github.com/maniacbug/mighty-1284p

Yo he utilizado la del primer link (jchristensen)..despues de poner la carpeta en arduino/hardware..ya puedo seleccionar en el arduino ide el siguiente tipo de tarjeta:
"maniacbug" Mighty 1284p 16MHz using Optiboot.

Para construir nuestra placa podemos guiarnos por la foto que os pongo con el chip atmel 328 )
https://drive.google.com/file/d/12mz4G0Vaz4enBPsRxypzVUcFH5dDq_UH/view
(y ahora esta foto son los pines del chip 1284p con maniacbug)
https://user-images.githubusercontent.com/3897006/55780551-868e7780-5aa8-11e9-88bf-19ad038e9f07.png
https://drive.google.com/file/d/1zRFvvSdL1HFF3gCHb6mpx_V7f3DZLVvR/view

Una vez construida nuestra placa..pasaremos a preparar nuestro arduino uno para que haga de programador.
Todo lo necesario lo teneis aqui:
https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP

Cuando ya hayamos subido el sketch a nuestro arduino uno ya podremos conectar nuestra placa 1284 al arduino uno y abrir el arduino ide y seleccionar en herramientas-tarjetas-mightycore...la siguiente tarjeta:
"maniacbug" Mighty 1284p 16MHz using Optiboot.
Seleccionaremos el puerto COM de nuestro arduino uno y arduino as isp en tipo de programador y le daremos a quemar bootloader..

Si teneis problemas..podeis preguntar por aqui..

Si nos sale que hemos quemado correctamente el bootloader ya solo nos queda abrir algun codigo con arduino ide (un parpadeo de led en el pin 13 por ejemplo)
y subirlo a nuestra placa 1284 ,con las mismas opciones seleccionadas que antes, pero esta vez pulsaremos la tecla SHIFT al mismo tiempo que el boton de subir el codigo..

Si el led parpadea en el pin 13 de nuestra placa 1284, hemos finalizado con exito..

Para subir codigo a nuestra nueva placa podemos utilizar el arduino uno as isp o podemos comprar un conversor FTDI/serial (el ft232 por ejemplo).
Archivos adjuntos ( para descargar)
20220618_125254[1].jpg
Subir
elias
#19 por elias el 22/06/2022
Una vez que ya tengamos el atmega1284 funcionando, ya podemos pasarlo de la protoboard a nuestra placa..
Os pongo una foto, de los materiales necesarios (pero falta el chip 1284).

Y la ultima foto, es la de mi ultima adquisicion (por 36 euros) (en aliexpress esta por 65...), una teensy 4.1, con la que espero poder aprender y disfrutar más de este, gran apasionado mundo del midi en arduino y derivados..
Os pongo un video del primer sketch subido a la placa

Teensy es muy facil de utilizar... toda la info para aprender a ponerla en marcha y utilizarla, la teneis en esta página.
https://www.pjrc.com/teensy/index.html
Y yo ahora, estoy en esta página, en mi primer dia con ella...
https://www.pjrc.com/teensy/td_midi.html

Pero de momento voy a dejar la teensy de lado (la disfrutaré en la intimidad) aunque actualmente sea mucha mejor opcion que un arduino mega (que por 25 euros los veo yo ahora,y hace un año valian diez euros como mucho)...quizás vuelva a teensy para explicaros el circuito MIDI IN-OUT-THRU, pero si puedo seguiré explicando todo con el arduino mega o el chip atmega 1284..

Hasta pronto!!
Archivos adjuntos ( para descargar)
20220622_103049[1].jpg
20220622_103136[1].jpg
20220622_103206[1].jpg
e8c80e04-b66f-455f-b16f-2f8d72f6ae97[1].mp4
Subir
elias
#20 por elias el 04/07/2022
TUTORIAL CHIP ATMEL 1284
Ya hemos hecho nuestra placa para el chip atmel 1284 (anteriormente,os he puesto todos los links que he utilizado yo para que podais construirla).
Ahora toca quemar el bootloader..(no merece la pena comprarlos con el bootloader..yo creo..es como que te lo vendan con un sketch metido y te lo cobren más caro)

Ya sabeis que vamos a utilizar el arduino uno para poder quemar el bootloader en el chip 1284 (nos sirve cualquier modelo de UNO).
Es una de las opciones que podemos elegir para quemar el bootloader dentro del chip 1284 o incluso poder subirle codigo.

Os voy a explicar paso a paso como lo hago..ya que puede parecer dificil cuando en realidad no lo es..

Lo primero tener la placa hecha, afirmativo.
244159c4132c8b323339e6d3f9cbe-2807213.jpg
Esta es la segunda placa que hago para un chip atmega 1284 y aquí abajo podeis ver mejor, el trabajo de soldadura:
adbe0dc6ba9e88e05d6decd6db19c-2807213.png

Vamos a centrarnos en subir el bootloader al chip 1284, utilizando el arduino UNO como programador..
Os pongo varias fotos del conexionado (como realizar el conexionado, está anteriormente explicado en los links que facilito):
7844ff415c7cc19fa0726ddbbe027-2807213.png
5c260de1ea04202853d62391a7b23-2807213.png
0dcba3877482458a289c5d3193524-2807213.jpg

Y ahora es muy facil, nenes/as...
Abrimos el Arduino IDE y primero seleccionamos el puerto COM donde esta conectado nuestro arduino (en mi caso COM4)
627617618ef5594a886fa27a3e469-2807213.png
Siguiente paso es seleccionar el modelo de tarjeta correcto para poder quemar el bootloader a nuestro chip 1284 a traves del Arduino uno..
Para que os salga la siguiente opción, debereis haber instalado las librerias necesarias (haber seguido los links anteriores).
243981adf52ddf734149de730dadc-2807213.png
Ahora seleccionamos el programador
4362458c159995953bbd12581125c-2807213.png
Y ya solo nos queda darle al quemado de bootloader
6c4cedc24facf84159bee620e88f1-2807213.png
Si nuestra placa 1284 esta conexionada correctamente..nos saldrá lo de quemado de bootloader completado.


Ahora podemos probar si nuestro chip 1284 funciona correctamente tratando de subirle codigo con el arduino UNO como programador.
Seleccionamos el siguiente ejemplo de sketch
6374404c5374b3991cbb44f9265f0-2807213.png
Y ahora pulsamos sobre el boton marcado con la flecha negra (ver imagen) al mismo tiempo que mantenemos la tecla SHIFT del teclado y subiremos el ejemplo de BLINK a nuestro chip 1284.
f387d02e1e32b2d08365066c6ffb0-2807213.png

Una vez subido el sketch solo tendremo que conectar un led y poner una de sus patillas conectada a GROUND y la otra patilla del led, con una resistencia de 220 ohmios la conectaremos al pin 13 del chip 1284..
824d3c871047786af461fa318ff5b-2807213.jpg

Una vez que hayais probado que podeis subir codigo al chip y que el led funciona perfectamente en el pin 13..., ya podeis darle otra vez a "quemado de bootloader" (porque si le dejais el ejemplo en el chip,no tendreis bootloader)para dejar finalizado el proceso.

Ya tenemos una placa de arduino 1284.:piloto_loco::guitarrista::bebemucho::virtuoso:
Con bootloader.
Subir
elias
#21 por elias el 04/07/2022
No he llegado a tiempo para editarlo..no pasa nada jeje
Aqui os pongo los pines del chip atmel 1284 y como hacer el conexionado al arduino UNO (aunque está en los links anteriores y las dos imagenes dicen casi lo mismo)
646d3a8e53c56a076dfbdfeacf9b1-2807214.png
5f326fa2e11bedce324ab9d2984c2-2807214.gif
En el ultimo dibujo fijaros que le falta conectar una resistencia de 10k entre el pin de RESET y GROUND y poner un condensador electrolitico de 10 microfaradios entre el VCC y el GROUND de la parte de abajo del chip (el lado donde no hay nada conexionado).
Saludos
Subir
elias
#22 por elias el 04/07/2022
Esto tambien esté en los links anteriores que os he pasado pero os voy a explicar como preparar el arduino UNO para que actue de programador.

1Abrimos el Arduino IDE y lo primero de todo seleccionamos el puerto COM donde está conectado nuestro arduino UNO (en mi caso COM4)
2Seleccionamos nuestro tipo de tarjeta (HERRAMIENTAS--PLACA--ARDUINO UNO)
3Le damos a ARCHIVO--EJEMPLOS Y seleccionamos el de ARDUINO ISP.
4Subimos el ejemplo de arduino ISP a nuestro arduino UNO y ya tenemos el programador listo para nuestro chip 1284.

Ahora voy a pasar a explicaros como quitarnos de encima el arduino uno y poder subir codigo a nuestra nueva placa atmega 1284..
Necesitaremos una placa FTDI-USB, en mi caso tengo la FT232-RL..
d0b97d32b2cdba2ac10a89b9507c0-2807216.jpg
Una vez que hayamos quemado el bootloader ya solo tenemos que conectar el modulo FTDI para poder subirle codigo al chip 1284 sin necesidad de conectar un arduino UNO que actue como programador..seremos libres de subirle el codigo que queramos.
La conexión de esta placa FTDI es muy sencilla y vale tres euros, os pongo como se hace (en este caso el atmega 328 es igual que el 1284)
865daa90ac8e9c2b250634a2f9f24-2807216.png

Una vez realizada la conexión (fijaros que esta vez solo necesitaremos un condensador ceramico de 100 nanofaradios)..
Solo nos queda seleccionar en arduino IDE el tipo de programador:
a5b028d7d5a2fcc60f5b2b12dad65-2807216.png
Fijaros que antes seleccionabamos el arduinoISP (cuando utilizabamos el arduino para programar el chip), ahora sin el UNO y con el FTDI, seleccionaremos AVRISP MKII

Y ya solo nos queda conectar el modulo FTDI al usb del pc y en arduino IDE, seleccionar tanto el puerto COM (en mi caso el COM 10), como el tipo de placa (en mi caso Maniacbug Mighty 1284p 16mhz Using Optiboot) y subirle el codigo que queramos (en mi caso he probado el ejemplo BLINK de antes).
Subir
elias
#23 por elias el 04/07/2022
Siguiente paso, nuestras baterias para el dispositivo MIDI.
Se puede hablar mucho de diferentes tipos de modulos de carga y es que en esto te encuentras mucho bluff...si una pila dice que tiene 9900mah de carga...es mentira
Si dice que podemos cargar hasta con un amperio, (velocidad de carga al fin y al cabo) tambien suele mentir..

Pero me he encontrado estos modulos de carga de baterias que sobrepasan el medio amperio de carga y que funcionan bastante bien y son muy baratos (un pack de diez te vale tres euros).Los conozco gracias a Ignotus y funcionan bastante bien
Hay de muchos tipos (con pantalla de voltaje etc)..nostros como vamos a mostrar la capacidad y voltaje de la bateria en nuestra pantalla (dispositivo MIDI) no nos hace falta mas.
c11d0dfed0cd3d3cdd06b9d2e0cf3-2807220.jpg
Para los tipos de bateria, pues las recargables que nos entreguen cinco voltios, yo utilizo unas que se llaman 18650 y conectandolas en paralelo, mantienes el valor del voltaje pero sumas las capacidades de cada una de las pilas para el funcionamiento del dispositivo MIDI.
320221def89206500e60adaba6b1d-2807220.jpg

Cuando el modulo este conectado al pc o al enchufe de un movil por ejemplo, os saldrá una luz azul.
Significa que esta recibiendo voltaje pero que no tiene conectado nada a la salida.
Cuando el led este de color rojo significa que estará cargando y cuando vuelva al color azul es que ya ha acabado.
b6470aae2d09dfb995178347a8986-2807220.jpg
Subir
elias
#24 por elias el 05/07/2022
Fin.
Si algun moderador borra el hilo, no hay ningún problema.
Perdón por intentarlo.
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo