[DIY]便宜好用-使用耳機孔的IR遙控器(適用可播.WAV的player) 文長圖多

Hi, 我在另一個論譠也做過這種發射器的實驗。雖然能成功由電腦播放訊號去遙控其它電器,但發射距離很短,可能跟發射光度太暗有關。

請問你有沒有用過有學習功能的萬用遙控器呢?
我做這發射器的原意是想備份現有遙控器的訊號,萬一遙控器損壞,也可利用備份資料製作訊號讓萬用遙控器去學習。不過,我經過多番嘗試,都未能令萬用遙控器學習這個發射器發出的訊號。

相關的討論
http://www.hkepc.com/forum/redirect.php?goto=findpost&ptid=1817671&pid=27844118

另外,我用 Excel(2003 或之後版本)的 VBA 寫了個小程式,可用 Audacity 一次過將多個遙控鍵訊號錄製成 Wav 檔,再用我的 VBA 程式將這個大 Wav 檔分割成每個鍵一個 Wav 檔,並且已加上 19kHz carrier。比起用 Audacity 以人手方式一個一個鍵去改方便得多。如果你有興趣,我稍加修改後可以放上網跟大家分享。

CLaw wrote:
Hi, 我在另一個論...(恕刪)


哇!CLaw大 也出現了
在我找資料的過程中 這篇 真的帶給我很大的幫助
真是專業的文章,一定要收藏起來~~

CLaw wrote:
Hi, 我在另一個論...(恕刪)

以為這篇已經沉下去了說...

Hi,CLaw大,我有用L5 Remote(這就是iPhone用的萬用學習型遙控器)將音訊播放的IR遙控訊號學習回去,結果是可行的,不過若是用一般只能播放44.1kHz採用率的player播,學習成功的機率比較低,要多學好幾次,若用電腦播我用76kHz做成的.wav檔則可順利學習成功。
您所用的96kHz採樣率應該不會造成19kHz的carrier失真。
您懷疑是亮度問題,那是否有試過音量調最大或者在做carrier時將振福設定為1?

有快速做wav的方法我當然很有興趣,期待您的分享喔!
基本需求:
1. 略懂 Excel操作
2. 2003 或之後版本的 Excel
3. WinLIRC Audio Receiver(例如KaiserChen大的接收器)
4. KaiserChen大的發射器
5. WinLIRC(非必要,目前最新版本是0.9.0d)

按這裡下載 IRTx.rar,然後把它解壓到一個新資料夾。這壓縮檔包括以下4個檔案:
1. IRTx.xls 主程式檔
2. 19kCosine_1s_44k1.wav 44.1kHz取樣頻率的原始 Wav 檔
3. 19kCosine_1s_48k0.wav 48kHz 取樣頻率的原始 Wav 檔
4. 19kCosine_1s_96k0.wav 96kHz 取樣頻率的原始 Wav 檔

IRTx.xls 是以 Excel VBA 寫成的小程式,用來將 WinLIRC Audio Receiver 錄取到的一連串紅外線遙控器按鍵訊號分拆成已加上 19kHz Sinewave carrier 的獨立 Wav 檔,以供電腦發射遙控訊號之用。

為免散播以 VBA 寫成的病毒,Excel 每次開啟帶有 VBA 程式的檔案時都會提出警告,用家需手動開啟有關的功能。


這 Excel 檔包含多張 Sheet,以下是其中幾張 Sheet 的簡介:
1. Help,各張 Sheet 的簡介
2. Wav2Raw,從 Wav 檔讀取時脈資料
3. Rawcodes2Raw,從 WinLIRC 的 Raw 檔讀取時脈資料
4. Raw2Wav,將時脈資料轉化為帶有 19kHz sinewave carrier 的 Wav 檔

Wav2Raw
首先用 Audacity 錄取各遙控鍵訊號,逐一按每個遙控鍵直至所有鍵都按過,每鍵不要按多過一秒,而每按一鍵和下一鍵之間最少要分隔 0.3 秒。由於 Wav2Raw 只支援單聲道的 Wav 檔,如果錄音時用了立體聲,請先依照下圖所示,按紅圈內「▼」,再按「分離立體聲軌為單聲道」,然後按「X」把多餘的聲道刪除。


然後按「檔案」→「匯出」將聲軌儲存為 8bit 單聲道 Wav 檔(必需是這格式)。檔名方面,建議用遙控器所屬之電器為名,例如我剛才錄取 MagicTV 高清電視機頂盒的遙控器訊,就用 MagicTV.wav 為名存檔。


進入 IRTx.xls 的 Sheet:Wav2Raw,按 Wav2Raw 按鈕後選取剛才存檔的 Wav 檔,Excel 就會計算出每個遙控鍵的時脈資料,當 Progress 出現 Done. XX buttons were found. 字樣即表示已完成。由於本程式是一Byte一Byte的讀取 Wav 檔的內容,所以很花時間,大約要用原來 Wav 檔的 5~10 倍時間才能完成。


Wav2Raw 的 Colum A 是遙控器名稱,會自動填上 Wav 檔的檔名,Colum B 是個別遙控鍵的名稱,請依照之前錄取訊號時的按鍵次序逐一填上名稱,例如 Play、Stop、Record……等等。

