低成本、超簡單之DVB-T數位電視天線製作

低成本、超簡單之DVB-T數位電視天線製作
文∕趙英傑

拜讀Mobile01網站上的DIY數位電視天線教學之後,我也趁著中秋假期DIY了一個雙菱形天線。製作原理和Mobile01的大大相同,只是計算數據不太一樣。

數位電視天線

天線的作用是捕捉特定頻率的電波。當天線的長度等於電波的波長時,天線將和電波達成共振,收訊效果(感度)最好。

不過,天線的長度通常不取全波長,而是波長的一半或四分之一等數值,以便減少天線的體積。例如,在有線電視普及之前,家家戶戶樓頂的電視天線(亦即:魚骨天線),就是採半波長。

然而,每個電視頻道的發射頻率∕波長都不同,天線的長度理當隨之改變。那麼,收視10個頻道就要準備10支長短不一的天線,毫無實用性可言。

計算頻率與波長

在實作上,天線的長度通常取收視頻率範圍的中間值。以台灣的DVB-T數位頻道為例,根據「DTVC 社團法人台灣數位電視協會」的頻率表數據,最低頻率為530MHz,最高則是596MHz,因此,中間的頻率值為566MHz:

中間的頻率值為566MHz

電磁波的速度等於光速,每秒29.97925萬公里,大約是30萬公里∕秒,在這個速度下,每秒約可繞行地球七圈半。電波在真空中波長計算公式為「光速(Km)除以頻率(MHz)」:

電波在真空中的波長計算公式

天線本體需用導電性良好的金屬製作,例如,銅和鋁。不建議使用衣架,因為衣架的金屬含鐵,阻抗較高且容易生鏽。

速度係數(velocity factor)或波長短縮率(wavelength shortening rate)的考量

電波在空氣或金屬導體的傳播速度較慢,在計算波長時,要把這個因素考量進去。電磁波在實際環境中的傳播速度,和真空中的傳播速度的比例,稱為速度係數(velocity factor)或者「速度因子」,在使用銅線的場合,速度係數的值通常採0.95或0.97。

速度係數(velocity factor)

有些網友引用的係數是「短縮率」,此為電磁波在實際環境中傳播的波長,和在真空中傳播的波長的比值,稱為波長短縮率(wavelength shortening rate)。兩者的道理相通。

自製雙菱形天線(double-quad antenna)

本文自製的天線形式稱為雙菱形天線,採四分之一波長,因此天線的單邊長度計算方式如下:

天線的單邊長度值

雙菱形天線的組裝圖如下:

自製雙菱形天線(double-quad antenna)的組裝圖

我們住家附近的五金行販賣的單芯銅線(就是一般水電用的電線),有1.6mm和2.0mm兩種規格,我選用是1.6mm,一米新台幣13元,我買1.5米。同軸電纜線是N年前接第四台時的剩餘線材,外加一個5C電纜接頭,成本只要25元。

底下是折好菱形(兩個正方形),再與同軸電纜線焊接後的樣子:

焊接天線與同軸電纜

同軸電纜內部的接地,採用鍍鋅銅或鋼質編織網,不容易焊接。我是先剪一段銅線將它插入編織網後,再焊接到天線。下圖是最後做絕緣包覆的樣子:

絕緣處理

整個天線並不大:

自製雙菱形天線的整體外觀

後記

DIY,有時候是為了享受自己動手做的過程,最好還可以滿足特定的需求,就像組合傢俱和改造電子小玩意一樣。做好數位天線並興沖沖地測試收視之後,我開始懷疑製作這天線的目的,好像只是為了驗證天線的製作原理無誤。

數位電視節目的內容,有線電視也看得到;有線電視台看不到的公共電視HiHD高畫質節目,我們家也收不到(因為HiHD試播訊號轉播站的第一期工程,集中在台灣北部和南部)。

看樣子,想欣賞高畫質電視節目,除了藍光影片之外,略過衛星(裝機費和月租費都不便宜)和有線電視,直接走向網路雲端比較實際。

延伸閱讀

Posts created 467

