Obsah:
- Zásoby
- Krok 1: Krok 1: Softvér
- Krok 2: Krok 2: Hardvér
- Krok 3: Krok 3: Kód
- Krok 4: Krok 4: Pripojte ho a vyskúšajte
Video: Generátor hudby podľa počasia (midi generátor založený na ESP8266): 4 kroky (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Ahoj, dnes vám vysvetlím, ako si vytvoriť vlastný malý generátor hudby založený na počasí.
Je založený na ESP8266, ktorý je niečo ako Arduino, a reaguje na teplotu, dážď a intenzitu svetla.
Nečakajte, že to urobí celé piesne alebo akordové pokroky. Je to skôr ako generatívna hudba, ktorú ľudia niekedy robia s modulárnymi syntetizátormi. Ale je to o niečo menej náhodné, napríklad, že sa to drží určitých mierok.
Zásoby
ESP8266 (používam Feather Huzzah ESP8266 od Adafruit)
BME280 Snímač teploty, vlhkosti a barometrického tlaku (verzia I2C)
Arduino dažďový senzor
25K LDR (svetlo závislý odpor)
Niektoré odpory (dva 47, jeden 100, jeden 220 a jeden 1 kOhm)
Samičí midi konektor (5 pinový Din) vhodný na montáž na dosku plošných spojov
Prepojovacie vodiče
Breadboard alebo nejaká prototypová doska
Počítač, budem používať operačný systém Windows 8.1, ale pokiaľ viem, mal by fungovať na akomkoľvek operačnom systéme.
Voliteľné: 1250 mAh batéria LiPo s konektorom JST od spoločnosti Adafruit (kompatibilné iba s niektorými ESP)
Krok 1: Krok 1: Softvér
V prvom rade potrebujete Arduino IDE.
Potom potrebujete ovládač SiLabs CP2104 a balík ESP8266 Board Package.
To umožňuje vášmu počítaču naprogramovať ESP prostredníctvom vstavaného UART a umožňuje Arduino IDE naprogramovať ESP.
Všetky informácie o balíku IDE, balíčku ovládačov a dosky nájdete na tejto stránke na webovej stránke Adafruit.
Na odosielanie údajov Midi budete potrebovať aj knižnicu Arduino Midi. Dá sa to urobiť aj bez, ale tým je všetko oveľa jednoduchšie.
Na komunikáciu s BME280 som použil túto knižnicu BME280-I2C-ESP32. (Toto je pre verziu BM280 I2C)
A táto knižnica zase vyžaduje Adafruit Unified Sensor Driver. Toto nie je prvýkrát, čo potrebujem túto knižnicu, aby som mohol bez problémov používať inú knižnicu, takže túto knižnicu mám vždy niekde uloženú ako záložku.
Krok 2: Krok 2: Hardvér
Správne, takže sa konečne dostávame k dobrým veciam, hardvéru.
Ako som už spomenul, použil som tento Adafruit ESP, ale s NodeMCU by mal fungovať dobre. Odporúčam verziu V2, pretože sa domnievam, že sa oveľa lepšie hodí na dosku a dostanete ich veľmi lacno z eBay alebo AliExpress. Páči sa mi, že Adafruit ESP má rýchlejší procesor, je dodávaný so zásuvkou JST pre LiPo a nabíjacím obvodom. O niečo jednoduchšie je tiež zistiť, ktorý pin používate. Verím, že na NodeMCU je pin Labeled D1 napríklad GPIO5, takže vždy potrebujete poruke Pinout. Vôbec to nebol veľký problém, ale pre nováčikovcov to bolo len pohodlné a tak jasne označili Adafruit.
Najprv pripojme BME280, pretože v tomto modeli existujú určité variácie. Ako môžete vidieť na obrázkoch, môj má jednu veľkú dieru, ale existujú aj niektoré s 2 dierami. Môžete vidieť, že má 4 vstupy a výstupy, 1 pre napájanie, jeden pre uzemnenie a SCL a SDA. To znamená, že komunikuje prostredníctvom I2C. Verím, že ostatné modely komunikujú prostredníctvom SPI. A v niektorých si môžete vybrať buď SPI alebo I2C. SPI môže vyžadovať inú knižnicu alebo iný kód a iné zapojenie. Tiež som presvedčený, že S v SPI znamená Serial a nemôžem povedať, či to bude zasahovať do Midi časti tohto projektu, pretože to funguje aj prostredníctvom sériového pripojenia.
Pripojenie tohto BME je celkom jednoduché. Na ESP8266 vidíte, že kolíky 4 a 5 sú označené SDA a SCL. Stačí tieto kolíky pripojiť priamo k kolíku SDA a SCL na BME. Samozrejme tiež pripojte VIN k pozitívnej lište Breadboardu a GND k negatívnej lište. Tie sú zase pripojené k pinu 3V3 a GND ESP.
Ďalej pripojíme LDR. V príklade Fritzing môžete vidieť, ako 3,3 voltov prechádza odporom, potom je rozdelený na LDR a ďalší odpor. Potom sa po LDR opäť rozdelí na odpor a na ADC.
Toto má chrániť ESP pred príliš vysokým napätím a zaistiť, aby získaval čitateľné hodnoty. ADC zvládne 0-1 voltov, ale 3V3 dodáva 3,3 voltov. Pravdepodobne nič nevybuchne, ak pôjdete nad 1 volt, ale nebude to fungovať dobre.
Najprv teda použijeme delič napätia pomocou rezistorov 220 a 100 ohmov na zníženie napätia z 3,3 na 1,031 voltov. Potom 25 kOhm LDR a 1k ohmový odpor vytvoria ďalší napäťový delič, ktorý zníži napätie kdekoľvek od 1,031 do 0 voltov v závislosti od množstva svetla, ktoré LDR dostane.
Potom tu máme dažďový senzor. Jedna časť uvádza FC-37, druhá časť hovorí o HW-103. Práve som si kúpil prvý, ktorý som našiel na Ebay a ktorý povedal, že zvládne 3,3 a 5 voltov. (Myslím, že môžu všetci).
Je to celkom jednoduché, mohli by sme použiť analógový výstup, ale stačí otočiť malý Trimpot, aby bol senzor taký citlivý, ako chceme (a už sme použili jeden analógový pin na ESP). Rovnako ako pre ostatné senzory musíme dodávať energiu z pozitívnej koľajnice a pripojiť ju k uzemňovacej lište. Niekedy sa však poradie kolíkov líši. Na mojom je to VCC, Ground, Digital, Analog, ale na Fritzingovom obrázku je to iné. Ale ak budete venovať pozornosť, malo by byť ľahké to napraviť.
A nakoniec, Midi Jack. Na mojom Breadboarde nemôže sedieť na okraji breadboardu, pretože kolíky nie sú všetky zarovnané. Ak vám to vadí, pokúsil by som sa dostať do potravinárskeho obchodu. Alebo si obrázky veľmi dobre prezrite.
Ako vidíte na schéme, kladné napätie a sériový signál prechádzajú cez odpor 47 ohmov.
Ak robíte tento projekt napríklad s Arduino Uno, použite 220 ohmové odpory !! Tieto ESP pracujú na logike 3,3 V, ale väčšina Arduino používa 5,0 V, takže musíte viac obmedziť prúd, ktorý prechádza káblom Midi.
A nakoniec pripojte stredný kolík k uzemňovacej lište. Ostatné 2 piny z 5 pinového Din nie sú použité.
Krok 3: Krok 3: Kód
A konečne tu máme kód!
Do tohto súboru Zip vkladám 2 skice. „LightRainTemp“jednoducho otestuje všetky senzory a odošle ich hodnoty. (Nezabudnite otvoriť okno terminálu!)
A samozrejme máme skicu LRTGenerativeMidi (LRT znamená svetlo, dážď, teplota).
Vnútri nájdete veľa vysvetlení v komentároch k tomu, čo sa deje. Nebudem sa zaoberať tým, ako som to celé napísal, to by trvalo hodiny. Ak chcete vedieť, kde s niečím takým začať, mám na mysli niekoľko ďalších projektov. Malý generátor náhodných riffov s niekoľkými tlačidlami a sekvencerom s hromadou funkcií, ktoré nemôžem nájsť u iných modelov.
Ale tie budem musieť najskôr dokončiť navrhovaním a kódovaním. Dajte mi vedieť, ak chcete byť informovaní o ďalších projektoch. Nerozhodol som sa, či urobím viac návodov alebo urobím sériu videí.
Krok 4: Krok 4: Pripojte ho a vyskúšajte
A teraz je čas to otestovať!
Jednoducho pripojte kábel Midi a uistite sa, že je vaša syntetizátor/klávesnica nastavená tak, aby reagovala na kanál 1, alebo zmeňte kanál v kóde Arduino a zistite, či funguje!
Som naozaj zvedavý, čo a čo s tým urobíte. Ak vykonáte zmeny, inovácie, vyladenia (ako napríklad svetelný senzor a hodnoty teploty. Vonku to môže fungovať lepšie alebo horšie ako vo vnútri) čokoľvek.
Tiež som zvedavý, či funguje dobre so všetkými syntetizátormi. Na mojom Volca Bass funguje perfektne, ale na mojom neutróne sa LFO zasekne hneď, ako pošlem Midi Note. Je dobré, keď ho reštartujem, ale je to zvláštne. Nie som si istý, či je niečo v knižnici Midi alebo v mojom kóde. Možno to čoskoro skúsim urobiť bez knižnice a uvidíme, či sa to zlepší.
Ďakujem za čítanie a sledovanie a prajem veľa šťastia !!
Odporúča:
Inteligentný systém monitorovania počasia a rýchlosti vetra založený na IOT: 8 krokov
Inteligentný systém monitorovania počasia a rýchlosti vetra založený na IOT: Vyvinul - Nikhil Chudasma, Dhanashri Mudliar a Ashita Raj Úvod Význam monitorovania počasia existuje mnohými spôsobmi. Parametre počasia je potrebné monitorovať, aby sa udržal rozvoj v poľnohospodárstve, skleníkoch
Sledujte vypuknutie ochorenia COVID-19 podľa ESP8266: 11 krokov (s obrázkami)
Sledujte vypuknutie ochorenia COVID-19 od ESP8266: Tento malý gadget vám pomôže mať aktuálne informácie o vypuknutí koronavírusu a situácii vo vašej krajine. Ide o projekt založený na IoT, ktorý v reálnom čase zobrazuje údaje o prípadoch, úmrtiach a uzdravených osobách spôsobených koronavírusom (COVID-19).
[15 min] Weasleyho hodiny / Kto je doma Indikátor - podľa TR -064 (beta): 4 kroky (s obrázkami)
[15min] Weasley Clock / Who Is Home Indicator-Založené na TR-064 (beta): AKTUALIZÁCIA: Pozri krok 3. Dlhý príbeh (TL; DR nižšie): Pred nejakým časom som napísal do počítača malý bash skript, ktorý by prehľadajte v sieti registrované zariadenia a porovnajte ich názvy hostiteľov so zoznamom s priradenými názvami. Zakaždým, keď sa zariadenie prihlási-
Sieťové hodiny a monitor počasia na báze ESP8266: 3 kroky (s obrázkami)
Monitor sieťových hodín a počasia na báze ESP8266: Krátky a jednoduchý víkendový projekt s displejom ESP8266 a 0,96 palcom OLED s rozlíšením 128 x 64. Zariadenie je sieťové hodiny, t. J. Načítava čas zo serverov ntp. Tiež zobrazuje informácie o počasí s ikonami z openweathermap.org Požadované diely: 1. Modul ESP8266 (A
Vybudujte náhodný generátor hudby a svetla a pozrite sa na BOHA: 4 kroky
Vybudujte náhodný generátor hudby a svetla a pozrite sa na dôkaz BOHA: Vytváranie skutočne náhodných čísel sa zdá byť nemožné. Je však celkom jednoduché použiť mikrokontrolér na generovanie pseudonáhodných čísel a potom ich použiť na zobrazenie zvukov a rôznofarebných svetiel. Zatiaľ čo generovaná hudba nie je