Мазмұны:

Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы): 4 қадам (суреттермен)
Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы): 4 қадам (суреттермен)

Бейне: Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы): 4 қадам (суреттермен)

Бейне: Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы): 4 қадам (суреттермен)
Бейне: Мыналар не істеп тұр?😱😱😱 #qoslike #калаулым #бірболайық #кослайк 2024, Шілде
Anonim
Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы)
Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы)
Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы)
Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы)

Сәлеметсіз бе, мен бүгін ауа -райына негізделген музыкалық генераторды қалай жасау керектігін түсіндіремін.

Ол ESP8266 -ға негізделген, ол Arduino сияқты, ол температураға, жаңбырға және жарық қарқындылығына жауап береді.

Бұл бүкіл әндер немесе аккорд прогрессиясын жасайды деп күтпеңіз. Бұл адамдар модульдік синтезаторлармен жасайтын генеративті музыкаға ұқсайды. Бірақ бұл кездейсоқ емес, ол белгілі бір таразыларға жабысады.

Жабдықтар

ESP8266 (Мен Adafruit компаниясының Feather Huzzah ESP8266 қолданамын)

BME280 температура, ылғалдылық және барометрлік қысым сенсоры (I2C нұсқасы)

Arduino жаңбыр сенсоры

25K LDR (жарыққа тәуелді резистор)

Кейбір резисторлар (екі 47, біреуі 100, біреуі 220 және біреуі 1к Ом)

Әйелдер Midi коннекторы (5 істікшелі Дин) ПХД орнатуға жарамды

Jumper Wires

Нан тақтасы немесе прототиптеу тақтасының бір түрі

Компьютер, мен Windows 8.1 жұмыс істейтін біреуін қолданамын, бірақ ол менің білуімше кез келген ОЖ -де жұмыс істеуі керек.

Қосымша: Adafruit компаниясының JST коннекторы бар 1250 мАч LiPo аккумуляторы (тек кейбір ESP құрылғыларымен үйлесімді)

1 -қадам: 1 -қадам: Бағдарламалық қамтамасыз ету

Ең алдымен сізге Arduino IDE қажет.

Содан кейін сізге SiLabs CP2104 драйвері мен ESP8266 тақтасы қажет.

Бұл сіздің компьютеріңізге ESP -ті UART -та орнатуға мүмкіндік береді және Arduino IDE -ге ESP -ті бағдарламалауға мүмкіндік береді.

IDE, Driver және Board пакеті туралы барлық ақпаратты осы бетте Adafruit веб -сайтында таба аласыз.

Сізге Midi деректерін жіберу үшін Arduino Midi кітапханасы қажет болады. Мұны онсыз жасауға болады, бірақ бұл бәрін жеңілдетеді.

BME280-мен байланысу үшін мен BME280-I2C-ESP32 кітапханасын қолдандым. (Бұл BME280 I2C нұсқасы үшін)

Ал бұл кітапханаға Adafruit Unified Sensor Driver қажет. Бұл басқа кітапхананы ақаусыз пайдалану үшін бұл кітапхана маған бірінші рет қажет емес, сондықтан мен әрқашан осы кітапханаға бір жерден бетбелгі қоямын.

2 -қадам: 2 -қадам: Жабдық

2 -қадам: Жабдық
2 -қадам: Жабдық
2 -қадам: Жабдық
2 -қадам: Жабдық
2 -қадам: Жабдық
2 -қадам: Жабдық

Дұрыс, біз ақырында жақсы нәрсеге, аппараттық құралға қол жеткіземіз.

Жоғарыда айтылғандай, мен бұл Adafruit ESP қолдандым, бірақ ол NodeMCU -мен жақсы жұмыс істеуі керек. Мен V2 нұсқасын ұсынамын, себебі ол тақтаға жақсы сәйкес келеді және сіз оларды eBay немесе AliExpress -тен өте арзан ала аласыз. Маған Adafruit ESP жылдам процессоры бар екендігі ұнайды, LiPo үшін әйел JST қосқышы мен зарядтау тізбегі. Қандай Пинді қолданғаныңызды анықтау оңайырақ. Менің ойымша, NodeMCU -де D1 белгісі іс жүзінде GPIO5, сондықтан сізге әрқашан Pinout диаграммасы қажет. Бұл үлкен мәселе емес, бірақ жаңадан келгендер үшін ыңғайлы, олар Adafruit -ді дәл анықтады.

Алдымен BME280 -ді қосамыз, себебі бұл модельде кейбір өзгерістер бар. Суреттерден көріп отырғанымдай, шахтада бір үлкен тесік бар, бірақ 2 тесік бар. Сіз оның 4 кіріс және шығыс, 1 қуат үшін, біреуі жерге және SCL мен SDA бар екенін көре аласыз. Бұл I2C арқылы байланысады дегенді білдіреді. Менің ойымша, басқа модельдер SPI арқылы байланысады. Ал кейбіреулерінде SPI немесе I2C таңдауға болады. SPI басқа кітапхананы немесе кем дегенде басқа кодты және басқа сымдарды қажет етуі мүмкін. Мен сондай -ақ SPI -дегі S сериясын білдіреді деп ойлаймын және бұл жобаның Midi бөлігіне кедергі келтіретінін айта алмаймын, себебі бұл сериялық байланыс арқылы жұмыс істейді.

Бұл BME -ді қосу өте қарапайым. ESP8266 -де сіз сәйкесінше SDA және SCL деп белгіленген 4 және 5 -шнурды көре аласыз. Бұл түйреуіштерді BME -дегі SDA мен SCL түйреуішіне тікелей қосыңыз. Әрине, VIN -ді Breadboard оң рельсіне және GND -ны теріс рельске қосыңыз. Олар өз кезегінде ESP 3V3 және GND түйреуішіне қосылған.