Colum C 和 D 是遙控鍵資料的 16 進制及 2 進制數值,可以不理。Colum E 及之後是時脈數值(微秒)。

填好 Colum B 的遙控鍵名稱後就可以由 Row 5 開始,將每一個鍵的資料複製到 Sheet:Raw2Wav,請看稍後 Raw2Wav 的說明。

Rawcodes2Raw
剛才提過用 Wav2Raw 一Byte一Byte 的讀取 Wav 檔是很慢,其實可以有更快的方法。先下載 WinLIRC,有關安裝及基本設定方法,請看我寫的另一篇教學(2a部份)

假設 WinLIRC 已安裝到 C: drive 的 WinLIRC 資料夾,打開命令提示字元(開始→程式集→附屬應用程式→命令提示字元),輸入以下三行指令(輸入每行後要按 Enter 鍵):
c:
cd\winlirc
rawcodes > REMOTENAME.raw

REMOTENAME 是遙控器名稱,例如之前用過的 MagicTV。跟之前一樣,逐一按下每個遙控鍵,最後按 Ctrl-Q 終止 Rawcodes.exe。

進入 IRTx.xls 的 Sheet:Rawcodes2Raw,按 Rawcodes2Raw 按鈕,選擇在 C: drive 的 WinLIRC 資料夾內的 Raw 檔,Excel 就會讀取各鍵的時脈數值,當 A3 格出現 Done! XX buttons were found. 字樣即表示已完成。同之前一樣,在 Colum B 依次序輸入各遙控鍵名稱,然後就可以由 Row 6 開始,將各遙控鍵資料複製到 Sheet:Raw2Wav。


Rawcodes2Raw 比 Wav2Raw 快很多,約十秒就可完成。但也有缺點,WinLIRC 的 Rawcodes.exe 有時(但不是每次)不能一次過讀取太多鍵,後面的鍵可能不被錄取,所以可能要分開幾次去做,每次只錄取二、三十鍵。

Raw2Wav
從 Sheet:Wav2Raw 或 Rawcodes2Raw 將各遙控鍵資料複製入 Sheet:Raw2Wav 的 Row 4 及之下,再選擇取樣頻率(44.1/48/96kHz),然後按 Raw2Wav 按鈕就會逐一產生各遙控鍵的 Wav 檔到 IRTx.xls 所在的資料夾,名遙控鍵的檔名是 ControllerName ButtonName.wav,例如圖中 Row 4 的輸出檔名會是 AkaiDVD AD-Power.wav。如果硬碟內已有這檔案,原有的檔案將被改名,在檔名前加上目前的日期和時間,例如 2012-08-01 19-23-35 AkaiDVD AD-Power.wav。當 B2 格出現 Done. XX wav files were created. 表示已完成。


其它 Sheet 的簡介:
NecRaw2HexBin,針對使用 NEC protocol 的遙控器,將各按鍵的時脈資料轉為 16 進制及 2 進制數值。

NecPulseLength,同樣是針對 NEC protocol 的遙控器,從各按鍵的時脈資料計算出 Header、One、Zero……等等的平均值。除此之外,也可輸出成 WinLIRC 的遙控器設定檔。

其餘各張 Sheet 是我目前收集到的遙控器數據。

KaiserChen大,我的程式沒有輸出 76kHz 取樣頻率功能,但你可先用 Audacity 製作一個一秒長,左右反相的 19kHz sinewave 的 76kHz 取樣頻率 Wav 檔,然後存檔為 8bit 立體聲 Wav 檔(參考上面第三幅圖),用它取代原來的其中一個原始 Wav 檔(例如 19kCosine_1s_44k1.wav),之後用Raw2Wav 時選用相關的取樣頻率(44.1kHz),就能產生 76kHz 取樣頻率的遙控訊號檔。
這篇實在是太受用了~~~~~
感謝分享了~~~~~
不專業不是錯... 但不相信專業就....
真的是很棒的文章喔!
教學步驟都很詳細, 讚啦!
To CLaw大:
小弟使用您的EXCEL VBA轉換時,發現到一個問題,就是無論使用Rawcodes2Raw或Wav2Raw的方式產生出的wav檔,前面一小段的波形似乎都不太正確,但後面大部分的波形都是正確的? 這部分有可能是什麼原因造成的呢?



上方為原始訊號,下方為轉換後抓取的訊號

我試了多組不同遙控器的單一按鍵都是相同的情況而導致無法發射出正確的訊號。
似乎不單是開頭部份有問題,後面的 Pulse 雖然看似一樣,但實際上是上下倒轉了,即是所有 High 和 Low 都反轉了。(不肯定,因為不太看得清圖片)

最可疑之處是原始訊號最開頭部份(下圖藍圈內),波形看起來好像是先向下走,之後立刻向上走,正常應該不會這樣。


你是否用 Mic-in?試試改用 Line-in 錄音。如果一定要用 Mic-in,看看音效驅動程式的設定,如果有軟件音量增益、自動音量控制、去除環境噪音、去除迴音……等等的功能,應該全部都停用。

另外,錄取原始訊號時的音量太大,試試調低音量再錄音,最理想是下圖中間的音量。



目前錄音的確是用Mic in,錄音音量也是調到最大,根據您的建議我明天再來試看看,謝謝CLaw大大的回覆。
關閉廣告
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 9)

今日熱門文章 網友點擊推薦!