Controleur midi usb arduino

De fablabo
Aller à : navigation, rechercher


Controleur midi usb arduino (accessible aux débutants)



Contexte

Le projet démarre par la nécessité de produire son controleur-midi, ne pas avoir besoin de l'acheter, pouvoir le modifier/réparer, et l’envie de pouvoir brancher à peu près n'importe quel capteur en entrée midi (capteur de température à la place d’un fader, ...).
Il nous semblait important aussi, d'avoir un matériel nativement reconnu comme un instrument midi par l'ordinateur sur lequel on le branche en usb.
En gros on va utiliser des composants, et quelques lignes de code qu’on va écrire à l’intérieur, bien bien mélanger et ça va faire un contrôleur midi usb.

Choix des composants

Les cartes

[Nous utilisons parfois puces pour parler des microcontrôleurs]

Il existe plein de cartes arduino différentes. Les modèles qui peuvent être utilisé pour ce projets sont les Uno, Méga, Léonardo et Micro. On peut les classer en deux groupes : les Micro et Léonardo qui fonctionnent a peu près de la même manière (avec une seule puce*) et les Uno et Méga qui ont une autre façon de fonctionner (avec deux puces*). Nous traiterons ici uniquement des Méga et Uno puisque c’est celles que nous avons utilisées.
Pour nous, dire qu'une arduino uno ou mega suffit, reste incomplet, il vous faut pour ce projet vérifier que les carte ont les microcontrôleur suivants:

Arduino uno doit posséder:
  • atmega16u2 (ici 1 images atmega16u2 sous deux formes)
  • atmega328
Arduino méga doit posséder:
  • atmega16u2
  • atmega2560


Attention !! : certains fabricants remplacent la 16u2 par un CH340, les cartes sont alors parfois moins chères, mais on ne peut pas les transformer en périphérique MIDI. Les Firmware des CH340 sont propriétaires, merci pour ce cadeau empoisonné !

Qu’importe leur forme : soudée ou détachable, ce qui compte c’est que les deux puces citées soient présentent !

Les capteurs

Les entrées de notre contrôleur midi sont:

  • des boutons poussoires,
  • des faders (10kohm),
  • des potentiomètres (10kohm)

Les boutons poussoires sont remplaçables par toute sorte d’interrupteur(magnétique, bille de mercure, ...) et les potentiomètres et faders sont remplaçables par toute sorte de capteurs (capteur d'humidité, photorésistances, ...) dont la résistance maximal est proche de 10kohm et la minimale de 0(sinon le fonctionnement du capteur ne sera pas linéaire).

La boite

Toutes les boîtes sont permises! Nous c'est un livre dont le titre est l'intrus d'où le nom de notre contrôleur. (vous pouvez aussi simplement souder les composants sur la plaque de circuit imprimé et l'utiliser tel quel)
Attention à l'épaisseur, c'est bien de voir large: 5 cm nous paraissent le minimum pour pouvoir accueillir la carte, les fils et les soudures.

Principe de fonctionnement

Pour ce contrôleur midi, nous avons utilisé une arduino Méga pour la simple raison qu’elle a 16 entrées analogiques, mais c’est possible de le faire avec une Uno, en remplaçant atmega 2560 par atmega328 dans le texte en utilisant des multiplexeurs.
L’information des capteurs (nos boutons, faders, etc.) est récupérée par l’atmega2560 qui contient le code qu’on a écrit qui transforme l’information des capteurs en message midi. Elle envoie à l’atmega16u2 le message midi pour qu’il le transmette à l’ordinateur.

On ne sait pas si l’atmega16u2 est une interface simple entre l’atmega2560 et l’ordinateur ou si elle modifie le message, si vous le savez, vous pouvez nous le dire.

Le message MIDI

[vous pouvez passer cette rubrique et juste utiliser la fonction qu'on a écrite ou cette [[1]] si ça vous intéresse pas trop]