Келесіде біз LDR қосамыз. Fritzing мысалында сіз резистор арқылы өтетін 3,3 вольтты көре аласыз, содан кейін ол LDR және басқа резисторға бөлінеді. Содан кейін LDR -ден кейін ол қайтадан резисторға және ADC -ге бөлінеді.

Бұл ESP -ті тым жоғары кернеуден қорғауға және оның оқылатын мәндерді алатынына көз жеткізу үшін. ADC 0-1 вольтты басқара алады, бірақ 3V3 3,3 вольтты береді. Егер сіз 1 вольттан жоғары көтерілсеңіз, ол ештеңені жарып жібермеуі мүмкін, бірақ ол жақсы жұмыс істемейді.

Алдымен кернеуді 3,3 -тен 1,031 вольтке дейін төмендету үшін кернеуді бөлгішті 220 және 100 Ом резисторларының көмегімен қолданамыз. Содан кейін 25k Ом LDR мен 1k ohm резисторы LDR алатын жарық мөлшеріне байланысты кернеуді 1.031 мен 0 вольт арасындағы кез келген жерден төмендететін басқа кернеу құрылғысын құрайды.

Содан кейін бізде жаңбыр сенсоры бар. Бір бөлігінде FC-37, екінші бөлігінде HW-103 деп жазылған. Мен Ebay -ден табылған бірінші затты сатып алдым, ол 3,3 және 5 вольтты басқара алатынын айтты. (Менің ойымша, олардың бәрі мүмкін).

Бұл өте қарапайым, біз аналогтық шығуды қолдана аламыз, бірақ сенсорды қалағандай сезімтал ету үшін біз кішкене Trimpot -ды айналдыра аламыз (және біз ESP -те бір аналогтық түйреуішті қолдандық). Басқа сенсорлар сияқты, біз де оң рельстен қуат алып, оны жер үсті рельсіне қосуымыз керек. Кейде түйреуіштердің орналасу тәртібі әр түрлі болады. Менікінде бұл VCC, Ground, Digital, Analog, бірақ Fritzing суретте басқаша. Бірақ егер сіз жай ғана назар аударсаңыз, оны түзету оңай болуы керек.

Ақырында, Миди Джек. Менің Breadboard тақтасында ол тақтаның шетінде отыра алмайды, себебі түйреуіштер бір -біріне сәйкес келмейді. Егер бұл сізді мазаласа, мен физикалық дүкеннен нан табуға тырысар едім. Немесе суреттерді жақсы тексеріңіз.

Схемадан көріп отырғаныңыздай, оң кернеу мен сериялық сигнал екеуі де 47 Ом резистордан өтеді.

Егер сіз бұл жобаны Arduino Uno көмегімен жасасаңыз, 220 Ом резисторды қолданғаныңызға көз жеткізіңіз !! Бұл ESP 3.3 В логикасында жұмыс істейді, бірақ Arduino -ның көпшілігі 5.0 В -ты қолданады, сондықтан Midi кабелі арқылы өтетін токты шектеуге тура келеді.

Соңында ортаңғы түйреуішті жер үсті рельсіне қосыңыз. 5 пин Диннен қалған 2 түйреуіш қолданылмайды.

3 -қадам: 3 -қадам: Код

Ақырында бізде код бар!

Бұл Zip файлына мен 2 эскиз қойдым. 'LightRainTemp' барлық сенсорларды тексереді және олардың мәндерін қайтарады. (Терминал терезесін ашуды ұмытпаңыз!)

Әрине, бізде LRTGenerativeMidi (LRT - жарық, жаңбыр, температура) нобайы бар.

Ішінде сіз не болып жатқанын түсініктемелерде таба аласыз. Мен бәрін қалай жазғанымға бармаймын, бұл бірнеше сағатқа созылады. Егер сіз осындай нәрсені қайдан бастау керектігін білгіңіз келсе, менде басқа жобалар бар. Бірнеше түймелері бар шағын Random Riff генераторы мен басқа модельдерде таба алмайтын көптеген мүмкіндіктері бар тізбегі.

Бірақ мен алдымен жобалау мен кодтауды аяқтауым керек. Басқа жобалар туралы хабардар болғыңыз келсе, маған хабарлаңыз. Мен көп нұсқаулықтар түсіремін бе, әлде видео сериал жасаймын ба, шешкен жоқпын.

4 -қадам: 4 -қадам: Ілініп, тексеріңіз

Ал енді оны сынаудың уақыты келді!

Тек Midi кабелін қосыңыз, Synth/Keyboard пернетақтасын 1 арнаға жауап беретін етіп орнатыңыз немесе Arduino кодындағы арнаны өзгертіңіз және оның жұмыс істейтінін тексеріңіз!

Мен онымен не істеп жатқаныңызды көруге және естуге шынымен қызығамын. Егер сіз өзгертулер, жаңартулар, түзетулер енгізсеңіз (мысалы, жарық сенсоры мен температура мәндері сияқты. Сыртта ол ішінен жақсы немесе нашар жұмыс істеуі мүмкін).

Мен барлық синтезаторлармен жақсы жұмыс істейтінін білгім келеді. Менің Volca Bass -те ол өте жақсы жұмыс істейді, бірақ менің нейтронымда LFO Midi нотасын жібергеннен кейін тұрып қалады. Мен оны қайта жүктегенде жақсы, бірақ бұл біртүрлі. Мен Midi кітапханасында немесе менің кодымда бірдеңе бар ма екеніне сенімді емеспін, мен мұны жақын арада кітапханасыз жасауға тырысамын және ол жақсаратынын білемін.

Оқығаныңызға және көргеніңізге рахмет және сәттілік !!

Ұсынылған: