剛開始只會用8051,想用看看Microchip是因為教育資源很豐富,可以選的chip非常多樣化,甚至有才6隻腳跟米粒一樣MCU可以用。參加了幾次Microchip的課程之後,還是只會改code而已,覺得自己沒有真的懂,不算是一個了解PIC的工程師,所以選定一個最小的DIP MCU - PIC12F1840來作為自己從頭寫起PIC的入門。選最小的,是因為我知道:凡事起頭難,最小的MCU資源一定最少,只留下最重要的東西,沒有多餘的東西會分散學習注意力,Datasheet精華的比例會越高;而PIC12F1840又是同尺寸中少數同時具備ADC、中斷、硬體PWM、UART的,剛好符合我常用的,所以我認為PIC12F1840會是切入PIC系列最好的點。
標準起手式當然是跑馬燈與呼吸燈,因為PIC的初始化比較繁複,不像8051簡單,加上PIC12系列一定要用XC8且無中文教材,所以這裡就折騰了好幾天。這時候的參考書是曾百由老師的「微處理器原理與應用一 C 語言與 PIC18 微控制器」,但書中不是用XC8所以語法上有些微差異,這個「些微差異」其實可以擊退很多初學者了,但我已經學過8051不完全算是初學者,卻還是得要上Microchip官方論壇問人才能解決,不是很輕鬆。
之後就開始一步一步地將我在8051上寫的PID控制程式移植到PIC上,除了PID計算的部分外,其他諸如ADC、硬體PWM、中斷、Timer、UART等與硬體相關的部分都要重寫,這邊是最痛苦的地方,但是挺過了就可以了解Microchip的framework,到此可以算是一個真正會用PIC系列的工程師了。
因為要拿去參賽的東西很簡單,我自己知道沒什麼優勢,而且沒有吸引人投票的點,所以我設定自己的特色為:
什麼都自己做,連比賽用的電源供應器我都要自己做!但這部分有點偷懶,其實是拿我以前做過的
如上圖,左邊是好幾年前拍的照片,標準的電器灰白色外殼,因為做得太標準,都被誤認為是外面買現成的。這次為了要吸引大家目光,所以特地去買新殼來改成透明的,讓大家一看就知道是自己做的。透明的殼還可以讓我隨時更換外觀,那張綠色的就是3M便條紙從機殼內側反貼。
換殼最麻煩的不是鑽洞,而是這些複雜的面板配線沒有模組化,很多線都要重焊重拉。
如上圖,看到左邊那個10pin的杜邦接頭了嗎?雖然設計當初我還沒有學過OOP,但是我已經有介面和核心分離的概念,那個10pin杜邦接頭就是面板與核心唯一的連接處。
因為要強調所有程式自己從頭寫起,所以我要在會場公布GUI與MCU兩個程式的原始碼,為了讓使用者翻閱起來舒服,還特地選用淡黃色的紙張。
上一次參加教育部舉辦的「微電腦應用競賽」,除了獎項超少,好死不死當天藍芽模組突然壞掉,連備用的都壞,MCU電源腳還突然斷掉,最後當然是兩手空空灰頭土臉的回來了。所以這次很僅慎,很多東西都準備兩份,筆電兩台、電源供應器兩顆、UART兩個、文宣兩份、主控MCU也要很多顆...
前一天準備時發生一件事情,同樣的code燒進IC每次動作都會不一樣,有時候可以有時候不行。為了找出問題先把每一顆貼上編號,發現:
雖然還有兩顆可用,但是出錯機率實在太高,很緊張!懷疑是因為目標板跟24V馬達驅動器放在同一塊板子上,所以又用小麵包版做一塊燒錄板,把目標板和燒錄板各自獨立,IC就拔的。最後還是沒有改善,懷疑Pickit3壞掉了,所以想說跟附近實驗室借一下Pickit3來試看看,但是借了好幾個小時都沒回應(資源果然比科大少,我Microchip的燒錄器就這麼一隻,還是從實驗室雜物堆裡面偶然發現的),熬到晚上11點了實在沒辦法,死馬當活馬醫,改用"Program to go"(Pickit3離線燒錄)試看看,成功率竟然大幅提升啊!只剩下一顆IC不正常,雖然不正常斷電要重燒的情況還是在,至少可以安心睡覺了!
一大早提著大包小包搭捷運到劍潭站,有多大包?路邪紅色袋子裝到滿+腳架一隻+15吋筆電一台,由於下雨&東西太多加上人生地不熟,所以短短幾百公尺還是搭計程車,這部分在報帳的時候就要費一番功夫和學校會計單位解釋,反正吃苦的是我不是審計人員。小黃進了車輪黨的地盤後問也沒問的一直開,我心中緊張了起來,想說:「幹,該不會故意繞路要給我多收錢」,我就問一下司機,原來司機早有經驗,外面借場地辦活動都是在同一棟建築物,果然是司機載去的地方沒錯,虛驚一場。
因為Microchip說有提供早餐,早上我就忍耐著飢餓到會場,結果竟然是提供麵包餐盒(我以為會是早餐店現做漢堡之類的),餐盒就算了而且還超級難吃,馬卡龍還是鹹的哩~ 所以我只好自己到車輪黨活動中心的便利商店去買吃的,現場果然是東西難吃,熟食都被搶光光,只剩下冷凍庫兩盒冷凍義大利麵,我買了其中一盒+伯朗無糖二合一鐵罐+茶葉蛋*1總共花我100元(只是熱的而已,其實也差不多難吃,後悔了),等微波爐的時候順便看看這裡賣的東西,果然有一番濃濃的車輪黨風味~ 而且店員小姐臉很臭只顧自己划手機,東西還用丟的,景氣這麼差的時代,服務業還能有這種員工,想必是黨證發威XD
進了會場一看之後「幹,別人的陣仗都好大啊~這樣我擺出來的東西不是很窮酸嗎?」而且明明只申請半張桌子,最後Microchip還是給我一整張,讓我的場子更顯空虛冷清。那不打緊,對面還正好是建國科大超炫的LED旋轉顯示器,這個區域的目光都會被他們吸走了。
如上圖,雖然有點丟臉的感覺,我還是硬著頭皮要把自己的場子布置好。照片右下那個像車輪餅的是壓電元件做 sensor 的電子靶。
|
|
如上圖,整個L型一大張都是我的,別人為了demo會直接帶一個22吋螢幕來,因為我只有一個人,只能帶10吋小筆電(15吋是我自己的開發環境,留著萬一出事debug用),幸好還不錯的是海報架,因為海報架要自備所以很多組直接貼在桌緣,我還有想到要帶相機腳架,紙張背面夾飛機木固定形狀。這個海報架在會場裡有鶴立雞群的感覺,算是救援成功!
然後大約早上九點半,評審開始了,準備投票的觀眾魚貫而來,從早到晚一樣的話我要講十幾遍,雖然有些人會先表明他沒有投票權(看熱鬧鄉民、Microchip員工、教育單位參加者),但我還是說給他聽,因為這也是練功,也可以技術交流,知道業界的人在想什麼,說不定我能因此有更好的工作機會。前面的練功果然奏效,很快地我越講越好,越來越能掌握聽眾喜歡的是什麼,隨著情況調整每一段介紹的配重。
投票規則是這樣,講解一下:
首先比較早的時候,有個學生來看一看然後跟我要原始碼,我想了一下然後同意給他;後來很多人不知道是看到海報架還是看到我講的嘴角全波,就圍了一圈人,但其實有興趣聽下去的人不多,因為東西沒那麼炫,都著重在技術面而已;另一個業界的人來,他好像看得懂我的東西,想給我建議,講了很久很久,但其實沒多少內容,在我聽來都是重複的東西,整段下來我只記得兩個重點:1. PID弄熟很多地方有搞頭 2. 建議我往數位電源或玩具伺服馬達設計發展。
有一些是Microchip的員工,他們似乎了解在場學生很忙而且需要搶票,都會先表明自己是不能投票的,但我還是都願意完整講完,一來是為了練功(當然,以得獎為目的的話可能就練錯方向了),二來是這些人會比較聽得懂技術導向的東西,就算沒得名,我也希望能更跟們多點技術交流。有幾位Microchip的員工跟我反映:「你的東西遠遠看沒什麼,因為大家都習慣了控制馬達就是要用dsPIC,但是近看才發現,你只用8pin PIC12就做到了,這是很有看頭的。」
所以我馬上修正自己的海報內容,拿出一顆備用的PIC12黏在海報上。出門時隨手拿了一條黏土膠,其實根本沒想到要幹嘛用,只覺得多準備心安,沒想到真的派上用場。到下午有一位Microchip的資深主管來看,聽了很久讓我整套講完,最後也跟我聊了很多,除了我學習MCU的過程,還聊到工教系很差,機電系好一些之外,其他就是說,我的作品雖然不炫目不會得什麼好成績,但這只是一時的,長久的努力都會在日後的某一天有收穫等等勵志話。我也跟他說很羨慕Microchip的工作環境,雖然氣氛像南部的科技業小公司一樣悠哉(我在RTC的體驗),但我覺得他們員工能力都很強,交流很有收穫。
因為想要強調是我自己做的,所以機箱都用透明的,程式碼也印出來放在桌上給大家看,為了看得舒服還特地用黃色粉彩紙,很多人都會翻一下啦!但是認真看、看得懂的好像沒幾個,有點失望。其中一個Microchip員工問我 PID 的 function 執行要多少時間?幾個月前我曾經用示波器看過,但是竟然忘記寫在註解中,當時也想不起來.....真的很可惜!另一方面也是因為只有Pickit3,沒有ICD3可以用的關係,所以要計算某一段程式的時間很不容易,只能用迂迴的方法。
最後的頒獎典禮,幸好得到第4~15名之間的優勝,有獎牌+獎狀+獎金5000元,至少確定能交差了!壓力頓時解放。
右上圖是當天頒獎後公布的總票數統計
將得獎的消息報告給老師,獎狀還在印所以要用寄的,當天只領了獎牌和獎金,獎牌就留在老師那,一塊厚厚透明的不知道是玻璃還壓克力,很漂亮,但是忘了拍照。隔天就在科技學院一樓看到這個
這種海報缺點太多,以前我看了都會批判,沒想到有一天我會成為上面的人:
雖然,我沒辦法決定系館裡能見度最高的這張要寫啥?至少我可以決定研究室網頁&自己的網頁,所以在這些地方我都有寫上名次和獎金,讓看到的人自己評估這個獎項的價值。
下圖紀念贈品,是給報名研討會的人,大概太多人報名了沒來吧!所以沒繳錢參賽的學生也有一份
最後,這次比賽收穫比原先想像的多很多,也認識了隔壁攤幾位正修科大醫工學程的好同學,邱煜憲、蘇宏仁、蘇婷筠,我真的是太忙連到處看的時間都沒有,有幾張照片是他們幫我拍的,最後我回捷運站的路上東西太多了沒手,他們還幫我一路撐傘。從去年在宜蘭大學的研討會到現在,一路跟建國科大的游文億見了三次面也算有緣,見到他們老師都對我有印象了,今天終於看到他們多次征戰的鎮校之寶-旋轉顯示器。
後來想一想,這個比賽對我來說,有點像是大運會的感覺,大家準備了很久就是為了到某個地方大拜拜,然後在這短短的時間使出渾身解數,最後幾家歡樂幾家愁;認識一些其他學校,但平常都在做跟自己一樣的事情的人;另外賽道從 50m 變成 4kB 。不過相較之下大運會真的是純粹熱血、燃燒青春,因為練那些運動技能對出社會後的就業幫助沒有那麼直接。或許來這裡心中也有一點想要彌補遺憾的想法,因為比了那麼多年的大運會都沒得過獎(各區錦標賽不算,那不是全國等級),引用一句某三鐵美少女(現在應該是輕熟女吧)多年前私下閒聊說的:「大運會拿不到前八,連屁都沒有」。
真想明年再參加一次,可是再參加我就要讀到碩三下了耶~(完)