Table des matières:

Interface numérique musicale : 6 étapes (avec photos)
Interface numérique musicale : 6 étapes (avec photos)

Vidéo: Interface numérique musicale : 6 étapes (avec photos)

Vidéo: Interface numérique musicale : 6 étapes (avec photos)
Vidéo: Comment faire un diaporama photo avec musique et texte - essai gratuit 2024, Juillet
Anonim
Interface numérique musicale
Interface numérique musicale

Bienvenue à tous, J'aimerais vous montrer ma propre interface numérique musicale. Je l'ai fait pendant mon diplôme technique en son, c'est mon mémoire de recherche. Pour commencer, je me suis demandé comment puis-je composer de la musique sans DAW, avec des fournitures recyclées et possibilité de jouer en standalone.

Dans ce instructable, je vais vous apprendre comment utiliser la communication série pour envoyer/recevoir des informations de capteurs (analogiques et numériques) d'Arduino à Raspberry pi vers le logiciel puredata pour déclencher un son.

Les matériaux requis sont:

x1 Framboise PI3

x1 Boîter de protection PI3

x1 Micro SD (32G)

x1 Arduino UNO

x1 Capteur IR Sharp GP2Y0E02B

x1 planche à pain

x1 Jauge de test de plaque (0,2)

x28 Résistance 10MΩ

x2 Résistance 1.8kΩ

x1 Résistance 10kΩ

x20 Cosses Mâle/Femelle

x1 Support de soudure

x1 bobine d'étain (1 mètre)

x1 fer à souder

x25 Sangles Flexibles Mâle/Mâle

Étape 1: Capteurs

Capteurs
Capteurs
Capteurs
Capteurs
Capteurs
Capteurs

J'ai utilisé 4 piézoélectriques provenant de la télécommande Harmonix XBOX 360 "Guitar Hero".

J'ai utilisé un capteur IR Sharp GP2Y0E02B. Pour tous ces capteurs, j'ai fait un assemblage de pull-up pour un fonctionnement efficace…

Ainsi, empiriquement, j'ai trouvé une valeur de résistance au capteur de bouton et au capteur IR. Cependant, j'ai testé le piézoélectrique afin de connaître la pleine échelle de celui-ci, et la valeur de résistance fixe requise et appliquée pour les 4 capteurs analogiques.

Étape 2: Montage de traction

Montage de traction
Montage de traction
Montage de traction
Montage de traction
Montage de traction
Montage de traction
Montage de traction
Montage de traction

Après avoir testé le piézoélectrique avec un générateur de tension, j'ai fixé la valeur de la résistance à 7MΩ.

Le pull-up de l'ensemble de résistance du bouton était de 10 kΩ.

Pour le capteur IR, j'ai utilisé deux résistances de 1, 8kΩ entre respectivement la tension d'alimentation et SDA (données) et SCL (horloge).

Soyez prudent car les valeurs de ces résistances sont pour RTX Arduino UNO; quelque chose à savoir sur l'entrée d'impédance Arduino: 10MΩ.

Vous pouvez voir le montage du pull-up sur la dernière photo de cette étape; J'ai fixé les straps piézoélectrique en 0 1 2 3 pins sur UNO, bouton strap en 2 pin digital mais communique la valeur sur 6 pin sur UNO et capteur IR strap en 4 5 pins sur UNO, l'ensemble des entrées analogiques de l'Arduino Uno.

Étape 3: Coder Arduino

Pour m'assurer que l'opération était efficace, j'ai testé envoyer/recevoir des informations de capteurs vers Arduino.

J'ai mis des fichiers en description mais vous pouvez les trouver dans la section exemples de la programmation Arduino Genuino, sauf capteur IR car il n'est pas complet, j'ai modifié quelques informations dans la section "définir" comme "shift" et j'ai changé le calcul de mesure pour qu'il soit régulier dans les variations de distance. Vous avez probablement vu "Wire" dans le code du capteur IR. En effet j'ai utilisé le protocole I2C pour communiquer. Je vous invite à voir le protocole I2C, très intéressant, vous pouvez utiliser celui-ci pour transmettre en temps réel tous les capteurs numériques que vous souhaitez.

Étape 4: Les deux communications série Arduino Raspberry

Communication série Arduino Raspberry
Communication série Arduino Raspberry
Les deux communications série Arduino Raspberry
Les deux communications série Arduino Raspberry

Oui: D

Comme vous pouvez le voir sur la première photo, le lien Arduino-Raspberry est une prise USB.

J'ai trouvé un moyen de recevoir les informations des capteurs directement par PureData Extended qui est installé dans Raspberry PI. Pourquoi PureData Extended ? Car la version Vanilla n'utilise pas la même librairie qu'une application en environnement Raspbian.

Alors lancez StandardFirmata dans Arduino Genuino pour corriger les E/S et les variations de valeur de la bonne manière !

Pour récupérer les informations de valeur dans Raspberry PI, 2 protocoles existent: Firmata et Msg.

J'ai choisi Firmata pour une raison, il était plus simple d'obtenir des informations dans PureData via le patch Pduino, un environnement.

Je vous invite à découvrir Msg si vous utilisez le protocole OSC.

Étape 5: Patch PureData reçu

Patch PureData reçu
Patch PureData reçu

En effet, après des semaines de codage sur Genuino, j'ai réussi à recevoir toutes les informations de mes capteurs en une seule page, cela a permis de voir les variations en temps réel grâce à Pduino, un patch dans Puredata, section librairies extra.

A partir de cette étape, on ne touche plus au code Arduino. Les informations de la valeur sont lisibles.

Comme je l'ai remarqué à l'étape 3, j'ai reçu des informations du bouton numérique en analogique 6 broches, il était simple de voir le fonctionnement efficace de la communication. Tout en une seule ligne.

Étape 6: Développement PureData

Développement PureData
Développement PureData
Développement PureData
Développement PureData
Développement PureData
Développement PureData
Développement PureData
Développement PureData

PureData est un langage spécifique et vous devez passer votre temps libre pour réussir à faire un joli patchwork.

Certains correctifs PureData seront disponibles dans GitHub.

J'espère que ce que j'ai écrit ici vous a aidé à démarrer votre propre projet proche du mien.

Conseillé: