Мазмуну:
- Жабдуулар
- 1 -кадам: 1 -кадам: Программалык камсыздоо
- 2 -кадам: 2 -кадам: Аппараттык
- 3 -кадам: 3 -кадам: Код
- 4 -кадам: 4 -кадам: Аны илип, сынап көрүңүз
Video: Аба ырайына негизделген музыка генератору (ESP8266 негизделген Midi генератору): 4 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Саламатсызбы, мен бүгүн аба ырайына негизделген кичинекей музыкалык генераторду кантип жасоону түшүндүрөм.
Бул ESP8266га негизделген, ал Arduino сыяктуу, ал температурага, жамгырга жана жарыктын интенсивдүүлүгүнө жооп берет.
Бүтүндөй ырларды же аккорд прогрессин жасайт деп күтпөңүз. Бул Generative Music адамдарга окшош, кээде модулдук синтезаторлор менен жасашат. Бирок бул бир аз азыраак туш келди, ал, мисалы, белгилүү бир Таразаларга жабышып калат.
Жабдуулар
ESP8266 (Мен Adafruitтен Feather Huzzah ESP8266 колдонуп жатам)
BME280 Температура, нымдуулук жана барометрдик басым сенсору (I2C версиясы)
Arduino жамгыр сенсору
25K LDR (Жарыкка көз каранды резистор)
Кээ бир резисторлор (экөө 47, бири 100, бири 220 жана бири 1к Ом)
Аял Midi Connector (5 Pin Din) PCB монтаждоо үчүн ылайыктуу
Jumper Wires
Нан тактасы же кандайдыр бир прототипдөө тактасы
Компьютер, мен Windows 8.1де иштегенди колдоном, бирок ал менин билишимче, каалаган ОСте иштеши керек.
Кошумча: Adafruitтен JST туташтыргычы бар 1250 мАч LiPo батареясы (кээ бир ESP менен гана шайкеш келет)
1 -кадам: 1 -кадам: Программалык камсыздоо
Биринчи кезекте сизге Arduino IDE керек.
Андан кийин сизге SiLabs CP2104 драйвери жана ESP8266 Board Package керек.
Бул сиздин компьютериңизге ESPти UARTта орнотууга мүмкүнчүлүк берет жана Arduino IDEге ESPти программалоого мүмкүнчүлүк берет.
IDE, Driver жана Board Package жөнүндө бардык маалыматты Adafruit веб -сайтындагы бул баракчадан таба аласыз.
Ошондой эле Midi маалыматын жөнөтүү үчүн Arduino Midi китепканасы керек болот. Муну ансыз деле кылса болот, бирок бул жөн гана баарын бир топ жеңилдетет.
BME280 менен байланышуу үчүн мен бул BME280-I2C-ESP32 китепканасын колдондум. (Бул BME280дин I2C версиясы үчүн)
Ал эми бул китепкана Adafruit Unified Sensor Driver талап кылат. Бул башка китепкананы көйгөйсүз колдонуу үчүн бул китепкана мага биринчи жолу эмес, ошондуктан бул китепкананын дайыма бир жерге кыстармалары бар.
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 омдук резисторлорду колдонгон Voltage Divider колдонобуз. Андан кийин 25k ohm LDR жана 1k ohm каршылыгы LDR алган жарыктын көлөмүнө жараша каалаган жерден 1.031 менен 0 вольттун ортосундагы чыңалууну төмөндөтүүчү башка Voltage Devider түзөт.
Андан кийин бизде Жамгыр сенсору бар. Бир бөлүгү FC-37 дейт, экинчи бөлүгү HW-103 дейт. Мен жөн гана Ebayден тапканымдын бирин сатып алдым, ал 3.3 жана 5 вольтту көтөрө алат деп айтты. (Менимче, алардын баары алат).
Бул абдан алдыга карай, биз аналогдук чыгарууну колдоно алмакпыз, бирок биз кичинекей Trimpotту буруп, сенсорду биз каалагандай сезимтал кылышыбыз мүмкүн (жана биз буга чейин ESPтин бир аналогдук пинин колдонгонбуз). Башка сенсорлордой эле, биз позитивдүү темир жолунан энергия берип, аны жер темир жолуна туташтырышыбыз керек. Кээде төөнөгүчтөрдүн тартиби ар кандай болот. Меники бул VCC, Ground, Digital, Analog, бирок Fritzing сүрөтүндө башкача. Бирок, эгер сиз жөн гана көңүл бурсаңыз, бул оңой оңой болушу керек.
Жана акыры, Midi Jack. Менин Breadboard тактайчамдын тегерегине туура келбегендиктен, ал нандын четинде отура албайт. Эгерде бул сизди тынчсыздандырса, мен физикалык дүкөндөн нан табууга аракет кылмакмын. Же сүрөттөрдү абдан жакшы текшерип көрүңүз.
Схемадан көрүнүп тургандай, оң чыңалуу жана Сериялык сигнал экөө тең 47 омдук резистор аркылуу өтөт.
Эгерде сиз бул долбоорду Arduino Uno менен жасасаңыз, анда 220 омдук резисторлорду колдонууну унутпаңыз !! Бул ESPтин 3.3 V логикасы боюнча иштегени, бирок көпчүлүк Arduino 5.0 V колдонот, андыктан сиз Midi кабели аркылуу өтүүчү токту чектешиңиз керек.
Акыры, ортоңку пинди Жер темир жолуна туташтырыңыз. 5 Pin Din башка 2 казыктары колдонулбайт.
3 -кадам: 3 -кадам: Код
Акыры бизде код бар!
Бул Zip файлына мен 2 эскиз койду. 'LightRainTemp' жөн гана бардык сенсорлорду сынайт жана алардын баалуулуктарын кайра жөнөтөт. (Терминал терезесин ачууну унутпаңыз!)
Албетте, бизде LRTGenerativeMidi (LRT жарык, жамгыр, температура) эскизи бар.
Ичинде эмне болуп жатканы боюнча комментарийлерде көптөгөн түшүндүрмөлөрдү таба аласыз. Мен бүт нерсени кантип жазганыма киргим келбейт, бул бир нече саатка созулат. Эгерде сиз мындай нерсени кайдан баштоо керектигин билгиңиз келсе, менин башка долбоорлорум бар. Бир нече баскычтары бар кичинекей Random Riff генератору жана башка моделдерден таба албаган көптөгөн функциялары бар секвенер.
Бирок мен алгач долбоорлоону жана коддоону бүтүрүшүм керек. Башка долбоорлор тууралуу кабардар болуп турууну кааласаңыз, мага кабарлаңыз. Көбүрөөк көрсөтмө беремби же видео сериал жасаймбы чече элекмин.
4 -кадам: 4 -кадам: Аны илип, сынап көрүңүз
Эми аны сынап көрүүгө убакыт келди!
Жөн эле Midi кабелин туташтырыңыз, Synth/Keyboardңузду 1 -каналга жооп бергидей кылып коюңуз же Arduino кодундагы каналды өзгөртүп, анын иштээрин көрүңүз!
Мен муну менен эмне кылып жатканыңды көрүп, укканым чын эле кызыгып жатат. Эгер сиз өзгөртүүлөрдү, жаңыртууларды, өзгөртүүлөрдү киргизсеңиз (Жарык сенсоруна жана Температура маанилерине окшош. Сырты ичинде жакшы же жаман иштеши мүмкүн).
Мен бардык синтезаторлор менен жакшы иштээрин билгим келет. Менин Волка Бассымда ал эң сонун иштейт, бирок менин Нейтронумда LFO мен Midi Note жөнөткөнүмдө тыгылып калат. Мен аны кайра жүктөөдө жакшы, бирок кызык. Мен Midi Китепканасында же менин кодумда бир нерсе бар экенин так билбейм, мен муну жакында Китепкана жок кылууга аракет кылып, анын жакшырып кетээрин билишим мүмкүн.
Окуп, көргөнүңүз үчүн рахмат жана ийгилик !!
Сунушталууда:
Аба - Чыныгы мобилдик аба гитарасы (Прототип): 7 кадам (Сүрөттөр менен)
Аба - Чыныгы Мобилдик Аба Гитарасы (Прототип): Макул, бул чындыгында менин бала кездеги кыялыма жакындатуунун биринчи бөлүгү жөнүндө кыскача көрсөтмө болот. Мен кичинекей кезимде ар дайым сүйүктүү артисттеримди жана группаларымдын гитарада черткенин көрчүмүн. Мен чоңойгондо, мен
NodeMCU колдонуу менен Smart бөлүштүрүлгөн IoT аба ырайына мониторинг системасы: 11 кадам
NodeMCU колдонуп IoTдун аба ырайын көзөмөлдөө системасы: Баарыңыз салттуу аба ырайы станциясын билишиңиз мүмкүн; бирок ал чынында кантип иштээрин ойлонуп көрдүңүз беле? Адаттагы метеостанция кымбат жана көлөмдүү болгондуктан, бул станциялардын тыгыздыгы бирдикке салыштырмалуу өтө төмөн, бул
ESP8266 менен жөнөкөй аба ырайы станциясы: 6 кадам (сүрөттөр менен)
Жөнөкөй аба ырайы станциясы ESP8266 колдонот. Бул Нускамада мен температура, басым, климат сыяктуу маалыматтарды алуу үчүн ESP8266ны кантип колдонуу керектиги менен бөлүшөм. Жалпы көрүү саны. жана маалыматтарды сериялык монитордо көрсөтүү жана ЖКда көрсөтүү. Маалыматтар f
DHT11 менен ESP32 негизделген M5Stack M5stick C аба ырайы монитору - DHT11 менен M5stick-Cдеги температуранын нымдуулугун жана жылуулук индексин көзөмөлдөңүз: 6 кадам
DHT11 менен ESP32 негизделген M5Stack M5stick C аба ырайы монитору | DHT11 менен M5stick-Cдеги температуранын нымдуулугун жана жылуулук индексин көзөмөлдөңүз: Салам балдар, бул көрсөтмөлөрдө биз DHT11 температура сенсорун m5stick-C менен (m5stack менен иштеп чыгуу тактасы) кантип интерфейс кылууну жана m5stick-C дисплейинде көрсөтүүнү үйрөнөбүз. Ошентип, бул үйрөткүчтө биз температураны, нымдуулукту & жылуулук мен
ESP8266 негизделген тармак сааты жана аба ырайы монитору: 3 кадам (сүрөттөр менен)
ESP8266 негизделген тармак сааты жана аба ырайы монитору: ESP8266 жана 0.96 "128x64 OLED дисплейи бар кыска жана жөнөкөй дем алыш күндөрү долбоору. Бул түзмөк тармак сааты, башкача айтканда ntp серверлеринен убакытты алат. Ал ошондой эле openweathermap.org сүрөтчөлөрү менен аба ырайы маалыматын көрсөтөт Бөлүктөр Керектүү: 1. ESP8266 модулу (A