Modifications

Aller à : navigation, rechercher

Controleur midi usb arduino

1 878 octets supprimés, 5 février 2021 à 19:46
aucun résumé de modification
On peut générer 1024 informations différentes avec les entrées analogiques de l'Arduino, de 0 à 1023.<br/>
On peut générer 2 informations différentes avec les entré numérique de l’Arduino, soit 0 soit 1, on peut aussi parler de l'état haut ("HIGHT" en anglais), et de l'état bas ("LOW" en anglais).<br/>
<br/>
Nous avons fait le choix de ne pas utiliser de blibliotheque midi pour l'arduino, pour deux raison:<br/>
Le fait d'écrire toute les fonction nous a permis comprendre plus profondément se que nous faisions.<br/>
Pas de rajout de bibliothèque veux aussi dire, pas de problème d'incompatibilité si on souhaite rajouté d'autre fonctionnalité qui nécessiterais elles, l’ajout d'une bibliothèque.<br/>
==== Sans Tableau ====
Pour simplifier la compréhension du programme, nous allons d'abord expliquer une version avec un seul potentiomètre et un seul bouton, ce qui signifie que nous n'aurons pas de tableau d'entrée donc pas de boucle de lecture pour ces fameux tableaux.<br/>
Dans ce cas-là, le schéma de câblage ressemble à ça:<br/>
[[file:SansTableau.png|700px]]
'''attention se code est en cours de rédaction il n'est pas utilisable pour le moment'''<pre>//version 2.1: l'intrus (sans tableau) //Fait le 9/5/2018 par Al²//re-fait le 5/5/2020 par Al²: version visant à modifier le bug de la sensibilité des cc  // _____ A définir ____ //sensibilité: 2, ça a l'air bienint sensibilite = 2;   // _________ A ne pas modifier _____________ // déclaration des variables    // déclaration des variables pour le bouton int digitalInBouton = 2;noteBouton = 20; boolean EtatBoutonAct = 0;boolean EtatBoutonPrec Le programme = 0;int i;    // déclaration des variables pour le potentiomètre int const pot = A0; // attribution Control change Midi en hexadecimalint Cc =0x10; // valeur initialeint potVal; int j;  #define midiChannel (byte) 0 // canal 1  void setup() { Serial.begin (31250); // attention vitesse de transmission MIDI = 31250, Moniteur Série = 9600  // initialisation des broches pinMode (digitalInBouton, INPUT_PULLUP); // initialisation des valeur du potentiomètre  potVal=0; } void loop() { // Le bouton EtatBoutonAct = digitalRead (digitalInBouton); // lecture du bouton //Détection des changements dEn plus dans fonction classique que l'état des boutons //De cette manière on évite de "spamer" les messages midi //On envoie un message MIDI, uniquement lors du changement pourrais attendre d'état  if (!EtatBoutonAct && EtatBoutonAnt) { sendMessage (0x90un contrôleur midi classique, noteBoutonnous avons rajouter un switch, qui permet de choisir si on veux que les signaux des faders soit au maximum a 100 ou a 127); // envoie noteON } if (EtatBoutonAct && !EtatBoutonAnt) { sendMessage (0x80, noteBouton, 127); // envoie noteOFF } EtatBoutonAnt = EtatBoutonAct;}  // Le potentiomètre potVal = rafraichir (pot , potVal, Cc); //delay (1);}  int rafraichir (int const pot, int potVal, int Cc){ if (potVal + sensibilite < analogRead (pot) || potVal - sensibilite > analogRead (pot)){ potVal = analogRead (pot); int Val = potVal/8;   sendMessage(0xB0, Cc, Val); //envoie valeur non-clippée } return potVal; }    // Fonctions communesvoid sendMessage (byte cmd, byte ch, byte val){ cmd= cmd|byte (midiChannel); Serialc'est notre pote jonas pour qui nous avons fait se controler qui nous l'a demandé.write (cmd); SerialIl s'en sert pour évité de faire saturer le son commander par les faders.write (ch); Serial.write (val);} /* // version débuggageC'est une sorte d'assurance pour éviter de faire saturer le son quand, penser à changer sa motricité lui ai momentanément empruntée par la vitesse (9600 ou 31250) void sendMessage (int cmd, int cc, int val){ cmd= cmd|byte (midiChannel); Serialfrénésie de la fête électronique.print("cmd : ");<br/> Serial.print (cmdQuoi qu'il en soit si vous ne brancher rien sur l'entrée numerique 12, HEX); Serial.print(" "); Serial.print("cc : "); Serial.print (cc, HEX); Serial.print(" "); Serial.print("val : "); Serialvotre valeur maximale atteindra par default 127.print (val, DEC); Serial.println ("");}*/<br/pre==== Avec Tableau ====
[[file:MegaFinale.png|650px]] <br/>
Dans notre programme nous avons rajouté un fonctionement qui bloque a
'''Attention''', nous avons linux sur nos ordinateur, et nous n'allons pas expliquer la procédure avec Windows ou mac.<br/>
Il nous semble que c'est possible sous windows avec le logiciel "flip" d'atmel que vous trouverez sur leur site.<br/>
Sur mac, débrouillez vous, il est nous semble néanmoins que dfu-programmer exist éxiste aussi sur mac, essayer d'adapter les commande linux, et bonne chance!!<br/>
====dfu-programmer ====
745
modifications

Menu de navigation