Table des matières:
- Fournitures
- Étape 1: Étape 1: Logiciel
- Étape 2: Étape 2: Matériel
- Étape 3: Étape 3: Coder
- Étape 4: Étape 4: Branchez-le et testez-le
Vidéo: Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): 4 étapes (avec images)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Bonjour, aujourd'hui, je vais vous expliquer comment créer votre propre petit générateur de musique basé sur la météo.
Il est basé sur un ESP8266, qui ressemble un peu à un Arduino, et il réagit à la température, à la pluie et à l'intensité lumineuse.
Ne vous attendez pas à ce qu'il fasse des chansons entières ou des progressions d'accords. C'est plus comme la musique générative que les gens font parfois avec des synthétiseurs modulaires. Mais c'est un peu moins aléatoire que ça, ça colle à certaines échelles par exemple.
Fournitures
ESP8266 (j'utilise le Feather Huzzah ESP8266 d'Adafruit)
Capteur de température, d'humidité et de pression barométrique BME280 (version I2C)
Capteur de pluie Arduino
25K LDR (résistance dépendante de la lumière)
Quelques Résistances (deux 47, une 100, une 220 et une 1k Ohm)
Connecteur Midi femelle (5 broches Din) adapté au montage sur PCB
Fils de cavalier
Planche à pain ou une sorte de planche de prototypage
Ordinateur, j'en utiliserai un sous Windows 8.1, mais il devrait fonctionner sur n'importe quel système d'exploitation pour autant que je sache.
En option: batterie LiPo 1250 mAh avec connecteur JST d'Adafruit (compatible uniquement avec certains ESP)
Étape 1: Étape 1: Logiciel
Tout d'abord, vous avez besoin de l'IDE Arduino.
Ensuite, vous avez besoin du pilote SiLabs CP2104 et du package de carte ESP8266.
Cela permet à votre ordinateur de programmer l'ESP via l'UART intégré et permet à l'IDE Arduino de programmer l'ESP.
Vous pouvez trouver toutes les informations sur l'IDE, le pilote et la carte sur cette page du site Web d'Adafruit.
Vous aurez également besoin de la bibliothèque Arduino Midi pour pouvoir envoyer des données Midi. Cela peut être fait sans, mais cela rend tout beaucoup plus facile.
Pour communiquer avec le BME280 j'ai utilisé cette librairie BME280-I2C-ESP32. (C'est pour la version I2C du BME280)
Et cette bibliothèque nécessite à son tour le pilote de capteur unifié Adafruit. Ce n'est pas la première fois que j'ai besoin de cette bibliothèque pour utiliser une bibliothèque différente sans problème, j'ai donc toujours cette bibliothèque en signet quelque part.
Étape 2: Étape 2: Matériel
D'accord, nous arrivons enfin aux bonnes choses, le matériel.
Comme mentionné, j'ai utilisé cet ESP Adafruit, mais cela devrait fonctionner correctement avec un NodeMCU. Je recommande la version V2 car je pense qu'elle s'adapte beaucoup mieux sur une maquette et vous pouvez les obtenir à très bas prix sur eBay ou AliExpress. J'aime le fait que l'Adafruit ESP ait un processeur plus rapide, est livré avec un connecteur JST femelle pour un LiPo et un circuit de charge. Il est également un peu plus facile de déterminer quelle épingle vous utilisez. Je crois que sur un NodeMCU, la broche étiquetée D1 est en fait GPIO5 par exemple, vous avez donc toujours besoin d'un tableau de brochage à portée de main. Pas un gros problème du tout, mais juste pratique pour les débutants, ils ont si clairement étiqueté celui d'Adafruit.
Tout d'abord, connectons le BME280, car il existe quelques variantes dans ce modèle. Comme vous pouvez le voir sur les photos, le mien a un seul gros trou, mais il y en a aussi avec 2 trous. Vous pouvez voir qu'il dispose de 4 entrées et sorties, 1 pour l'alimentation, une pour la masse et un SCL et un SDA. Cela signifie qu'il communique via I2C. Je crois que d'autres modèles communiquent via SPI. Et dans certains cas, vous pouvez choisir soit SPI, soit I2C. SPI peut nécessiter une bibliothèque différente ou au moins un code différent et un câblage différent. Je crois également que le S dans SPI signifie Serial et je ne peux pas dire si cela interférera avec la partie Midi de ce projet car cela fonctionne également via une connexion série.
Brancher ce BME est assez simple. Sur l'ESP8266, vous pouvez voir les broches 4 et 5 étiquetées respectivement SDA et SCL. Connectez simplement ces broches directement aux broches SDA et SCL du BME. Bien sûr, connectez également VIN au rail positif de la planche à pain et GND au rail négatif. Ceux-ci sont à leur tour connectés aux broches 3V3 et GND de l'ESP.
Ensuite, nous allons connecter le LDR. Dans l'exemple de Fritzing, vous pouvez voir les 3,3 volts traverser une résistance, puis ils sont divisés en LDR et une autre résistance. Ensuite, après le LDR, il est à nouveau divisé en une résistance et en l'ADC.
Cela permet de protéger l'ESP des tensions trop élevées et de s'assurer qu'il obtient des valeurs lisibles. L'ADC peut gérer 0-1 volts mais le 3V3 délivre 3,3 volts. Cela ne fera probablement rien exploser si vous dépassez 1 volt, mais cela ne fonctionnera pas bien.
Nous utilisons donc d'abord un diviseur de tension utilisant des résistances de 220 et 100 ohms pour réduire la tension de 3,3 à 1,031 volts. Ensuite, le LDR de 25k ohms et la résistance de 1k ohms forment un autre Voltage Devider qui abaisse la tension de n'importe où entre 1,031 et 0 volts en fonction de la quantité de lumière que le LDR reçoit.
Ensuite, nous avons le capteur de pluie. Une partie dit FC-37, l'autre partie dit HW-103. Je viens d'acheter le premier que j'ai trouvé sur Ebay qui disait qu'il pouvait supporter 3,3 et 5 volts. (Je pense qu'ils le peuvent tous).
C'est assez simple, nous pourrions utiliser une sortie analogique, mais nous pouvons simplement tourner le minuscule Trimpot pour que le capteur soit aussi sensible que nous le souhaitons (et nous avons déjà utilisé notre seule broche analogique sur l'ESP). Comme pour les autres capteurs, nous devons alimenter le rail positif et le connecter au rail de terre. Parfois, l'ordre des broches varie cependant. Sur le mien c'est VCC, Ground, Digital, Analog, mais sur la photo Fritzing c'est différent. Mais si vous faites juste attention, cela devrait être facile à obtenir.
Et enfin, le Midi Jack. Sur ma planche à pain, il ne peut pas s'asseoir sur le bord de la planche à pain, car les broches ne s'alignent pas toutes. Si cela vous dérange, j'essaierais de me procurer une planche à pain dans un magasin physique. Ou inspectez très bien les images.
Comme vous pouvez le voir sur le schéma, la tension positive et le signal série passent tous deux par une résistance de 47 ohms.
Si vous faites ce projet avec un Arduino Uno par exemple, assurez-vous d'utiliser des résistances de 220 ohms !! Ces ESP fonctionnent sur une logique 3,3 V, mais la plupart des Arduino utilisent 5,0 V, vous devez donc limiter davantage le courant qui traverse le câble Midi.
Et enfin, connectez la broche du milieu au rail au sol. Les 2 autres broches du Din 5 broches ne sont pas utilisées.
Étape 3: Étape 3: Coder
Et enfin nous avons le code !
Dans ce fichier Zip j'ai mis 2 croquis. 'LightRainTemp' teste simplement tous les capteurs et renvoie leurs valeurs. (Assurez-vous d'ouvrir la fenêtre du terminal !)
Et bien sûr, nous avons le croquis LRTGenerativeMidi (LRT signifie Light, Rain, Temperature).
À l'intérieur, vous pouvez trouver un tas d'explications dans les commentaires sur ce qui se passe. Je ne vais pas expliquer comment j'ai écrit le tout, cela prendrait des heures. Si vous voulez savoir par où commencer avec quelque chose comme ça, j'ai d'autres projets en tête. Un petit générateur de Riff aléatoire avec quelques boutons et un séquenceur avec un tas de fonctionnalités que je ne trouve pas sur d'autres modèles.
Mais ceux que je devrai finir de concevoir et de coder en premier. Faites-moi savoir si vous souhaitez être tenu au courant des autres projets. Je n'ai pas décidé si je ferais plus d'instructables ou si je ferais une série de vidéos.
Étape 4: Étape 4: Branchez-le et testez-le
Et maintenant il est temps de le tester !
Connectez simplement un câble Midi, assurez-vous de régler votre synthétiseur/clavier pour qu'il réponde au canal 1 ou changez le canal dans le code Arduino et voyez si cela fonctionne !
Je suis vraiment curieux de voir et d'entendre ce que vous en faites. Si vous apportez des modifications, des mises à niveau, des ajustements (comme les valeurs du capteur de lumière et de la température. À l'extérieur, cela peut fonctionner mieux ou pire qu'à l'intérieur) n'importe quoi.
Je suis également curieux de voir si cela fonctionne bien avec tous les synthétiseurs. Sur ma Volca Bass ça marche parfaitement, mais sur mon Neutron le LFO se bloque dès que j'envoie une Midi Note. C'est bien quand je le redémarre, mais c'est étrange. Je ne sais pas s'il y a quelque chose dans la bibliothèque Midi ou dans mon code, je pourrais essayer de le faire sans bibliothèque bientôt et voir si ça s'améliore.
Merci d'avoir lu et regardé et bonne chance !!
Conseillé:
Gesture Hawk : Robot contrôlé par gestes manuels utilisant une interface basée sur le traitement d'images : 13 étapes (avec images)
Gesture Hawk : Robot contrôlé par les gestes de la main utilisant une interface basée sur le traitement d'images : Gesture Hawk a été présenté dans TechEvince 4.0 comme une simple interface homme-machine basée sur le traitement d'images. Son utilité réside dans le fait qu'aucun capteur supplémentaire ou portable, à l'exception d'un gant, n'est requis pour contrôler la voiture robotique qui fonctionne sur différents
Comment démonter un ordinateur avec des étapes et des images faciles : 13 étapes (avec des images)
Comment démonter un ordinateur avec des étapes et des images faciles : Il s'agit d'instructions sur la façon de démonter un PC. La plupart des composants de base sont modulaires et facilement démontables. Cependant, il est important que vous soyez organisé à ce sujet. Cela vous aidera à éviter de perdre des pièces, et aussi à faire le remontage ea
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle : 7 étapes (avec images)
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle : l'entraînement cardio est ennuyeux, en particulier lorsque vous faites de l'exercice à l'intérieur. Plusieurs projets existants tentent d'atténuer cela en faisant des trucs sympas comme coupler l'ergomètre à une console de jeu, ou même simuler une vraie balade à vélo en VR. Excitant comme ça
Synthétiseur de musique basé sur DE0-Nano-SoC : 5 étapes (avec images)
Synthétiseur de musique basé sur DE0-Nano-SoC : Music SynthesizerCe synthétiseur de musique est assez simple : il suffit de souffler, de chanter, voire de jouer de la musique devant le micro, et le son sera modulé et envoyé via le haut-parleur. Son spectre apparaîtra également sur l'écran LCD. Le
Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266 : 3 étapes (avec images)
Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266: What's Sonoff? Sonoff est une gamme d'appareils pour Smart Home développée par ITEAD. L'un des appareils les plus flexibles et les moins chers de cette gamme est le Sonoff Basic et le Sonoff Dual. Ce sont des commutateurs compatibles Wi-Fi basés sur une excellente puce, ESP8266. Tandis que