2010-08-09 73 views
3

我正在尋找控制一些電子伺服的使用耳機端口作爲控制信號。我需要能夠生成一個脈寬調製信號並迅速改變脈衝的寬度。我寧願在C#中這樣做,但也可以選擇C++。任何想法如何去做到這一點?如何生成動態音頻信號

+0

我會擔心音頻輸出的延遲。如果您嘗試進行高速伺服控制,則可能無法正常工作。 – Gabe 2010-08-09 02:24:22

回答

1

你可以看看如何做一個MIDI輸出。

我只用C++完成了這個工作,所以用C#它是用interop,但這裏有一個簡單的介紹。

http://midiio.sapp.org/doc/windowsmidi/

這裏有一些很好的答案,很久以前SO來到到現場了類似的問題。

http://www.groupsrv.com/computers/about164021.html

+0

MIDI在可靠的跨設備音調生成方面並不真實(至少可以這麼說)。我想象一下整個生產線都在下降,罪魁禍首最終被發現是前一天晚上安裝的新聲卡。 – MusiGenesis 2010-08-09 02:14:04

0

這看起來像它可能是你所需要的:(從谷歌上搜索 「C#DSP音頻發生器」 第三項)

編輯

http://www.codeproject.com/KB/audio-video/CS_ToneGenerator.aspx

:如果您需要能夠快速改變音調參數,然後你就進入了軟件綜合的領域。有很多低延遲(基本上是實時的)軟件合成器(Reaktor是我能想到的)。他們都可以管理簡單的音色生成,就像你以後所做的那樣,其中大部分可以由MIDI驅動(這將使MIDI成爲一個可行的選擇,與我剛纔在其他答案的評論中所說的相反)。只要您將它連接到特定的音源/軟件合成器,MIDI就可以。

1

假設你在談論通用型無線電控制伺服系統,你正在談論一個1-2毫秒寬的正向脈衝,脈衝重複頻率爲20-50 Hz。 1毫秒左轉,2毫秒右轉,1.5毫秒居中。脈衝序列上的任何一種抖動都會導致伺服系統的不穩定。

這可能是一個非常困難的規格,以滿足髮卡設計的聲音。

使用外置微控制器生成PWM信號並通過串行端口控制時,您將有更容易的時間。假設我的目標是快速開展工作,我可能會使用Arduino板(Atmel ATMega328,在硬件非常容易的硬件板上)。

+0

Killjoy。您可能認爲您將手機插入的調制解調器也不是好主意。 :) – MusiGenesis 2010-08-09 03:06:43