「數電實驗很操哦!要修的話最好把其他課排涼一點,不然就暑修吧!暑假比較有時間全力做實驗。」大四的學長這樣跟學弟說著。
數位電路實驗,用 Verilog 硬體描述語言,實作邏輯電路,用來控制FPGA板以及周邊硬體,實現各種不同的功能,完成整個系統。以上是數位電路實驗主要的實驗內容。
為期半年的實驗,共有三個引導實驗,以及一個期末專題。引導實驗,在讓我們熟悉 Verilog 以及 FPGA 板,學習如何用 Verilog 寫一個 Controller、控制FPGA上的硬體裝置以及學習RS232、VGA等等與各種硬體裝置溝通的方法。而最後的期末專題,由各組提出一份正式的 proposal,包含實現方法、可行性分析、預算以及進度時程表。這次獲獎的作品,就是這個實驗的期末專題。
提出想法,不停的討論、分析可行性,到實地尋找合適的硬體。一步一步構思整個作品的輪廓,重要的是組員之間想法的溝通與交流。
最初,我們在youtube上看到有人將魔術方塊LED化,使用六個透明的觸控式面板作為方塊的六面。用來控制方塊的旋轉。下面再放置LED燈,用顏色變換來表示各種方塊的顏色。仔細思考了一下,發現我們也有能力把這樣的LED魔術方塊做出來,甚至計畫要把功能做得更好。
實現的過程,需要克服一些硬體上的限制。六面的電容式觸控板太過昂貴,權衡之下,我們只使用一片觸控面板,修改控制的方式,加上旋轉控制面的功能來配合我們的系統。在LED的顯示上,我們遭遇了很多困難。然而LED燈的效果,是我們期末專題成敗的關鍵,如果退而求其次,炫麗的效果將大打折扣,這個方塊也將變得不那麼吸引人了。而且,如果連LED的問題都無法克服,就已經不是設備問題,而是根本上的技術問題了。
顏色方面,我們使用三色LED,除了原本的三色以外,利用兩兩同時點亮以湊成六種不同的色光,並且使用霧面壓克力板覆蓋,使光看起來是混合在一起,解決LED散光度低的問題。但使用一個控制訊號同時驅動兩個LED一起亮,造成負載電流不足,阻抗高的LED電流被阻抗低的LED搶走,無法依照我們的想法顯示顏色。在學期近尾聲的一個月時限內,除了期末考之外,我們一直在尋找各種解決辦法,一度甚至要宣告這個專題失敗。但最後在不斷的嘗試下,使用外部電源供應器供應電流,並調整不同色光的串連電阻,順利解決這個問題。
除了華麗的外表,方塊內涵也非常重要。為了更完善的功能,我們把”層先”的演算法內建到魔術方塊中。這個演算法是初學者在玩魔術方塊時,最常用的方法,需要花較多的步驟,但是比較簡單也較容易了解。然而將這個演算法用邏輯電路寫出來並不容易,一些對人腦而言簡單的判斷,在邏輯電路中實現並不簡單。為了有效實現演算法,我們自行定義了一些pattern來代表方塊的旋轉,以及各個位置的顏色資訊。這些pattern有效的節省了演算法執行時的複雜度,把類似的動作歸類集結,簡化整個流程。
做魔術方塊,當然要先了解魔術方塊。這段時間,我們也從搞不清楚它在幹麻,到最後會玩魔術方塊,也是個滿有趣的收穫,從此不再需要把上面的貼紙全部撕下來重貼了。
我們是一個團隊,成員各自分工,也一起解決問題。從觸控板訊號處理、LED架構設計、演算法一層層實現,到最後去美工材料行買飛機木、霧面壓克力、保麗龍膠,配合電木板把非常複雜的LED本體包到自己做的木盒子裡面。因為普通的線太粗,還使用極細的銀線,216條線、54顆三色LED,繞線複雜度可想而知。因此我們的架構必須很穩固,封裝好的木盒裡面出了什麼問題,是沒有辦法修復的。
從零到完成整個專題,除了三個人的努力之外,也獲得助教與同學的大力幫助。能夠這樣將一同構想的作品實現,非常有成就感。最後呈現出來的效果很好,也獲得許多肯定。完成之後參加了一些活動,高中生參訪時展出並講解,也成為杜鵑花節臺大電機系展品,而後參加了優良專題甄選獲得首獎。
這個獎給我們三個人很大的鼓勵,我們沒有用什麼最新的技術,憑藉的就是實作的實驗精神,紮紮實實的把作品完成,即使是小細節也沒有馬虎。現在回頭想想,依然很訝異能夠得到這個獎。同時參加評選的很多同學,他們的專題用的理論技術比我們難上許多,也做的很好,能夠脫穎而出,代表了系上對於實驗的重視。有機會發表自己的心得,實在是很大的榮耀,我想我會永遠
記得這樣的精神,用嚴謹、紮實的態度面對未來的各種工作。
作者 臺大電機四 B93901087 鄭登元
組員 臺大電機四 B93901064 蔡希鈞
組員 臺大電機四 B93901069 周怡君