資料介紹
描述
我對可尋址的“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 庫的形式提供了救援。
電路
電路原理圖
在此圖中,標記為 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 文件可在下面的原理圖部分下載。
面包板組裝
我為那些想像我一樣探索和修改電路的人提供了這張圖。面包板也是測試代碼和所有組件的最不令人沮喪的方式。Fritzing 文件可在下面的原理圖部分下載。
同樣,看起來像穩壓器的設備實際上是一個 5V 降壓轉換器。表示為 Arduino Nano(Rev3.0)的控制器實際上是 Arduino Nano Every。所有紅線承載 5V,橙色線承載 9V,黑線接地。
原型板和盒子組裝
該圖可在下面的“原理圖”部分下載。圖示的板比我使用的板大,但它讓我能夠更清楚地說明布局。
通過豎起電阻器并將穿孔中的一些連接加倍,我能夠將組件擠壓到 7cm x 3cm 板上。它非常適合我選擇的外殼,有足夠的空間可供使用。
Nano 的位置使其 USB 連接器略微懸垂在電路板邊緣。我在外殼上切了一個檢修孔,我可以通過它連接 USB 電纜。這讓我可以在不移除 Nano 的情況下重新編程。
我最初使用橡膠粘合劑將 Nano 直接放置在板上,直到焊點將其固定到位。
我決定在電路板和面板安裝組件之間安裝 JST 連接器。對于原型而言,這似乎過于熱心,但有時間,我只是想熟悉這些連接器。我也懷疑我最終會想要重新安排一些事情。
我在“定制零件和外殼”部分包含了我的施工圖。這些可以節省您測量、定位和安裝組件的時間。您還可以使用它們打印控件的符號。
這張照片顯示了 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 庫文檔中的示例。
- 使用Arduino制作32波段音頻頻譜分析儀/可視化儀
- 基于樹莓派的音頻頻譜圖可視化設備 3次下載
- 超簡單的音樂頻譜可視化器
- 使用Raspberry Pi的音頻可視化器
- RGB 32波段音頻頻譜展示臺
- Python數據可視化編程實戰 29次下載
- 基于HONSOR的3D可視化智慧檔案館白皮書 20次下載
- 綜述知識圖譜的數據模型和可視化技術 4次下載
- 綜述知識圖譜的數據模型和可視化技術 16次下載
- 教育大數據可視化分析研究的綜合分析 108次下載
- 衛星載荷可視化仿真分析平臺設計方案 30次下載
- 柔性動態可視化在醫學圖像可視化中應用 0次下載
- 單片機實現音頻頻譜顯示的快速算法研究 12次下載
- 基于現場總線技術的可視化監控冗余系統
- VegaGIS可視化系統的設計和實現
- 使用樹莓派Pico開發板制作實時音頻光譜圖可視化器 1368次閱讀
- 幾款好用的可視化工具推薦 971次閱讀
- 詳解圖形繪制和可視化 643次閱讀
- 啟動仿真軟件WinCC Runtime Advanced測試可視化功能 6652次閱讀
- 如何利用樹莓派的手勢控制全息音頻可視化器 2256次閱讀
- 為什么要可視化圖 大規模圖可視化攻略方案 4446次閱讀
- 外置式音頻頻譜顯示器電路 6860次閱讀
- 堡盟推出新款VeriSens XF系列視覺傳感器可自動實現3D識別與可視化 1303次閱讀
- 如何把握設計與功能之間的平衡,創建出簡潔直觀的可視化圖像? 3079次閱讀
- 如何對MCU程序中的數據進行可視化 5861次閱讀
- 數據可視化,不僅僅是統計圖表 6009次閱讀
- 實現海量數據分析及可視化的簡便方法 4991次閱讀
- CNN可視化理解的最新綜述 1.1w次閱讀
- 可視化策略的數據分析 4315次閱讀
- 基于MSP430的FM音頻頻譜分析儀的設計方案 3118次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多