精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>具有顏色選擇的音頻頻譜可視化器

具有顏色選擇的音頻頻譜可視化器

2022-11-04 | zip | 0.05 MB | 次下載 | 2積分

資料介紹

描述

我對可尋址的“Neopixel”RGB LED 的可能性很感興趣。我想學習如何控制它們并在具有挑戰性的項目中使用它們。我讀過一些使用 LED 陣列和矩陣來表示音頻頻譜的項目,就像圖形均衡器上的照明顯示器一樣。

我想到了一些不同的東西。一個垂直的 LED 串怎么樣,低頻在底部,高頻在頂部,每個頻段的幅度會顯示為每個 LED 的亮度?然后音樂將沿著這條弦“跳動”。我當然不是第一個想到或執行它的人,但我還沒有看到這個特定的應用程序。

如果 LED 的亮度由音樂控制,LED 的顏色可以由設備的用戶設置嗎?

這個怎么運作

該設備的電路和代碼以兩種模式運行。這些模式是通過前面板右側的模式開關選擇的。當模式開關在左側位置時,顏色設置模式被激活。

顏色設置模式允許用戶使用 5 個電位器設置 LED 燈條的顏色范圍。具體來說,從左到右,電位器調整:

1.數值——LED燈帶的整體亮度

2. 飽和度 - 此設置逐漸在鮮艷的色彩和純白色之間轉換色調

3. 頂部色調 - 指定 LED 燈條頂部的色調(顏色)

4. 底部色調 - 指定 LED 燈條底部的色調(顏色)

當 LED 燈帶包含多個 Hue 時,顏色順序始終遵循色譜的順序:紅色、橙色、黃色、綠色、藍色、紫色。

要為整個 LED 燈條選擇一個色調,只需將頂部色調和底部色調電位器放在相同的位置。

5. Spread - 控制色相沿 LED 燈條的分布范圍,從集中在中間到“聚集”在兩端。

我使用色相、飽和度和值 (HSV) 顏色模型來控制 LED,而不是 RGB 參數,因為 HSV 直接產生我想要的效果。本文解釋并比較了 HSV 和 RGB 顏色模型。幸運的是,代碼中使用的 Adafruit Neopixel 庫同時支持 RGB 和 HSV。

當模式開關處于右側位置時,FFT 模式被激活。在這種模式下,電位器被禁用。

FFT(快速傅立葉變換)模式接受來自音樂播放器耳機連接的輸入。使用 FFT,它計算每個頻帶的 HSV 設置的值(亮度)部分。然后它將這個值參數與用戶選擇的顏色組合起來,并將它們發送到適當的 LED。本文對傅里葉變換進行了簡單易懂的解釋。實際的計算超出了我的想象,但慷慨的 Arduino 社區再次以 ArduinoFFT 庫的形式提供了救援。

電路

電路原理

poYBAGNkWfqADy-ZAAFMRYhHfSY975.png
?

在此圖中,標記為 Arduino Nano (Rev3.0) 的設備實際上是一個 Arduino Nano Every。

標有電壓調節器 5V 的設備實際上是一個 5V 降壓轉換器9VDC 墻上適配器通過其 Vin 引腳為 Nano 供電,并為降壓轉換器供電。降壓轉換器的作用是為 LED 燈條提供 5V 電源Nano 通過引腳 D3 與 LED 燈條通信

我使用了這個項目中詳述的音頻輸入電路(在圖的左上角):

該電路使用 Nano 的 REF 和 3.3V 引腳,并饋入 A0 模擬輸入。

五個電位器用于設置 LED 燈條的顏色和顏色范圍。代碼部分描述了這五種設置。它們由 Nano 的模擬輸入 A1 到 A5 讀取。

模式開關用于選擇顏色設置或 FFT 模式。開關位置在 Nano 的 D2 引腳上讀取。

Fritzing 文件可在下面的原理圖部分下載

面包板組裝

pYYBAGNkWf2AX8fuAAPS5IThiEo586.png
?

我為那些想像我一樣探索和修改電路的人提供了這張圖。面包板也是測試代碼和所有組件的最不令人沮喪的方式。Fritzing 文件可在下面的原理圖部分下載。

同樣,看起來像穩壓器的設備實際上是一個 5V 降壓轉換器。表示為 Arduino Nano(Rev3.0)的控制器實際上是 Arduino Nano Every。所有紅線承載 5V,橙色線承載 9V,黑線接地。

原型板和盒子組裝

pYYBAGNkWgCAHD4MAAINgLuYxPk646.png
?

