Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Trin 1: Software
- Trin 2: Trin 2: Hardware
- Trin 3: Trin 3: Kode
- Trin 4: Trin 4: Tilslut det og test det
Video: Vejrbaseret musikgenerator (ESP8266 -baseret midi -generator): 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Hej, i dag forklarer jeg, hvordan du laver din egen lille vejrbaserede musikgenerator.
Det er baseret på en ESP8266, som er lidt ligesom en Arduino, og den reagerer på temperatur, regn og lysintensitet.
Forvent ikke, at det vil lave hele sange eller akkordprogressioner. Det ligner mere Generative Musik, som folk nogle gange laver med Modular Synthesizers. Men det er lidt mindre tilfældigt, så det holder sig f.eks. Til visse skalaer.
Forbrugsvarer
ESP8266 (jeg bruger Feather Huzzah ESP8266 fra Adafruit)
BME280 temperatur-, fugtigheds- og barometrisk trykføler (I2C -versionen)
Arduino regnsensor
25K LDR (lysafhængig modstand)
Nogle modstande (to 47, en 100, en 220 og en 1k Ohm)
Kvinde Midi -stik (5 Pin Din) egnet til PCB -montering
Jumper Wires
Brødbræt eller en slags prototypebord
Computer, jeg bruger en, der kører Windows 8.1, men den burde fungere på ethvert operativsystem, så vidt jeg ved.
Valgfrit: 1250 mAh LiPo -batteri med JST -stik fra Adafruit (kun kompatibel med nogle ESP'er)
Trin 1: Trin 1: Software
Først og fremmest har du brug for Arduino IDE.
Så har du brug for SiLabs CP2104 driveren og ESP8266 Board Package.
Dette giver din computer mulighed for at programmere ESP via den indbyggede UART og giver Arduino IDE mulighed for at programmere ESP.
Du kan finde alle oplysninger om IDE, Driver og Board -pakken på denne side på Adafruit -webstedet.
Du skal også bruge Arduino Midi -biblioteket for at kunne sende Midi -data. Det kan gøres uden, men det gør alting meget lettere.
For at kommunikere med BME280 brugte jeg dette BME280-I2C-ESP32 bibliotek. (Dette er til I2C -versionen af BME280)
Og det bibliotek kræver igen Adafruit Unified Sensor Driver. Dette er ikke første gang, jeg har haft brug for dette bibliotek for at kunne bruge et andet bibliotek uden problemer, så jeg har altid et bibliotek som et bogmærke et sted.
Trin 2: Trin 2: Hardware
Okay, så vi endelig kommer til de gode ting, hardwaren.
Som nævnt brugte jeg denne Adafruit ESP, men den skulle bare fungere fint med en NodeMCU. Jeg anbefaler V2 -versionen, da jeg mener, at den passer meget bedre på et brødbræt, og du kan få dem meget billige fra eBay eller AliExpress. Jeg kan godt lide, at Adafruit ESP har en hurtigere CPU, leveres med en kvindelig JST -stik til en LiPo og et opladningskredsløb. Det er også lidt lettere at finde ud af, hvilken Pin du bruger. Jeg tror på en NodeMCU, at stiften mærket D1 faktisk er GPIO5 for eksempel, så du har altid brug for et Pinout -diagram praktisk. Slet ikke et stort problem, men bare praktisk for nybegyndere, de stemplede Adafruit en så tydeligt.
Lad os først forbinde BME280, fordi der er nogle variationer i denne model. Som du kan se på billederne har min det ene store hul, men der er også nogle med 2 huller. Du kan se, at den har 4 ind- og udgange, 1 til strøm, en til jord og en SCL og SDA. Det betyder, at den kommunikerer via I2C. Jeg tror, at andre modeller kommunikerer via SPI. Og i nogle kan du vælge enten SPI eller I2C. SPI kræver muligvis et andet bibliotek eller i det mindste en anden kode og forskellige ledninger. Jeg tror også, at S i SPI står for Serial, og jeg kan ikke sige, om dette vil forstyrre Midi -delen af dette projekt, da det også fungerer via seriel forbindelse.
Tilslutning til denne BME er ret ligetil. På ESP8266 kan du se pin 4 og 5 mærket henholdsvis SDA og SCL. Tilslut bare disse ben direkte til SDA- og SCL -stiften på BME. Tilslut selvfølgelig også VIN til den positive skinne på brødbrættet og GND til den negative skinne. Disse er igen forbundet med 3V3- og GND -stiften i ESP.
Dernæst forbinder vi LDR. I Fritzing -eksemplet kan du se de 3,3 volt, der går gennem en modstand, derefter deles den til LDR og en anden modstand. Derefter splittes det igen efter LDR til en modstand og til ADC.
Dette er for at beskytte ESP mod at få for høje spændinger og for at sikre, at det får læsbare værdier. ADC kan klare 0-1 volt, men 3V3 leverer 3,3 volt. Det vil sandsynligvis ikke sprænge noget, hvis du går over 1 volt, men det kommer ikke til at fungere godt.
Så først bruger vi en spændingsdeler med 220 og 100 ohm modstande til at sænke spændingen fra 3,3 til 1,031 volt. Derefter danner 25k ohm LDR og 1k ohm modstanden en anden spændingsudveksler, der bringer spændingen ned hvor som helst mellem 1.031 og 0 volt afhængigt af mængden af lys, LDR får.
Så har vi regnsensoren. Den ene del siger FC-37, den anden del siger HW-103. Jeg har lige købt den første, jeg fandt på Ebay, der sagde, at den kan klare 3,3 og 5 volt. (Det tror jeg alle kan).
Dette er ret ligetil, vi kunne bruge en analog udgang, men vi kan bare dreje den lille Trimpot for at få sensoren til at være så følsom, som vi vil (og vi har allerede brugt vores ene analoge pin på ESP). Som med de andre sensorer skal vi levere strøm fra Positivskinnen og tilslutte den til Jordskinnen. Nogle gange varierer rækkefølgen af stifterne dog. På min er det VCC, Ground, Digital, Analog, men på Fritzing -billedet er det anderledes. Men hvis du bare er opmærksom, skal det være let at få det rigtigt.
Og endelig Midi Jack. På mit brødbræt kan det ikke sidde på kanten af brødbrættet, da stifterne ikke alle flugter. Hvis dette generer dig, ville jeg prøve at få et brødbræt i en fysisk butik. Eller inspicere billederne meget godt.
Som du kan se fra skematisk, går den positive spænding og det serielle signal begge gennem en 47 ohm modstand.
Hvis du f.eks. Laver dette projekt med en Arduino Uno, skal du sørge for at bruge 220 ohm modstande !! Disse ESP'er arbejder på 3,3 V logik, men de fleste Arduino'er bruger 5,0 V, så du er nødt til at begrænse den strøm, der går gennem Midi -kablet mere.
Og tilslut til sidst den midterste pin til jordskinnen. De andre 2 ben fra 5 Pin Din bruges ikke.
Trin 3: Trin 3: Kode
Og endelig har vi koden!
I denne Zip -fil lagde jeg 2 skitser. 'LightRainTemp' tester bare alle sensorerne og sender deres værdier tilbage. (Sørg for at åbne terminalvinduet!)
Og selvfølgelig har vi LRTGenerativeMidi (LRT står for Light, Rain, Temperature) skitse.
Inde kan du finde en masse forklaringer i kommentarer til, hvad der foregår. Jeg vil ikke gå ind på, hvordan jeg skrev det hele, det ville tage timer. Hvis du vil vide, hvor du skal starte med sådan noget, har jeg nogle andre projekter i tankerne. En lille Random Riff -generator med et par knapper og en Sequencer med en masse funktioner, jeg ikke kan finde på andre modeller.
Men dem bliver jeg nødt til at afslutte med at designe og kode først. Lad mig vide, hvis du vil blive holdt opdateret om andre projekter. Jeg har ikke besluttet mig for, om jeg vil lave flere instruktioner eller lave en videoserie.
Trin 4: Trin 4: Tilslut det og test det
Og nu er det tid til at teste det!
Tilslut ganske enkelt et Midi -kabel, sørg for at indstille dit Synth/Keyboard til at reagere på kanal 1 eller ændre kanalen i Arduino -koden og se om det virker!
Jeg er virkelig nysgerrig efter at se og høre, hvad du gør med det. Hvis du foretager ændringer, opgraderinger, tweaks (som f.eks. Lyssensoren og temperaturværdier. Udenfor fungerer det måske bedre eller værre end indeni) alt muligt.
Jeg er også nysgerrig efter at se, om det fungerer godt med alle Synthesizers. På min Volca Bass fungerer den perfekt, men på min Neutron sætter LFO sig fast, så snart jeg sender en Midi Note. Det er fint, når jeg genstarter det, men det er mærkeligt. Jeg er ikke sikker på, om der er noget i Midi -biblioteket eller i min kode, jeg kan prøve at gøre det uden et bibliotek snart og se, om det bliver bedre.
Tak fordi du læste og så med og held og lykke !!
Anbefalede:
MIDI håndpanel med 19 tonefelter på øvre og nedre side : 15 trin (med billeder)
MIDI -håndpanel med 19 tonefelter på øvre og nedre side …: Introduktion Dette er en tutorial om mit specialfremstillede MIDI -håndpanel med 19 volumenfølsomme tonefelter, Plug'n Play USB -kapacitet og en masse brugervenlige parametre til justering af puderne til dine individuelle behov. Det er ikke en design prisbelønnet mod
ESP8266 - Havevanding med timer og fjernbetjening via internet / ESP8266: 7 trin (med billeder)
ESP8266 - Havevanding med timer og fjernbetjening via internet / ESP8266: ESP8266 - Vanding fjernstyret og med timing til køkkenhave, blomsterhaver og græsplæner. Det bruger ESP-8266 kredsløbet og en hydraulisk / elektrisk ventil til vanding af vanding. Fordele: Lave omkostninger (~ US $ 30,00) hurtig adgang Kommandoer over
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
MIDI 5V LED Strip Light Controller til Spielatron eller anden MIDI Synth: 7 trin (med billeder)
MIDI 5V LED Strip Light Controller til Spielatron eller anden MIDI Synth: Denne controller blinker trefarvede LED strip lys for 50mS pr note. Blå for G5 til D#6, rød for E6 til B6 og grøn for C7 til G7. Controlleren er en ALSA MIDI -enhed, så MIDI -software kan sende til lysdioderne samtidig med en MIDI -synthenhed
ESP8266 Robotbil programmeret med ESP8266 Basic: 18 trin (med billeder)
ESP8266 Robotbil programmeret med ESP8266 Basic: Jeg er en naturskolelærer på mellemskolen og også rådgiver i Robotic Club. Jeg har ledt efter mere omkostningseffektive måder at få robotter i hænderne på mine elever. Med de lave priser på ESP8266 -plader har jeg været i stand til at skabe en autonom