如何通過(guò)外部硬件來(lái)控制音量控制
今天我要給大家介紹的是來(lái)自omriharel (GitHub)的“deej”項(xiàng)目。這樣就可以通過(guò)外部硬件控制音量,不僅可以控制整體音量,還可以控制個(gè)人程序或設(shè)備,如揚(yáng)聲器、耳機(jī)或PC上連接的麥克風(fēng)。例如,單個(gè)程序的音量可以獨(dú)立混合。
按如下方式將旋轉(zhuǎn)編碼器連接到Nano上。
旋轉(zhuǎn)編碼器的數(shù)量可以根據(jù)需要變化。其中三個(gè)用于說(shuō)明目的。
軟件
安裝deej
在您的計(jì)算機(jī)上安裝deej軟件,以便它可以相應(yīng)地設(shè)置設(shè)備上的音量。
從項(xiàng)目的GitHub頁(yè)面下載,下載最新版本的deej.exe文件并移動(dòng)到新目錄下。
如果您的計(jì)算機(jī)上安裝的不是Windows操作系統(tǒng),則需要自己編譯該文件。您可以在GitHub存儲(chǔ)庫(kù)中找到更多相關(guān)信息。
單片機(jī)編程
首次使用Nano微控制器,需要先編寫(xiě)CH340的驅(qū)動(dòng)程序。
為了更容易地讀取編碼器值,需要使用encoder .h庫(kù)。這可以像往常一樣通過(guò)集成庫(kù)管理器安裝,也可以作為Arduino IDE中的.zip文件安裝。
通過(guò)在Arduino IDE中選擇正確的板和COM端口下載Nano以下代碼。如果上傳有問(wèn)題,轉(zhuǎn)到Tools>Processor并選擇Atmega328P (Old Bootloader)。
首先,集成編碼器庫(kù)并創(chuàng)建編碼器的對(duì)象。在setup()中初始化串行監(jiān)視器。在下面的循環(huán)()中,確定編碼器位置,如果需要,將其限制在10位值范圍內(nèi)。由于編碼器每旋轉(zhuǎn)包含32步,因此值乘以50的因數(shù)。然后通過(guò)串行接口將這些數(shù)據(jù)以指定的格式傳輸?shù)接?jì)算機(jī)。
通過(guò)在Arduino IDE中打開(kāi)串行監(jiān)視器并檢查當(dāng)編碼器轉(zhuǎn)動(dòng)時(shí)監(jiān)視器中的值是否相應(yīng)變化來(lái)測(cè)試設(shè)置。
軟件配置
一旦硬件測(cè)試成功,現(xiàn)在就可以配置軟件,在后臺(tái)通過(guò)串行端口讀取這些值。
為此,創(chuàng)建配置。使用任何編輯器在前面創(chuàng)建的目錄中創(chuàng)建Yaml文件(或者,這里的示例文件可以從這里下載)。
該配置文件包含以下5個(gè)配置項(xiàng):
?slider_mapping
相應(yīng)的功能在這里被分配給編碼器。以下功能是可能的:
?主控一般音量
麥克風(fēng):控制連接的麥克風(fēng)/輸入設(shè)備
程序名。exe:控制指定程序的音量
deej。Unmapped:控制所有未使用上述命令選擇的程序
deej。當(dāng)前:控制當(dāng)前程序的音量(打開(kāi)和窗口打開(kāi))
Speaker (xyz):控制指定的設(shè)備,必須指定整個(gè)顯示名稱。輸入和輸出設(shè)備都可以使用。
system:控制Windows系統(tǒng)卷
例子:
slider_mapping:
0:主
1: spotify.exe
2: deej.current
多個(gè)功能也可以分配給一個(gè)通道。簡(jiǎn)單地使用如下列表:
x:
函數(shù)1
功能2
注意:對(duì)于多行yaml配置部分,請(qǐng)注意縮進(jìn)!
invert_sliders
該命令用于改變方向。這意味著0% - 100% <=> 100% - 0%
例子:
invert_sliders:假
com_port
這里必須指定微控制器的串行COM端口。這可以在Arduino IDE或Windows設(shè)備管理器中確定。
例子:
com_port: COM6
baud_rate
串行通信的速度必須與通過(guò)serial .begin()設(shè)置的速度匹配。
例如:baud_rate: 9600
noise_reduction
此設(shè)置項(xiàng)僅在使用電位器而不是旋轉(zhuǎn)編碼器時(shí)才重要,因?yàn)檫@可以補(bǔ)償ADC的值波動(dòng),即所謂的噪聲。
設(shè)置選項(xiàng):高;違約;低
例子:
noise_reduction:高
最后,您可以用3D打印機(jī)打印一個(gè)支架來(lái)測(cè)試編碼器與面包板的結(jié)合。這是一個(gè)簡(jiǎn)單的支架,可以快速打印并連接到面包板上。歡迎您根據(jù)您的想法在CAD程序中調(diào)整模型。
結(jié)論
現(xiàn)在你可以使用三個(gè)旋轉(zhuǎn)編碼器來(lái)改變整體音量,Spotify的音量和你目前使用的程序的音量。您還可以添加更多的旋轉(zhuǎn)編碼器來(lái)單獨(dú)控制更多的程序或設(shè)備。許多擴(kuò)展和修改是可能的,這里沒(méi)有限制你的創(chuàng)造力。
本文編譯自hackster.io