該圖可在下面的“原理圖”部分下載。圖示的板比我使用的板大,但它讓我能夠更清楚地說明布局。

poYBAGNkWgWAe5dCAAupJj4bh8Y610.jpg
?

通過豎起電阻器并將穿孔中的一些連接加倍,我能夠將組件擠壓到 7cm x 3cm 板上。它非常適合我選擇的外殼,有足夠的空間可供使用。

Nano 的位置使其 USB 連接器略微懸垂在電路板邊緣。我在外殼上切了一個檢修孔,我可以通過它連接 USB 電纜。這讓我可以在不移除 Nano 的情況下重新編程

我最初使用橡膠粘合劑將 Nano 直接放置在板上,直到焊點將其固定到位。

我決定在電路板和面板安裝組件之間安裝 JST 連接器。對于原型而言,這似乎過于熱心,但有時間,我只是想熟悉這些連接器。我也懷疑我最終會想要重新安排一些事情。

pYYBAGNkWgyAK3ypAAwhiUwTF0E132.jpg
?

我在“定制零件和外殼”部分包含了我的施工圖。這些可以節省您測量、定位和安裝組件的時間。您還可以使用它們打印控件的符號。

poYBAGNkWhGAEzO-AAfPgEemQb8054.jpg
?

這張照片顯示了 LED 柱組件的底座。該項目要求 LED 燈條包含 29 個 LED。LED燈條的背面是自粘的,所以我把它粘在一塊1/2”x1/8”的鋁條上。我想擴散 LED 的光,我想到了氯丁橡膠管。它通常具有半透明的白色。我發現這種內徑為 12 毫米的管子非常適合燈條和 LED 燈條。光線尚未擴散到我喜歡的程度,我將嘗試使用其他材料。我的大女兒,一位藝術家,建議使用聚酯薄膜。

編碼

我幾乎在每一行代碼中都添加了注釋,以便在我學到的時候向自己解釋。所以在這里,我將更籠統地描述它。

與 LED 燈條通信

該代碼使用 Adafruit NeoPixel 庫與 LED 燈條進行通信。以下是圖書館圖書館用戶指南的鏈接。

主循環的結構

主循環分為兩個循環;顏色設置循環和 FFT 循環。模式開關的位置決定了哪個循環處于活動狀態。循環由讀取開關位置的“while”語句控制。

void loop() 
while (digitalRead(modeSwitchPin)==LOW){
//Colour Setting code goes here because the mode switch is in the LOW (Colour Set) position.
}
//FFT code goes here because the mode switch is in the HIGH (FFT) position, outside “while” loop.
//If the mode switch is moved to LOW (Colour Set), reset Nano to re-initialize variables and memory.
if (digitalRead(modeSwitchPin)==LOW){
resetFunc();
}
}

當模式開關處于顏色設置位置 (LOW) 時,顏色設置代碼將保持循環。

只要將模式開關撥到 FFT 位置 (HIGH),“while”循環就會中斷,FFT 代碼就會開始循環。

當模式開關再次輕彈到顏色設置位置時,軟復位功能被激活,重新初始化 Nano 并允許顏色設置代碼再次開始循環。

我包含了軟重置功能,因為顏色設置代碼在 FFT 代碼運行后拒絕運行。我不知道為什么會發生這種情況,但是軟重置有效。

發送到 LED 燈條的所有指令都采用 RGB 標準的格式 strip.setPixelColor()。但是,我選擇使用 HSV 參數設置顏色,然后將它們轉換為 RGB。

顏色設置模式:傳播調整

這個特性需要一些解釋。我添加了這個調整,因為我想改變沿 LED 燈帶的色調分布,從集中在中間到“聚集”在兩端。我將 sigmoid 曲線(也稱為 s 曲線)公式應用于色調范圍。

k=analogRead(kPin); //read k pot, 0-1023

該行讀取Spread 電位器的位置。

hueSig[i] = hueMax/(1+(pow(2.718,(0-(k/4000000))*(hue-(hueMax/2))))); //apply s-curve

在這條線中,Spread 電位器 (k) 的值用于調整 S 形曲線的斜率,從而改變每個 LED 的色調。然后每個 LED 的色調變為 hueSig[i]。順便說一句,我通過實驗得出了 4000000 的值。

本文解釋了 sigmoid 曲線。我在文章的開頭使用了基本方程。

FFT 模式

我當然沒有在這里發明任何東西。感謝 Chris Parker 分享他的設計代碼。我還借鑒了Arduino FFT 庫文檔中的示例。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費