機器人/元件/音訊
機器人的音訊元件是那些允許它發出聲音的部件,無論是用於娛樂目的還是傳遞資訊。
這可以透過簡單的音效晶片來實現:廉價的積體電路,允許用極少的外部元件播放特定的聲音。這些通常用於玩具。
其他方法包括儲存樣本的儲存晶片、DAC 和放大器、MP3 播放器或行動式電腦上的語音合成軟體。
生成簡單的聲音很容易。你只需要一個頻率在 20 到 20,000Hz 之間的振盪器、一個放大器和一個揚聲器。這樣的電路可以產生人類可以聽到的任何音調。透過改變振盪器的頻率,你可以改變發出的音調。Qbasic 有一個命令可以做到這一點:sound。Sound 讓你指定一些引數,其中最重要的是頻率。透過改變這個頻率隨時間的變化,可以產生簡單的音效。
一種更好的產生聲音的方法是取樣
聲波的強度隨時間變化。麥克風(帶前置放大器)可以將這種強度轉換為具有相同形狀的電訊號。模數轉換器 (ADC) 可以將這個電訊號轉換為數字。然而,這不是一個連續的過程,而是一個離散的過程,這意味著每隔 x 毫秒測量訊號的幅度(電壓或電流)並將其轉換為數字。這將導致原始訊號的數字近似。這個近似值的好壞取決於對訊號進行取樣的頻率。當然,更多的樣本意味著消耗更多的儲存空間,也需要更昂貴的硬體。ADC 的價格取決於精度(有多少位表示樣本)以及它每秒可以採集多少樣本(還有更多引數,但對於這本書來說,這些引數超出了範圍)。
現在你有一系列數字。當然,現在你想把這個陣列恢復成聲音。這是透過數模轉換器 (DAC) 完成的。這部分將數字值轉換回電訊號。在 DAC 之後,有一個濾波器來平滑波形,一個放大器和一個揚聲器。以與它們取樣相同的速率,將陣列樣本逐個送入 DAC,你就會聽到原始的聲音。
這種方法的優點是它的(相對)簡單性。缺點是它會佔用大量的記憶體。
更高階的方法是儲存編碼後的聲音(例如 MP3)。這更棘手,因為它需要解碼器,但現在已經有包含完整 MP3 解碼器的積體電路,這使得它成為一個值得關注的方法。
本節應涵蓋有關這些電路和 IC 的一些基本資訊
當需要放大幅度很小的訊號時,使用前置放大器。前置放大器非常線性(它們在訊號中產生的失真非常小),但效率非常低。它們放大來自例如麥克風的訊號,該訊號的幅度通常為 1mV 或更小,使其達到更實用的 100mV 及以上。由於它們的效率如此之低,前置放大器電路不用於功率放大器。
放大器允許低功率訊號透過揚聲器以相當大的功率輸出。為了保持功率,放大器通常允許訊號產生一些失真。(除了 A 類放大器,它們消耗大量功率,但失真很小)。
放大器可以用 IC、分立元件或模組來構建。
模數轉換器(簡稱:ADC)將模擬訊號轉換為數字值。ADC 有一定的精度,以位表示,例如 8 位、10 位和 16 位。這意味著 ADC 將有一個具有 8 位、10 位和 16 位的二進位制數。此二進位制數所表示的最高值對應於施加在 ADC 特殊輸入上的參考電壓。例如,如果我們有一個 8 位 ADC,並且我們在這個特殊輸入上施加 5V,那麼值 255 表示 5V。它的精度將是 1/255 * 5 V 或 0.02V。每次我們在二進位制數中加 1,表示的電壓就會增加 0.02V。
關於 ADC 的第二個要點是它們的時序。ADC 需要一些時間來完成轉換。它們越快,對訊號進行數字化的精度就越高(或者換句話說,訊號的頻率可以越高),價格也越貴。
DAC 將數字值轉換為電壓電平。它們要麼使用參考電壓,要麼使用“軌到軌”,這意味著它們的最高數字輸入值表示與 DAC 供電電壓(幾乎)相等的電壓電平。與 ADC 相似,DAC 有一定的精度,以位表示,並且需要一些時間來完成轉換。
振盪器產生重複的訊號。這可以是幾乎任何你想要的形狀,但最常見的形狀是正弦波、方波、鋸齒波和三角波,以及許多不同的脈衝形式。
有許多專門為產生音效而設計的 IC。
- 振盪器:這些輸出具有使用者可定義頻率的訊號。透過改變頻率,你可以製造出不同的音效。
- 音效晶片:這些輸出特定的音效(例如,電機聲音)。這些是不可改變的。
- 聲音錄製和播放晶片:這些可以記錄短暫的聲音(有些可以記錄多個不同的樣本),並且可以稍後播放這些樣本。