資料介紹
描述
我對可尋址的“Neopixel”RGB LED 的可能性很感興趣。我想學(xué)習(xí)如何控制它們并在具有挑戰(zhàn)性的項(xiàng)目中使用它們。我讀過一些使用 LED 陣列和矩陣來表示音頻頻譜的項(xiàng)目,就像圖形均衡器上的照明顯示器一樣。
我想到了一些不同的東西。一個(gè)垂直的 LED 串怎么樣,低頻在底部,高頻在頂部,每個(gè)頻段的幅度會顯示為每個(gè) LED 的亮度?然后音樂將沿著這條弦“跳動(dòng)”。我當(dāng)然不是第一個(gè)想到或執(zhí)行它的人,但我還沒有看到這個(gè)特定的應(yīng)用程序。
如果 LED 的亮度由音樂控制,LED 的顏色可以由設(shè)備的用戶設(shè)置嗎?
這個(gè)怎么運(yùn)作
該設(shè)備的電路和代碼以兩種模式運(yùn)行。這些模式是通過前面板右側(cè)的模式開關(guān)選擇的。當(dāng)模式開關(guān)在左側(cè)位置時(shí),顏色設(shè)置模式被激活。
顏色設(shè)置模式允許用戶使用 5 個(gè)電位器設(shè)置 LED 燈條的顏色范圍。具體來說,從左到右,電位器調(diào)整:
1.數(shù)值——LED燈帶的整體亮度
2. 飽和度 - 此設(shè)置逐漸在鮮艷的色彩和純白色之間轉(zhuǎn)換色調(diào)
3. 頂部色調(diào) - 指定 LED 燈條頂部的色調(diào)(顏色)
4. 底部色調(diào) - 指定 LED 燈條底部的色調(diào)(顏色)
當(dāng) LED 燈帶包含多個(gè) Hue 時(shí),顏色順序始終遵循色譜的順序:紅色、橙色、黃色、綠色、藍(lán)色、紫色。
要為整個(gè) LED 燈條選擇一個(gè)色調(diào),只需將頂部色調(diào)和底部色調(diào)電位器放在相同的位置。
5. Spread - 控制色相沿 LED 燈條的分布范圍,從集中在中間到“聚集”在兩端。
我使用色相、飽和度和值 (HSV) 顏色模型來控制 LED,而不是 RGB 參數(shù),因?yàn)?HSV 直接產(chǎn)生我想要的效果。本文解釋并比較了 HSV 和 RGB 顏色模型。幸運(yùn)的是,代碼中使用的 Adafruit Neopixel 庫同時(shí)支持 RGB 和 HSV。
當(dāng)模式開關(guān)處于右側(cè)位置時(shí),F(xiàn)FT 模式被激活。在這種模式下,電位器被禁用。
FFT(快速傅立葉變換)模式接受來自音樂播放器耳機(jī)連接的輸入。使用 FFT,它計(jì)算每個(gè)頻帶的 HSV 設(shè)置的值(亮度)部分。然后它將這個(gè)值參數(shù)與用戶選擇的顏色組合起來,并將它們發(fā)送到適當(dāng)?shù)?LED。本文對傅里葉變換進(jìn)行了簡單易懂的解釋。實(shí)際的計(jì)算超出了我的想象,但慷慨的 Arduino 社區(qū)再次以 ArduinoFFT 庫的形式提供了救援。
電路
電路原理圖
在此圖中,標(biāo)記為 Arduino Nano (Rev3.0) 的設(shè)備實(shí)際上是一個(gè) Arduino Nano Every。
標(biāo)有電壓調(diào)節(jié)器 5V 的設(shè)備實(shí)際上是一個(gè) 5V 降壓轉(zhuǎn)換器。9VDC 墻上適配器通過其 Vin 引腳為 Nano 供電,并為降壓轉(zhuǎn)換器供電。降壓轉(zhuǎn)換器的作用是為 LED 燈條提供 5V 電源。Nano 通過引腳 D3 與 LED 燈條通信。
我使用了這個(gè)項(xiàng)目中詳述的音頻輸入電路(在圖的左上角):
該電路使用 Nano 的 REF 和 3.3V 引腳,并饋入 A0 模擬輸入。
五個(gè)電位器用于設(shè)置 LED 燈條的顏色和顏色范圍。代碼部分描述了這五種設(shè)置。它們由 Nano 的模擬輸入 A1 到 A5 讀取。
模式開關(guān)用于選擇顏色設(shè)置或 FFT 模式。開關(guān)位置在 Nano 的 D2 引腳上讀取。
Fritzing 文件可在下面的原理圖部分下載。
面包板組裝
我為那些想像我一樣探索和修改電路的人提供了這張圖。面包板也是測試代碼和所有組件的最不令人沮喪的方式。Fritzing 文件可在下面的原理圖部分下載。
同樣,看起來像穩(wěn)壓器的設(shè)備實(shí)際上是一個(gè) 5V 降壓轉(zhuǎn)換器。表示為 Arduino Nano(Rev3.0)的控制器實(shí)際上是 Arduino Nano Every。所有紅線承載 5V,橙色線承載 9V,黑線接地。
原型板和盒子組裝
該圖可在下面的“原理圖”部分下載。圖示的板比我使用的板大,但它讓我能夠更清楚地說明布局。
通過豎起電阻器并將穿孔中的一些連接加倍,我能夠?qū)⒔M件擠壓到 7cm x 3cm 板上。它非常適合我選擇的外殼,有足夠的空間可供使用。
Nano 的位置使其 USB 連接器略微懸垂在電路板邊緣。我在外殼上切了一個(gè)檢修孔,我可以通過它連接 USB 電纜。這讓我可以在不移除 Nano 的情況下重新編程。
我最初使用橡膠粘合劑將 Nano 直接放置在板上,直到焊點(diǎn)將其固定到位。
我決定在電路板和面板安裝組件之間安裝 JST 連接器。對于原型而言,這似乎過于熱心,但有時(shí)間,我只是想熟悉這些連接器。我也懷疑我最終會想要重新安排一些事情。
我在“定制零件和外殼”部分包含了我的施工圖。這些可以節(jié)省您測量、定位和安裝組件的時(shí)間。您還可以使用它們打印控件的符號。
這張照片顯示了 LED 柱組件的底座。該項(xiàng)目要求 LED 燈條包含 29 個(gè) LED。LED燈條的背面是自粘的,所以我把它粘在一塊1/2”x1/8”的鋁條上。我想擴(kuò)散 LED 的光,我想到了氯丁橡膠管。它通常具有半透明的白色。我發(fā)現(xiàn)這種內(nèi)徑為 12 毫米的管子非常適合燈條和 LED 燈條。光線尚未擴(kuò)散到我喜歡的程度,我將嘗試使用其他材料。我的大女兒,一位藝術(shù)家,建議使用聚酯薄膜。
編碼
我?guī)缀踉诿恳恍写a中都添加了注釋,以便在我學(xué)到的時(shí)候向自己解釋。所以在這里,我將更籠統(tǒng)地描述它。
與 LED 燈條通信
該代碼使用 Adafruit NeoPixel 庫與 LED 燈條進(jìn)行通信。以下是圖書館和圖書館用戶指南的鏈接。
主循環(huán)的結(jié)構(gòu)
主循環(huán)分為兩個(gè)循環(huán);顏色設(shè)置循環(huán)和 FFT 循環(huán)。模式開關(guān)的位置決定了哪個(gè)循環(huán)處于活動(dòng)狀態(tài)。循環(huán)由讀取開關(guān)位置的“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();
}
}
當(dāng)模式開關(guān)處于顏色設(shè)置位置 (LOW) 時(shí),顏色設(shè)置代碼將保持循環(huán)。
只要將模式開關(guān)撥到 FFT 位置 (HIGH),“while”循環(huán)就會中斷,F(xiàn)FT 代碼就會開始循環(huán)。
當(dāng)模式開關(guān)再次輕彈到顏色設(shè)置位置時(shí),軟復(fù)位功能被激活,重新初始化 Nano 并允許顏色設(shè)置代碼再次開始循環(huán)。
我包含了軟重置功能,因?yàn)轭伾O(shè)置代碼在 FFT 代碼運(yùn)行后拒絕運(yùn)行。我不知道為什么會發(fā)生這種情況,但是軟重置有效。
發(fā)送到 LED 燈條的所有指令都采用 RGB 標(biāo)準(zhǔn)的格式 strip.setPixelColor()。但是,我選擇使用 HSV 參數(shù)設(shè)置顏色,然后將它們轉(zhuǎn)換為 RGB。
顏色設(shè)置模式:傳播調(diào)整
這個(gè)特性需要一些解釋。我添加了這個(gè)調(diào)整,因?yàn)槲蚁敫淖冄?LED 燈帶的色調(diào)分布,從集中在中間到“聚集”在兩端。我將 sigmoid 曲線(也稱為 s 曲線)公式應(yīng)用于色調(diào)范圍。
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) 的值用于調(diào)整 S 形曲線的斜率,從而改變每個(gè) LED 的色調(diào)。然后每個(gè) LED 的色調(diào)變?yōu)?hueSig[i]。順便說一句,我通過實(shí)驗(yàn)得出了 4000000 的值。
本文解釋了 sigmoid 曲線。我在文章的開頭使用了基本方程。
FFT 模式
我當(dāng)然沒有在這里發(fā)明任何東西。感謝 Chris Parker 分享他的設(shè)計(jì)和代碼。我還借鑒了Arduino FFT 庫文檔中的示例。
- 使用Arduino制作32波段音頻頻譜分析儀/可視化儀
- 基于樹莓派的音頻頻譜圖可視化設(shè)備 3次下載
- 超簡單的音樂頻譜可視化器
- 使用Raspberry Pi的音頻可視化器
- RGB 32波段音頻頻譜展示臺
- Python數(shù)據(jù)可視化編程實(shí)戰(zhàn) 29次下載
- 基于HONSOR的3D可視化智慧檔案館白皮書 20次下載
- 綜述知識圖譜的數(shù)據(jù)模型和可視化技術(shù) 4次下載
- 綜述知識圖譜的數(shù)據(jù)模型和可視化技術(shù) 16次下載
- 教育大數(shù)據(jù)可視化分析研究的綜合分析 108次下載
- 衛(wèi)星載荷可視化仿真分析平臺設(shè)計(jì)方案 30次下載
- 柔性動(dòng)態(tài)可視化在醫(yī)學(xué)圖像可視化中應(yīng)用 0次下載
- 單片機(jī)實(shí)現(xiàn)音頻頻譜顯示的快速算法研究 12次下載
- 基于現(xiàn)場總線技術(shù)的可視化監(jiān)控冗余系統(tǒng)
- VegaGIS可視化系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
- 使用樹莓派Pico開發(fā)板制作實(shí)時(shí)音頻光譜圖可視化器 1368次閱讀
- 幾款好用的可視化工具推薦 971次閱讀
- 詳解圖形繪制和可視化 643次閱讀
- 啟動(dòng)仿真軟件WinCC Runtime Advanced測試可視化功能 6652次閱讀
- 如何利用樹莓派的手勢控制全息音頻可視化器 2256次閱讀
- 為什么要可視化圖 大規(guī)模圖可視化攻略方案 4446次閱讀
- 外置式音頻頻譜顯示器電路 6860次閱讀
- 堡盟推出新款VeriSens XF系列視覺傳感器可自動(dòng)實(shí)現(xiàn)3D識別與可視化 1303次閱讀
- 如何把握設(shè)計(jì)與功能之間的平衡,創(chuàng)建出簡潔直觀的可視化圖像? 3079次閱讀
- 如何對MCU程序中的數(shù)據(jù)進(jìn)行可視化 5861次閱讀
- 數(shù)據(jù)可視化,不僅僅是統(tǒng)計(jì)圖表 6009次閱讀
- 實(shí)現(xiàn)海量數(shù)據(jù)分析及可視化的簡便方法 4991次閱讀
- CNN可視化理解的最新綜述 1.1w次閱讀
- 可視化策略的數(shù)據(jù)分析 4315次閱讀
- 基于MSP430的FM音頻頻譜分析儀的設(shè)計(jì)方案 3118次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多