Un contrôleur midi 100 basé sur Arduino
- 90 réponses
- 20 participants
- 22 160 vues
- 26 followers
secmast
Suite a la discussion sur ce contrôleur:https://fr.audiofanzine.com/surface-de-controle-midi/cme/BitStream-3X/forums/t.541700,mais-ou-le-trouver.html
Je viens jeter ici les bases pour la construction d'un contrôleur midi basé sur Arduino.
Certains pensaient que vu le nombre d'entrée analogique limitée sur une carte Arduino elle ne permettait pas l'utilisation de cette plateforme pour ce genre d'application. Ce n'est évidement pas le cas, il suffit de connaître un peu l'électronique et la programmation pour arriver a un résultat ma fois pas trop mal et peu coûteux.
Comme le montre l'image ci-dessous en utilisant des multiplexer il est possible de multiplier le nombre d'entrée/sortie avec en théorie un maximum de 1024 E/S sur une Arduino Mega.
Donc l'idée de ce fil est de jeter sur le papier le minimum requis pour une interface Midi
Sachant que l'arduino est limité en terme de mémoire (SRAM 2Kb au max) ce qui limite les variables (on en discute ?)
Sachant que l'Arduino est limité en terme de puissance "électrique", 40ma par PIN (on en discute ?)
Liste "A faire"
- Gestion EEPROM
- Alimentation externe
- Calcul d'un boucle sur 80 contrôle
[ Dernière édition du message le 13/09/2013 à 13:00:28 ]
Canem
premièrement j'ai lu quelque part que l'utilisation de multiplexers interdisait l'utilisation de deux potards simultanément...vrai ou pas?
du coup quelles sont les conséquences des limites de mémoire et de puissance?
mon projet serait de faire un contrôleur avec 64 potards et 16 (voir 32!) boutons...
Nouveau clip CANIS CANEM - March of Ghosts
secmast
Même sans les multiplexeur les potentiomètres ne sont lu qu'un a la fois.
Mais ce n'est pas pour autant que tu ne peux pas les bouger car même avec les multiplexeur la lecture d'un a l'autre va tellement vite que pour l'utilisateur c'est transparent. Maintenant avec 80 contrôles il faut tester la vitesse d’exécution de la boucle. Combien de temps entre la capture 1 et la capture 80.
Pour la mémoire c'est un faut problème, il suffit de savoir gérer l'eeprom, je sais pas faire, du moins pas encore a mettre sur la liste.
Le courant n'est pas non plus un problème je poste un exemple aujourd'hui.
adrienf
Je rentre dans le sujet, et je me permets d'inserer un lien sur un controlleur avec base arduino :
https://fr.audiofanzine.com/les-mains-dans-le-cambouis/forums/t.517122,arduino-diy-controleur-midi-e-licktronic.html
secmast
Pour l’alimentation il suffit d'utilise un régulateur de tension et de connecter la sortie d'un part vers l'Arduino et d'autre part vers les composants. L'Arduino ne fournissant plus d'énergie aux composants la limitation n'a plus d'être.
Ca ne veut pas dire qu'on peut faire n'importe quoi, en effet 64 potard branché a la brutus vont pomper du courant en permanence, le tout est de mettre dans le design des shift register et des transistors pour alimenter les potentiomètre au moment opportun. Enfin c'est une idée jeter comme ça pour l'instant.
[ Dernière édition du message le 13/09/2013 à 13:27:07 ]
Danguit
J'ai fait aussi quelques bricolos MIDI sur arduino (**), mais j'ai mis cela de côté pour l'instant (et le sujet n'attirant pas les foules ce n'était pas très motivant).
Pour la mémoire, il y a l'utilisation de l'EEPROM (que j'avais testée) et aussi la carte SD (testée dans une autre utilisation).
En ce qui concerne la consommation, sauf erreur les potars ne sont connectés qu'au moment du scan, donc 1 seul à la fois par port analogique. J'ai fait des essais avec des potars de valeur supérieure à 10k, mais ils sont plus sensibles au bruit.
Un point m'a gêné (en plus du manque de debugger), il semble que le SoftwareSerial (qui permet d'avoir des ports MIDI indépendants de l'USB) ne supporte pas un flot de données MIDI important (=> erreurs avec résultats imprévisibles).
Nota ** :
https://fr.audiofanzine.com/les-mains-dans-le-cambouis/forums/t.504761,diy-controle-des-parametres-des-micron-amp-miniak-par-carte-arduino.html
https://fr.audiofanzine.com/les-mains-dans-le-cambouis/forums/t.525583,diy-telecommande-midi-ir-arduino.html
[ Dernière édition du message le 14/09/2013 à 11:10:28 ]
secmast
Dans un premier temps je n'ai pas l'intention de me servir de softwareSerial qui par ailleurs connait une nouvelle version si j'ai bien vu.
Il y a quelques jours j'ai fait quelques test Midi et je n'ai eu aucune erreur. Mais là j'attend la livraison de mes potentiomètres pour effectuer des tests plus pousser.
Pour l'EEPROM j'ai déjà lu l'un ou l'autre papier mais en diagonal et pas encore mis quoi que ce soit en pratique.
La carte SD c'est un coup non négligeable et du code en plus, il me semble qu'une librairie s'impose mais je peux me tromper.
Je dois aussi mesurer la consommation d'un potentiomètre "au repos", mais j'ai l'impression qu'il pompe toujours un peu et un peu fois 64 ça commence a compter.
Rémy M. (chimimic)
Je dois aussi mesurer la consommation d'un potentiomètre "au repos", mais j'ai l'impression qu'il pompe toujours un peu et un peu fois 64 ça commence a compter.
I = U / R
Si alim 5 V et pot 10 kO -> I = 5 / 10000 = 0,5 mA (par pot)
Pour 64 pots 10 kO -> I = 0,5 mA * 64 = 32 mA
En ce qui concerne le multiplexage, il faut effectivement prendre en compte le temps de commande de positionnement des multiplexeurs et de lecture analogique (via le CAN). Grosso-modo 100 us par lecture (mux et CAN). Dans ce cas, temps total :
T = 0,1 ms * 64 = 6,4 ms.
A cela bien sûr s'ajoute le temps de traitement requis pour le reste de l'application.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
[ Dernière édition du message le 14/09/2013 à 11:08:45 ]
Canem
Nouveau clip CANIS CANEM - March of Ghosts
secmast
Ouverture : 450 ns
Fermeture : 400 ns
Propagation :200 ns
Ou encore 1050 nanoseconde pour un cycle fermeture, ouverture, propagation. Donc le goulet n'est certainement pas le 4051 en lui même.
Je sais qu'il est possible d'accélérer la procédure de lecture sur un port ATMEL en utilisation la technique de la manipulation de port. Une ouverture fermeture d'un port en 660 ns ça laisse rêveur et beaucoup de temps pour traiter l'information.
Merci pour le rappel de la loi d'Ohm, tellement simple mais comme nous somme dans le domaine de l'analogique je vais mesurer quand même dix potentiomètre connecté et vérifier que la pratique colle a la théorie. Les prix pour ce genre de petite chose variant de 1 à 100.
- < Liste des sujets
- Charte