2010-09-24 53 views
0

我正在尋找一個Arduino腳本,它使用任何音頻信號發送到揚聲器來創建物理可視化。在Windows中訪問音頻

Arduino通過USB連接到Windows機器只有,所以我需要使用USB來找出發送給揚聲器的內容。我如何獲取這些信息?

+0

不知道我理解爲什麼這個問題是Windows特定...你不只是要監視來自計算機(或哪些事項的任何設備),電線上的電信號到揚聲器? – mac 2010-09-24 14:36:33

+0

我已經這樣做了,但我想做一個USB選項。所以我需要以某種方式訪問​​到耳機插孔的信號。 – 2010-09-25 02:31:54

+0

好的,明白了......不幸的是我不使用窗戶,所以我無法幫助。 – mac 2010-09-27 15:10:00

回答

0

沒有接口的音頻信號到一個Arduino沒有一些外部硬件一個很好的辦法。

一種方式做到這一點,雖然是將音頻線與電容連接至偏壓針,那麼你可以直接使用ADC。會有非常可怕的動態範圍,但它只需要3個無源部件。在進入ADC引腳之前通過運算放大器來運行,可以顯着改善動態範圍並提供過濾機會(見下文)。或者,您可以打開片上基準電壓源(通常爲1-1.5 V)而不是主電源。

這不要緊,多爲直可視化,但採樣率不會好到足以捕獲音頻的全光譜內容(除了可憐的動態範圍分辨率)。默認的Arduino採樣率是10 kHz(-ish ...可能是異步的),所以如果你的信號低於5 kHz,你將只能得到有效的數據,否則別名會混淆它。 (如果您爲ATmega32P編寫自己的模擬驅動程序,則可以使用8位採樣獲得高達76 kHz的採樣率)

然後,要實際將該數據傳送到計算機,您可以很容易地將所有這些ADC值用於計算機接收並處理它認爲合適的UART。 ATmega將不具備即時計算FFT的能力(無論如何,你幾乎總是這樣做)。或者要跳過所有這些,將音頻信號連接到電腦的聲卡(或USB聲卡......他們很不錯),並使用一些音頻驅動程序。

1

截至目前,Arduino只能通過USB通過serial與計算機進行通信。新的Arduino Uno改變了事情,但這些例子還沒有公佈,以顯示如何將新的Arduino作爲其他USB設備。

你必須爲你想它只是通過USB連接寫點東西的Windows中監測的系統音頻和通過串口發送信息約其到Arduino,只要。

0

有一個Java庫,用於處理被稱爲ESS允許您訪問音頻輸出。