Se connecter
Se connecter

ou
Créer un compte

ou
Agrandir
Arduino

Contrôleur midi maison

  • 3 réponses
  • 3 participants
  • 182 vues
  • 4 followers
Sujet de la discussion Contrôleur midi maison
Bonjour je voudrais construire un contrôleur midi moi même .
Je connais pas grand chose en arduino mais je suis très motivé à construire un contrôleur imposant. Si quelqu’un a des liens ou connaissance sur le sujet je suis preneur 🙏🏻
2
Arduino vient juste de sortir un petit kit à base de Uno R4 avec une platine ainsi qu'une panoplie de capteurs, contrôleurs physiques, et les programmes fournis pour les exploiter, qu'il suffira d'adapter :
https://www.elektormagazine.fr/news/nouveaute-arduino-decouvrez-le-kit-arduino-plug-and-make



Par exemple avec le capteur de proximité ou le gyroscope numérique, il y a moyen de se faire l'équivalent d'un Roland D-BEAM ou du tilt du SH-4d.
Le potard/encodeur peut aussi être programmé pour envoyer des messages MIDI CC, dont la valeur sera affichée sur la matrice de LED du R4 (si elle n'est pas masquée par un shield).
Les boutons peuvent servir à configurer le programme ou envoyer des messages MIDI.

Concernant le code MIDI, on pourra s'inspirer de celui de Tom SCARFF, très simple à comprendre une fois qu'on a assimilé les types et structures des différents messages :
https://web.archive.org/web/20160304214208/http://midikits.net/downloads/downloads.htm

La doc de Sparkfun est très bien faite :
https://learn.sparkfun.com/tutorials/midi-tutorial/all

Côté connectique, en DIN MIDI, les shields sont très simples :
https://www.sparkfun.com/products/12898
https://www.arobose.com/shop/modules-audio/397-shield-midi-pour-arduino.html

En cas d'utilisation de l'USB MIDI, toutes les bibliothèques existent déjà, mais il faut faire attention car l'USB sert aussi à programmer l'Arduino, dont le bootloader doit donc être reflashé pour pouvoir changer le programme :
https://www.arduino.cc/reference/en/libraries/midiusb/
Pour commencer, je préconise de s'en tenir au MIDI sur DIN classique avec ou sans bibliothèque de fonctions :
https://www.arduino.cc/reference/en/libraries/midi-library/

« What is full of redundancy or formula is predictably boring. What is free of all structure or discipline is randomly boring. In between lies art. » (Wendy Carlos)

[ Dernière édition du message le 27/08/2024 à 16:30:23 ]

3
C'est franchement simple de démarrer l'arduino: tu télécharges l'environnement ( arduinoIDE ), tu branches en usb, sélectionnes le type de carte et le port, puis tu peux commencer avec l'un des exemples genre: Fichiers/exemples/01Basics/Blink. Il y a évidemment aussi les tutos. Et comme d'habitude c'est en modifiant et en s'amusant avec les programmes de démos qu'on apprend. L'arduino Uno comme évoqué par Odon est l'entrée de gamme et permet déjà de faire tout ce que tu veux. Il y a quelques années sans rien y connaître j'ai fais tourner ma première arduino uno en 5minutes.

Tu peux choisir les kits, si tu sais manier le fer à souder c'est aussi très simple de faire un MIDI Out tout à fait réglementaire:
MIDI_bb.png
Deux résistances, un connecteur et roule ma poule.

Le connecteur usb de l'arduino est relié aux broches RX et TX ( Receive et Transmit) du port Serial. Le port Serial est ce qui permet à l'arduino de communiquer avec d'autres appareils: ton ordinateur mais aussi les appareils MIDI. C'est assez gênant quand tu es en phase de développement. Dans mes souvenirs il fallait bien faire attention à débrancher le connecteur MIDI avant de brancher l'usb, et inversement.

Sur la Uno tu as 12 I/O qui peuvent être utilisé comme entrée ou sortie "tout ou rien": pour allumer une led ou au contraire être relié à un push-button, un switch voire un encodeur.
+ 6 entrées analogiques pour connecter des potentiomètres ou autre capteurs. Résolution de 10bits pour la Uno R3.

Par exemple un capteur de lumière:
Arduino-Light-Dependent-Resistor-Wiring-Diagram.png
Une LDR, une résistance et roule ma poule.

[ Dernière édition du message le 27/08/2024 à 22:55:01 ]

4
Citation de Mini-Maxi :
Dans mes souvenirs il fallait bien faire attention à débrancher le connecteur MIDI (pin TX dans ton cas) avant de brancher l'usb, et inversement.

C'est pour cela que les bons shield MIDI ont un interrupteur MIDI <-> UART. :clin:

https://fr.audiofanzine.com/controleur-midi-divers/e-licktronic/midilickuino/

Cela dit, avec la pléthore d'Arduino disposant de plusieurs ports série (UART) hardware - ce qui est le cas du Uno R4 et de la majorité des modèles évolués - le problème ne se pose plus. Il est beaucoup plus facile de déboguer avec le port moniteur série et le plotteur directement dans l'IDE Arduino sans débrancher/switcher quoique ce soit entre deux mises à jour du programme :

https://docs.arduino.cc/tutorials/uno-r4-minima/cheat-sheet/#usb-serial--uart

Edit : pour me faire mentir, je viens de tester avec un vieil Uno R3, un shield Midikits (seul le MIDI IN connecté) et la dernière version de l'IDE.
Il semble que la bascule entre téléversement du programme compilé et l'usage de Serial() se fasse automatiquement ou parallèlement.
Il n'est plus nécessaire de débrancher systématiquement l'entrée MIDI sur le pin RX0 pour programmer via l'USB.

Avec l'engouement pour la robotisation, les drones, la domotique, l'impression 3D ou l'informatique industrielle, l'écosystème s'est incroyablement développé.

Perso, je ne m'embêterais plus avec les Uno de base (ou leurs clones) avec un unique port série partagé avec l'USB.
AMHA il faut partir directement sur un R4 Minima ou une des offres alternatives avec un MCU SAMD51 au même tarif chez Adafruit (voire Teensy)11

ATTENTION : il faut également faire attention au voltage des broches d'entrées/sorties, qui sont en 3.3V sur les cartes Arduino (ou compatibles) récentes, contre 5V auparavant.
A priori ça concerne notamment les LCD (qui réclament 5V), le bus I2C (3.3V), etc... Pour le MIDI, il existe des shields compatibles 5V/3.3V :

https://diyelectromusic.com/2020/11/30/ready-made-midi-modules/

La spec. a été mise à jour pour les deux tensions :

https://midi.org/5-pin-din-electrical-specs
https://forum.arduino.cc/t/midi-5v-and-3-3-volt/521595

Chez moi - chance de l'éternel débutant - les I/O des "vieux" shields au design 5V fonctionnent sur des cartes 3.3V a priori pas spécialement "5V tolerant" (Grand Central M4 & Giga R1), mais par précaution, il faut absolument utiliser un adaptateur de tension bidirectionnel sur les broche I/O concernées pour ne pas risquer d'endommager la carte 3.3V.

https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide
https://www.gotronic.fr/cat-convertisseurs-de-niveaux-logiques-2076.htm

La tolérance 5V sur les I/O est très mal documentée chez les fabricants de cartes, ai-je trouvé. :oops2:

« What is full of redundancy or formula is predictably boring. What is free of all structure or discipline is randomly boring. In between lies art. » (Wendy Carlos)

[ Dernière édition du message le 31/08/2024 à 14:43:09 ]