步驟1:軟件
所有你需要的Arduino IDE。
然后你需要SiLabs CP2104驅動程序和ESP8266板卡包。
這允許你的計算機通過內置的UART對ESP進行編程,并允許Arduino IDE對ESP進行編程。
您可以在Adafruit網站上找到有關IDE,驅動程序和電路板包的所有信息。
您還需要Arduino Midi Library才能發送Midi數據。它可以不用,但這只會讓一切變得更容易。
為了與BME280通信,我使用了這個BME280-I2C-ESP32庫。 (這是針對BME280的I2C版本)
而該庫又需要Adafruit統一傳感器驅動程序。這不是我第一次需要這個庫來使用不同的庫而沒有問題,因此我總是將這個庫添加到某處。
步驟2:步驟2:硬件
Al,所以我們最終得到了好東西,硬件。
As提到我使用這個Adafruit ESP,但它應該可以正常使用NodeMCU。我推薦V2版本,因為我相信它在面包板上更合適,你可以從eBay或AliExpress獲得它們非常便宜。我確實喜歡Adafruit ESP具有更快的CPU,帶有用于LiPo的女性JST連接器和充電電路。找出你正在使用的Pin也更容易一些。我相信在NodeMCU上,引腳Labeled D1實際上是GPIO5,所以你總是需要一個Pinout圖表。根本不是一個大問題,但只是方便新手他們如此清楚地標記了Adafruit。
首先讓我們連接BME280,因為這個模型有一些變化。正如你從圖片中看到的那樣,我有一個大洞,但也有一些有2洞。您可以看到它具有4 In和Outputs,1表示電源,1表示接地,SCL和SDA。這意味著它通過I2C進行通信。我相信其他型號通過SPI進行通信。在某些情況下,您可以選擇SPI或I2C。 SPI可能需要不同的庫或至少不同的代碼和不同的布線。我也相信SPI中的S代表Serial,我不能說這是否會干擾這個項目的Midi部分,因為它也可以通過串口連接。
連接這個BME非常簡單。在ESP8266上,您可以看到引腳4和5分別標記為SDA和SCL。只需將這些引腳直接連接到BME上的SDA和SCL引腳即可。當然也可以將VIN連接到面包板的正軌和GND連接到負軌。它們又連接到ESP的3V3和GND引腳。
接下來我們將連接LDR。在Fritzing示例中,您可以看到通過電阻器的3.3伏電壓,然后它被分成LDR和另一個電阻器。然后在LDR之后,它再次分裂為電阻器和ADC。
這是為了保護ESP不會產生過高的電壓,并確保它獲得可讀值。 ADC可以處理0-1伏特,但3V3可以提供3.3伏特。如果你超過1伏特,它可能不會爆炸,但它不能正常工作。
首先我們使用一個使用220和100歐姆電阻的分壓器來降低3.3的電壓到1.031伏特。然后,25k歐姆LDR和1k歐姆電阻形成另一個電壓分壓器,根據LDR的光量,將電壓從1.031到0伏之間降低。
然后我們有雨量傳感器。一部分說FC-37,另一部分說HW-103。我剛剛買了我在Ebay上發現的第一個可以處理3.3和5伏的電壓。 (我認為他們都可以)。
這很簡單,我們可以使用模擬輸出,但我們可以轉動微小的Trimpot使傳感器像我們想要的那樣靈敏(我們已經在ESP上使用了我們的一個模擬引腳。與其他傳感器一樣,我們必須從正軌供電并將其連接到地軌。有時引腳的順序會有所不同。在我的VCC,地面,數字,模擬,但在Fritzing圖片上它是不同的。但是如果你只是注意這應該很容易做對。
最后,Midi Jack。在我的面包板上它不能坐在面包板的邊緣,因為針腳不是全部對齊。如果這讓你煩惱,我會嘗試在實體店里買一塊面包板。或者很好地檢查圖片。
從原理圖中可以看出,正電壓和串行信號都通過一個47歐姆的電阻器。
如果你這樣做以Arduino Uno為例的這個項目確保使用220歐姆的電阻! 這些ESP在3.3 V邏輯上工作,但大多數Arduino使用5.0 V,因此您必須更多地限制通過Midi電纜的電流。
最后將中間引腳連接到接地軌。不使用5 Pin Din中的其他2個引腳。
步驟3:步驟3:代碼
最后我們有代碼!
在這個Zip文件中我放了2個草圖。 ‘LightRainTemp’只是測試所有傳感器并發回它們的值。
(確保打開終端窗口!)
當然我們有LRTGenerativeMidi(LRT代表Light,Rain ,溫度)草圖。
在里面你可以找到一堆關于正在發生的事情的解釋。我不打算介紹我如何編寫整個內容,這需要幾個小時。如果你想知道從哪里開始這樣的事情,我還有其他一些項目。一個小型隨機Riff發生器,帶有幾個按鈕和一個具有一系列我在其他型號上找不到的功能的音序器。
但是我必須先完成設計和編碼。如果您想了解其他項目,請告訴我們。我還沒決定是否會制作更多的instructables或制作視頻系列。
第4步:第4步:連接并測試它!
現在是時候進行測試了!
只需連接Midi線纜,確保將Synth/鍵盤設置為響應通道1或更改Arduino代碼中的通道,看看是否有工作!
我真的好奇地看到并聽到你用它做什么。如果你進行更改,升級,調整(比如光傳感器和溫度值。外面可能效果更好或更差,然后內部)任何東西。
我也很好奇看它是否適用于所有合成。在我的Volca Bass上它完美運行,但是在我的Neutron上,LFO一發送Midi Note就會卡住。我重新啟動時很好,但這很奇怪。我不確定Midi圖書館或我的代碼中是否有某些內容,我可能會在沒有圖書館的情況下盡快做到這一點,看看它是否有所改善。
-
音樂發生器
+關注
關注
0文章
3瀏覽量
5474
發布評論請先 登錄
相關推薦
評論