46 thoughts on “低成本、超簡單之DVB-T數位電視天線製作

  1. 老師請問如何讓在網頁中開啟的swf變成全螢幕化?
    我做一個按鈕去觸發fscommand(“fullscreen”,”true”);
    但是依然無法讓網頁中的swf變成全螢幕化>

  2. 謝謝老師的指導,這就來試試:grin:
    你女兒好正阿,哈!是像爸爸還是像媽媽?

  3. 老師我依照你的教學可以成功為全螢幕了,只是當全螢幕後我原本設計在swf裡面的鍵盤事件,在全螢幕的狀態下完全無法控制,請問老師有可在全螢幕後還能正常控制鍵盤事件的方法嗎?
    我做了一個利用鍵盤事件控制影片片段移動的遊戲,如果全螢幕後還能操控鍵盤那更棒^_^

  4. 因為安全因素,Flash Player 9無法在處於全螢幕狀態下偵聽鍵盤事件,但.exe獨立播放器版和AIR應用程式不在此限。

    我記得Flash Player 10放寬這項限制,允許Tab、空白鍵和方向鍵可以用,請再測試看看。

    have fun!
    jeffrey

  5. 謝謝老師耐心的指導,如果沒老師的解說還真不知道有細分成這樣,我全螢幕化後可用Tab、空白鍵和方向鍵,來控制遊戲裡影片片段的動作了,不過覺得有些可惜的說,就只有這幾個鍵能使用:shock:
    很疑惑為何Tab、空白鍵和方向鍵,就沒有安全性的問題,其他鍵就有安全性的問題,還不是一樣都是鍵盤上的鑑?

  6. 因為在全螢幕模式之下,使用者看不到原有的瀏覽器視窗。

    網頁設計者可以在Flash內模仿任何網頁(如:銀行)的設計,以及瀏覽器的外型並加上網路銀行的網址,讓用戶誤以為真的在瀏覽某個銀行,放心地輸入帳號和密碼…

  7. Adobe公司設想的還真週到,有些人真的很壞,不把技術用在好的地方ˇˇ
    我在做格鬥類的小遊戲,若是在全螢幕狀態下能再多5個鑑可用就好了:cry:
    不然只能用Tab和空白鍵做成重手和重腳,
    以下這些連結的小遊戲,是對岸朋友用AS2.0寫出來的格鬥遊戲,
    真是做的太棒了,
    http://www.more.game.tw/games_15531.html
    http://www.more.game.tw/games_15649.html
    在老師身上所學,希望我有一天我也能用AS3.0做出和他們並駕齊驅甚至超越他們的作品:eek:

  8. 老師請問AS3.0的KEY_DOWN鍵盤事件,當按下並且持續按住鍵盤鍵不放後它會持續自動點擊,有方法能關閉它的自動點擊嗎?或有能增減它自動點擊頻率的方法嗎?
    我做了影片片段讓它按下鍵盤後,向影片片段的x或y移動,我為了讓影片片段的移動看起來更流暢,x或y值設定越小,影片片段的移動看起來就不會鈍鈍的,假設我設為x+0.1,可是我計算按住鍵盤不放自動點擊的頻率大概只有每秒30下,這樣影片片段相對的移動速度只有每秒x+3的距離而已,我可以用計時器去控制影片片段的x或y軸達到我自行需要的移動速度,可是KEY_DOWN的自動點擊卻成了我設計上的困擾:cry:

  9. 如果你希望KEY_DOWN事件每次只觸發一次,可以在它的事件處理程式中加上一個布林值判斷;每次按下按鍵時將此值設為true,放開時(KEY_UP事件),再設成false。

    have fun!
    jeffrey

  10. 老師現在我的問題是出在KEY_DOWN事件,按住不放的情況下,它會自動點擊,舉例把影片片段my_mc放在x軸0的地方,
    function ss(event:KeyboardEvent) {
    if (event.keyCode == 37) {
    my_mc.x = my_mc.x+1;
    }
    stage.addEventListener(KeyboardEvent.KEY_DOWN,xx);
    當按住A鑑不放它會自動以大約每秒震盪30下,也就是等於mc.x+30,能自動點擊是很好,可是他的點擊頻率不合乎我的需求.
    我把它改成用計數器去移動影片片段,如下式.
    可是它的自動點擊卻變成自動累加my_mc.x+1,導致my_mc的移動變成越來越快,而不是固定的移動速度:cry:
    function xx(event:KeyboardEvent) {
    if (event.keyCode==37) {
    var clockTimer:Timer = new Timer(1,1);
    function xx1(event:TimerEvent):void {
    my_mc.x = my_mc.x+1;
    }
    clockTimer.addEventListener(TimerEvent.TIMER, xx1);
    clockTimer.start();
    stage.addEventListener(KeyboardEvent.KEY_DOWN,xx);

  11. 如果增加影片片段的移動像素,然後讓KEY_DOWN事件,按住不放靠它的自動點擊來移動影片片段也是可以,舉例影片片段每秒向x軸方向+10,但是這樣看起來畫面不流暢頓頓的.

  12. 這個地方改這樣就會累加,變成非固定移動速度了.
    var clockTimer:Timer = new Timer(1,50);

  13. 你可以用一個enterFrame事件迴圈掌控物件的x, y增量,當用戶放開按鍵時,將增量設置成0。例如:

    var speed:int = 0;
    var keyPressed:Boolean;
    var keyCode:int;

    addEventListener(Event.ENTER_FRAME, loop);
    stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
    stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);

    function loop(e:Event):void
    {
    getKey();
    my_mc.x += speed;
    }

    function keyDownHandler(e:KeyboardEvent):void
    {
    keyPressed = true;
    keyCode = e.keyCode;
    }

    function keyUpHandler(e:KeyboardEvent):void
    {
    keyPressed = false;
    keyCode = undefined;
    }

    function getKey()
    {
    if (keyPressed)
    {
    switch (keyCode)
    {
    case 65 : // A鍵,Keyboard.A
    speed = -5;
    break;
    case 68 : // D鍵,Keyboard.D
    speed = 5;
    break;
    }
    }
    else
    {
    // 避免物件不停移動
    speed = 0;
    }
    }

  14. 老師我的需求是當按下鍵盤又放開的時候,my_mc可以自動從x軸=0像素的地方往右連續移動50個像素,就是讓影片片段看起來有滑行的樣子,可是當按下鍵盤不放的時候,my_mc又可以持續往右移動,並且要可以調整自己要的移動速度,希望老師能在po一段範例程式給我學習,不好意思一直麻煩你:oops:

  15. 老師請問這些2D遊戲引擎都是不同於Adobe Flash Action Script的flash Action Script編譯器嗎?

  16. 老師AS2.0我寫如下的程式碼,可以很輕易的控制影片片段,可是AS3.0不知道該怎麼寫:cry:我在adobe網站看到的Tween類別教學很模糊,可不可以麻煩老師指導一下.
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    new Tween(mc, “_y”, Regular.easeOut, mc._y, 300, 2, true);

  17. 趙老師你好,打擾…
    今天我用 soundTransform 物件來控制聲音大小的時候,有個問題…

    一般我們會用以下方法來取出SoundTransform物件
    var myST:SoundTransform = SoundChannel物件.soundTransform

    調整完音量後再指定回SoundChannel物件
    myST.volume = 0.5;
    SoundChannel物件.soundTransform = myST //為什麼要加這行?難道soundTransform不是參照變數?

    我不懂的是最後一行,物件照裡說是參照類型,為何還要指定回去給SoundChannel物件

    而且我如果直接拿這個屬性來調整音量的話,如下:
    (SoundChannel物件.soundTransform).volume = 0.5
    以上不會出錯,但是卻沒有作用?

    因為以上看起來,soundTransform是一個實體變數了,這樣的類別,如果我們要自己寫,要怎麼宣告呢?還是我漏了什麼關念?

    謝謝!

  18. 我猜是SoundChannel物件的問題,不是SoundTransform的問題…

    不過還是請教您一下,我是不是有什麼地方觀念上有問題

  19. 這就像用一個變數來儲存影片片段的x軸座標:

    var dx:Number =my_mc.x;

    稍後改變my_mc的x座標,dx值並不會跟著改變一樣;它只是暫存了某個物件當時的狀態。

    thanks,
    jeffrey

  20. 老師我想請您幫個大忙,我很想買這本書http://www.books.com.tw/exep/prod/booksfile.php?item=0010388140
    可是這本書市面上已經買不到了,老師是否有辦法提供我能買到這本書的管道?
    不好意思我知道這與老師出版的書籍無關,但是這本書對於用Flash ActionScript 3.0製作遊戲,好像有比較貼近進階製作flash遊戲設計的教學,所以我想購得它來提升自己用ActionScript 3.0製作flash遊戲的能力.
    不好意思再次打擾老師您:smile:

  21. 非常謝謝老師百忙之中還抽空幫我問上奇出版社:grin:
    老師請問如果不用flasf專用的視訊伺服器應用程式,只用一般的APPServ伺服器應用程式,來做flash視訊的傳送和接收是否可行?

  22. 謝謝老師
    可是這個Red5伺服器,對我來說好像有點難度,而且也沒有相關的中文教學:sad:

  23. 老師請問用AS3.0要如何做出兩台電腦間,伺服端和客戶端的即時聊天通訊?
    想麻煩老師示範一段程式碼。

  24. 請問版主~
    菱形天線和同軸電纜連接的地方,
    強調 上、下不可短路。
    小弟有一個疑問..
    就是電纜中間的銅線和編織網
    跟菱形天線整個連接完成後,不也是短路了嗎?
    謝謝~

  25. 596Mhz – 530Mhz = 66Mhz
    66/2 = 33Mhz
    533 + 33 = 566Mhz
    想請問為什麼是用533去加呢?
    是不是應該要用530才對!!

  26. 「本文自製的天線形式稱為雙菱形天線,採四分之一波長」

    請問可以再縮小一半,八分之一或十六分之一嗎?
    我不是很懂只是照做,但體積還是問題,所以想是否能再縮小。

    凡撥空回復
    感恩。

    1. 或許你可以嘗試製作碎形天線(fractal antenna),再麻煩查閱相關關鍵字。

      thanks,
      jeffrey

  27. 你好
    想請教一下接收數位訊號之後交由晶片解碼,那晶片好壞是否影響輸出的品質呢?如色差、色彩、音效等等
    Thanks

    1. hi dancy:

      按照常理,一定有影響。就像數位音源的DAC解碼晶片,CM108和PCM1794是兩個不同等級的IC,加上電容和其他元件的用料以及濾波電路的設計…等等,都會影響音質。話說回來,因為我家沒有百萬等級的音響,所以我不是很在意 😛

      自從使用有線電視公司提供的數位機上盒,數位高畫質節目都是透過機上盒觀看,也就沒有使用這個DIY數位天線了。

      thanks,
      jeffrey

  28. 請問一下,手機想要回傳並暫存電腦所printf的值,然後顯示在手機上,需要用到那些指令呢?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top