我的作品集
此頁面展示我曾經製作過,且有記錄意義的超酷作品們。

校園自駕車
一台於高中時期與另外三位有夢青年從無到有共同出資打造的「自動駕駛電動車」。

ARRC 暑期實習
我在高二升高三暑假內於陽明交通大學前瞻火箭研究中心所參與製作的一些酷項目。

ARRC 暑期實習
我在高二升高三暑假內於陽明交通大學前瞻火箭研究中心所參與製作的一些酷項目。
陽明交大|高二-高三|2023|團隊協作

前言
我從高一開始因為在網路上開始看到一些人在網路上做模型火箭的影片以及看到SpaceX火箭回收技術的成功突然覺得超酷所以就啟發了我對火箭的興趣當時的我就開始在學校跟一群志同道合的同學開始設計製作模型火箭雖然因為燃料研發貧頸試飛了大概十幾二十次都沒有成功但我也在其中累積了一些航電知識剛好在這次暑假前在臉書上看到大名鼎鼎的陽明交大前瞻火箭研究中心(ARRC)開放暑期實習的機會剛好想進去學習一下真實火箭的航電以及燃料技術來讓我們的模型火箭成功上天但當時我處於高二升高三的階段所以暑假照常理來說應該要奮發向學參加暑輔並且我同時身為全國技藝競賽數位電子選手候選人所以十分猶豫要不要投自傳履歷過去不過在我與家人分享這個機會時他們表示這個機會難得先投履歷過了再說兩天後我很榮幸且意外的通過了研究中心副主任的認可獲得了實習機會在這之後我審慎的思考我想要的未來是什麼最終我認為雖然選擇當技藝賽選手或許在未來升學比較有幫助但我內心覺得或許去ARRC才是我想要的吧也因為我認爲技藝競賽數位電子組比賽內容及比賽生態已經與技藝競賽存在意義背道而馳所以最後決定放棄數位電子選手身份放手追夢!
實習內容1-RCS 推力測試系統
這次我實習的第一個任務是設計箭身氣體姿態控制系統(RCS)的推力量測系統(軟體ui及硬體程式)但因為有簽署NDA(保密協議)的關係因硬體部分牽扯箭身設計故以下僅展現軟體ui及測試相關圖片

此圖片僅為測試版本畫面且畫面中數值僅為測試程式亂數生成不具任何參考價值
實習內容2-零件管理系統
此項目是因為航電組學長看到我之前設計的 UI 覺得我很適合的小 project 希望我來幫他們完成的項目,但因為開始製作時已接近開學所以介面只做了這一頁,不過還好這項目不是必須所以可能開學後慢慢完善了。

此網頁可以掃描電子材料包裝條碼來登記出庫入庫數量,此圖片以學生證條碼測試
心得
雖然這次實習因為NDA(保密協議)的關係只能透露冰山一角的東西但應該也能看出來我對這次實習經驗真的充滿熱血也收穫良多在這期間因爲我是暑輔實習同時進行所以特別感謝各科老師的大力支持與包容讓我上課上到一半衝去新竹實習這樣😅也因為暑輔實習桃園新竹兩邊跑的關係我也深刻學習到時間管理的重要性讓我更會利用零碎的時間了。這次實習我因緣巧合剛好有接觸到UI/UX設計的部分這是我之前接觸較少的領域經由這次實習我開始學會使用Figma、PyQt、html、css前端相關工具Or程式語言真的獲益良多尤其在會議上我發表我的作品時各位學長異口同聲wow一聲出來真的很有成就感。另外我平常也會去幫忙推進組及結構組做一些打雜工作所以瞬間點了很多技能樹其中最有用的是鈑金設計cad圖之類的因為我身為電子科平常根本不會碰到這些這次實習後我也開始自己設計鐵件來使用在平常的小專案上面克服了3D列印件不夠堅固的缺點。另外這次實習中遇到的實習生也都來頭不小大學實習生基本都台清交成學生高中實習生除了我以外都是康橋、美國學校、新竹實驗學校之類的但其中有一位跟我同年紀的孟加拉美國學校實習生讓我印象最深刻他在實習期間都坐我旁邊打他對混合引擎研究的論文然後他還在孟加拉美國學校帶領一個火箭團隊製作火箭我頓時覺得雖然跟他同年紀但他卻利用時間做了比我多好多好多的事情聽了他的經歷以後我希望我之後大學能像他一樣成為為了夢想挑戰自我努力追夢的人🦸
查看官方實習貼文

阿北倒數 APP
我第一個上架APP Store的APP,主要功能為提供文青風大考倒數小工具,目前擁有800餘次下載量。
阿北倒數 APP
我第一個上架APP Store的APP,主要功能為提供文青風大考倒數小工具,目前擁有800餘次下載量。
北科附工|高三|2023-2024|個人製作

前言
會想製作這個app是為了想要達成實際上架應用商城的夢想,又剛好對目前較熱門的幾款倒數app桌面小工具風格不太滿意,所以就打算利用現有的一些SwiftUI知識來挑戰製作一個結合待辦事項及倒數小工具的倒數app。
製作過程
- 在Adobe Figma中設計app介面
- 使用SwiftUI將編輯小工具介面具現化
- 使用AppStorage將編輯資料長期儲存
- 將設定日期等參數透過entry傳送到自製時間進度條生成器內
- 將生成完的進度條放進小工具下方
- 製作放置在鎖定畫面的小工具
- 設計待辦事項UI/UX
- 使用SwiftUI將代辦事項功能介面具現化
- 利用SwiftData將代辦事項儲存起來
- 將SwiftData資料轉AppStorage型態送給小工具顯示
- 設計一個大型Widget讓倒數及待辦事項能同時顯示
學到的東西
- AppStorage儲存資料
- SwiftData儲存大量資料
- WidgetKit使用
- EventKit使用
- 利用TabView製作PageView
- 利用Haptic egine提升使用體驗
- 使用Sheet來避免大幅度的頁面跳轉增加UX體驗
- Date函數的基本功能
心得
本來在我去年的學習計畫中有一項大二要實際上傳App到應用商城的夢想,但隨著後續越來越多作品有接觸到手機App的製作,我也越來越熟悉Swift這款年輕且開發社群極為活躍的語言,為了想要讓自己製作的App讓更多人使用兒不再僅存於自己的手機,我決定蛋蛋捏下去花了3400元訂閱了蘋果開發者帳號,為了不讓辛苦省下來的錢浪費掉,我日以繼夜的在趕工生出阿北倒數,開發途中我意識到上架App跟自己做給自己用的App有著極大的區別,上架App需要考慮使用者的任何情況發生,不像自用App可以知道怎樣會觸發Bug而去避免使用特定方法操作,所以時間成本大大提升,也會發生例如我中途本來想要將待辦功能使用EventKit與蘋果原廠提醒事項App做結合,雖然有成功做出同步資料的功能,但礙於ios省電調度策略的關係提醒事項內資料並不會即時更新,所以造成了兩個App資訊不對等的奇怪現象,這時為了實際使用體驗我也忍痛捨棄這個花了我整整一天時間研究的版本,從舊版本Git開新的branch沿用自製資料結構了。
總而言之,這次的上架App計畫讓我深刻的瞭解到一個東西要商用以及自用的製作複雜度是天差地遠的,也在途中爬了許多Swift的教學文章還有YT上Sean Allen及CodeWithChris的教學影片學習了很多App開發的小技巧,最重要的是增加了很多App開發經驗,現在在回看程式碼我會發現很多地方可以有更好的解決方案,如果可以希望能在未來更新改善。

觀看宣傳影片

不如吐司 APP
在IOS端少數的免費藍牙工具,專為ESP32藍牙通訊設計,並提供完整開發教學文章讓無硬體基礎的使用者也能製作出屬於他的小專題。
不如吐司 APP
在IOS端少數的免費藍牙工具,專為ESP32藍牙通訊設計,並提供完整開發教學文章讓無硬體基礎的使用者也能製作出屬於他的小專題。
北科附工|高三|2024|個人製作

前言
在上單晶片微處理機實作課程時,任課老師在抱怨iOS系統若要做esp32藍牙相關專題要下載付費軟體才行,聽到後我馬上冒出製作一個免費版的想法,剛好在GitHub上看到有人製作相關專題的程式碼,於是我就在那位開發者的基礎上,增加了適合高職生製作專題的功能並上架,成功解決老師們的問題。
製作過程收穫了什麼
- 近乎95%程式碼使用auto layout以適配各種裝置之經驗
- Core Bluetooth使用經驗
- 登上排行榜的成就感
心得
- 雖然後來發現其實有類似的免費app,但還是獲得寶貴的製作經驗
- 經過這次撰寫教學文章經驗後,激發了我散播知識的熱情,希望未來撰寫更多創客教學文章

最高獲得開發者工具類第26名
觀看展示影片

雲科電力監控系統
目標為將全校電力系統智慧化的系統,目前擁有基礎後端物聯網架構及基本網頁功能,正在持續朝目標開發中。
雲科電力監控系統
目標為將全校電力系統智慧化的系統,目前擁有基礎後端物聯網架構及基本網頁功能,正在持續朝目標開發中。
雲科大|大一|執行中|個人製作

預計計劃
使用ESP32或樹莓派Pico將校內原有PA330電表數據讀出來並上傳至校內MQTT server,接者網站伺服器再利用MQTT server之數據轉成可視化資料及API。

CarrotClock APP
一個邏輯與番茄鐘類似的護眼時鐘,為我個人投稿2024 Swift Student Challenge競賽的作品。
CarrotClock APP
一個邏輯與番茄鐘類似的護眼時鐘,為我個人投稿2024 Swift Student Challenge競賽的作品。
北科附工|高三|2024|個人協作

製作動機
為了參加 2024 Swift Student Challenge 這個每年由蘋果電腦公司舉辦的APP設計競賽,我開始思考要製作什麼對社會有貢獻的APP,腦袋浮現了很多想法,最後選擇開發一款類似番茄鐘運作方式的護眼APP並取名為「Carrot Clock」。
開發歷程
- 首先我製作了可自訂時間的『蘿蔔鐘』首頁,這個蘿蔔鐘基本是根據番茄鐘的原理,但其中的專注時間及休息時間都改成了全球各大衛福機構推薦的護眼時間
- 並且保持了Apple精神在首頁製作了滑順按鈕動畫、提示音等提升使用者體驗的小細節
- 在開發途中也突然發現其實生活中有蠻多意想不到的有趣事情,所以就突發奇想,將紀錄生活中小發現的功能新增進去
- 新增跳通知功能,可以在沒使用app時跳通知提醒用戶該護眼一下了,但其實本來想做Dynamic Island直接顯示倒數時間,可惜礙於比賽環境無法使用。
- 最後加上開頭簡介頁面來提供正確護眼觀念以及使用說明。
比賽結果
未入選🥲
賽後自評(未入選的原因)
- 拖延症頗嚴重再加上與全國專題競賽複賽時間較接近導致製作時間剩下3天可做。
- 因為時間不多忽略了製作app圖標的部分,而這也是蘋果所看重的,小可惜。
- 由於繳交時已經在截止前半小時,所以描述作品相關問題撰寫的略微簡陋,也受限於英文能力未把我想表達的事情表達出來。
- 繳交出去得版本在某種未知情況下編譯器會跳編譯失敗,應多次檢查檔案才對。
- 評審時好像都是拿iPad當載體執行,而Carrot Clock並未對iPad尺寸做優化,可能有些地方炸裂了。
觀看展示影片

Laser8 雷射投影機
目標改善車輛之間或車輛與行人間溝通方式所研發製作的雷射投影機,並在發表會上正式命名為「Laser8」。
Laser8 雷射投影機
目標改善車輛之間或車輛與行人間溝通方式所研發製作的雷射投影機,並在發表會上正式命名為「Laser8」。
北科附工|高三|2023-2024|團隊協作

前言
在思考學校畢業專題要做什麼的時候剛好看到網路上有人用廢棄HDD做了一個雷射投影機,又剛好此時校園自駕車也同時在製作中,於是我腦袋馬上冒出網路上的未來概念車影片好像都有投影畫面在地板上的酷功能,於是我就把製作雷射投影機並裝到車上的想法跟組員討論,大家想法一拍即合後我們就開始製作了。
使用材料
- 廢棄HDD
- HDD馬達控制器
- 磁鐵
- 霍爾感應器
- 雷射頭
- 八片鏡子
- 雷切原料
- 3D列印原料
- ESP32
原理
利用高速旋轉的鏡面來讓雷射光點產生視覺暫留來達成投影畫面的效果,其中畫面X軸是由每面鏡片經過雷射照射區時藉由旋轉讓角度改變在牆上投影出一條線,而Y軸則是八片中每片鏡子都稍微向上1度擺放,所以每次的橫條都會向上1度的角度,我們此次擺放8片所以會有8行像素的Y軸,那要控制X軸像素只需使用單片機控制雷射開關即可,本次高速旋轉的方案預計採用廢棄傳統硬碟馬達來完成,最終成果預計有 無限*8的像素量(實際X軸像素依單片機時脈決定理論無限) 幀率預計約為80fps。

X軸投影原理

Y軸投影原理
製作歷程
- 尋找廢棄HDD(共尋獲三個)
- 嘗試使用Arduino撰寫三向電機控制程式
- 能用Arduino稍微控制HDD馬達了(但極其不穩定)
- 設計鏡子固定架雷切圖
- 雷切固定架並將鏡子固定起來
- 發現自製HDD控制器真的超級不穩定
- 網購現成HDD馬達控制板
- 設計雷射頭及霍爾感應器固定架
- 3D列印固定架
- 嘗試利用利用霍爾數據來控制雷射頭開關顯示畫面
- 出乎意料的程式一次成功
- 發現雷射頭更新率偏低
- 控制板由Arduino Uno換成ESP32
- 發現列數不夠
- 增加雷射頭至兩個
- 發現鏡子因高速旋轉會噴裝
- 製作外殼
- 利用實體按鈕及ESP32內建觸控感測作為控制來源
- 製作Demo假車門
- 發現我們這組相較其他組較沒亮點
- 亮點不夠影片來湊,厚臉皮向學校借用活動中心無邊框螢幕
- 拍攝及剪輯超尬類發表會影片
- 正式科內專題展覽

再利用原料佔比90%以上
成果
請點選附件展示影片連結前往觀看
觀看展示影片

校園成績查詢系統
基於原本校園老舊系統的自製現代化成績查詢系統,擁有原本沒有的手機APP、成績出爐通知以及更現代化的介面。
校園成績查詢系統
基於原本校園老舊系統的自製現代化成績查詢系統,擁有原本沒有的手機APP、成績出爐通知以及更現代化的介面。
北科附工|高二|2023|團隊協作

前言
我們學校的成績系統是外包給新河資訊有限公司他們公司的介面邏輯及設計要吐槽都不知道從哪裡吐槽起了又剛好資訊科技自選作業有自己訓練影像辨識的選項剛好我一個平常也熱愛手作的同學選了這個功課在他跟我展現他訓練的驗證碼辨識模型有多準的同時我就說還是乾脆搞一個新的成績查詢系統我們一拍即合說好他負責爬蟲我負責api、server還有介面設計接下來就來介紹我負責的部分。
製作過程
- pip 安裝我同學寫好的爬原成績系統資料函式庫
- 使用flask-socket及ngrok製作簡單的api server
- 因當初對網頁三件套不熟所以利用chat gpt搞出了一個簡單算好看的查詢網頁
- 使用swift ui開發一個ios端App(無使用chat gpt目前完成度40%)

ios app 示意圖

使用chatgpt製作的網頁
心得
因為這次的製作讓我學到了很多網路知識例如:路由器、socket、http https的差別等等也激發了我對網頁三件套的認識之後暑假就開始學了。利用chat gpt在做網頁設計時也發現到雖然ai很強但對於大型專案還是不太擅長因為傳送程式碼有字數限制必須分段傳送十分影響效率並且與ai進行程式製作時也必須有底子才行例如這次在與chat gpt溝通時若無法執行我也沒有debug能力所以花了很多時間在與他溝通結果到後面雖然效果不錯但程式碼超髒無用程式碼一堆也因剛開始溝通不佳導致整體架構變得超奇怪最後索性開始自學網頁三件套整個網頁打掉重練但在第二版製作過程中校方更新了成績系統介面變好看了在與同學討論後認為時間珍貴若我們真的做出來了對其他同學吸引力也不高了所以就放棄繼續網頁製作雖然沒繼續做了但我也成功習得基本撰寫網頁三件套的能力👍ios app的部分因為我本人想學Swift所以就繼續當作我的練習題目製作下去了也因為這個題目我學會了Swiftui、表單製作、底部功能鍵、堆疊式介面的應用這次的成績系統改造計畫真的瞬間讓我技能樹成長超多!
觀看展示影片

魔法棒遙控器
能在現實生活中使用魔法控制電子產品的魔法棒,目前尚未被魔法部列為管制品可安心使用。
魔法棒遙控器
能在現實生活中使用魔法控制電子產品的魔法棒,目前尚未被魔法部列為管制品可安心使用。
北科附工|高二|2023|團隊協作

前言
一升高二暑假時剛好被科主任問到要不要想一個題目參加專題比賽,這時因為暑假在重看哈利波特電影所以對魔法世界有股憧憬,所以就隨口跟主任提魔法棒遙控器的想法,沒想到主任竟然同意製作這個無釐頭的題目,也剛好我同學想要做光立方看看然後我想說光立方或許能當作施展魔法的顯示器,於是我就跟他一拍即合一起報名了專題製作創意組!
原理
- 使用esp32讀取mpu6050角速度原始值
- 將數值使用卡耳曼濾波加上積分換算相對角度
- 用角度數據加上勾股定理計算出移動軌跡並記錄
- 將軌跡常規化(縮放至上下左右軌跡貼在32*32邊框)
- 辨識特徵
- 如果常規化時X軸放大倍率大於一定值視為揮出垂直線
- 如果常規化時Y軸放大倍率大於一定值視為揮出水平線
- 如果上下兩邊單行水平軌跡點超過定值視為揮出正方形
- 如果上下兩邊單行水平軌跡點超過定值但小於正方形定值視為揮出圓形
- 其他視為揮出三角形
- 根據揮出形狀做出對應動作(demo 版本為藍牙控制手機音樂暫停播放等功能)

演算法效果展示(實際辨識到揮出正方形)
心得
這個項目本來是要報名專題競賽創意組的但在初選資料繳交前夕我們印錯年份簡章導致要繳交資料時發現已經過期了所以只能選擇棄賽。不過在製作過程中也經歷了許多腥風血雨例如本來辨識手勢是要訓練一個tensorflowlite模型在esp32上跑影像辨識來辨識手勢軌跡的但是要訓練模型時發現訓練效果遠不如預期初步估計應該跟辨識模型及一些參數上調整問題有關對於完全沒接觸過機器學習的我,選擇先跟專題老師提出目前遇到的問題老師表示已經接近截止日了還是先用傳統ifelse暴力破解看看然後我就發揮以前的ifelse暴力破解影像辨識的經驗搞出一個還堪用的算法了這時本來預計紅外線遙控電器什麼的等繳交完初選資料再繼續做剛好複選上可以趕上展覽就好但就發生了報名沒上的問題後續因為寒假開始就不了了知了直到高職博覽會時指導老師突然說要展出我們的專題於事我連夜趕工終於加上藍牙控制手機播放音樂功能展覽出去了!在這過程中我深刻認知檢查文件日期是多麼重要的一件事以及一大堆陣列的邏輯使用還有認識了tensorflow對於往後使用幫助極大!
查看完整程式

機器學習 IOS APP 實作
嘗試將道路辨識整合至手機內,並測試手機作為自動駕駛系統載體可行性的實驗性項目。
機器學習 IOS APP 實作
嘗試將道路辨識整合至手機內,並測試手機作為自動駕駛系統載體可行性的實驗性項目。
北科附工|高三|2023|個人製作

前言
10 月份剛好是TIRT視覺辨識無人車駕駛比賽開始的時間所以我與我去年的隊友再次組成三人小隊開始準備比賽去年的我們發現樹莓派效能略顯不足為了解決這個弱點我靈機一想想到我暑假學的swift語言突然覺得使用手機來當作主要開發板是一個很好的解決方案例如手機擁有高畫質鏡頭、高效能處理器、高精度九軸imu等等優點於是我開始著手研究如何執行發現由Google提出的DeeplabV3語意分割機器學習框架十分適合拿來辨識道路所以就開始研究如何將DeeplabV3模型裝到iosapp了!
製作過程
- 使用標註工具將路線手工標注出來
- 將標注完的標注圖使用python-tensorflow 加上deeplab V3 框架訓練出模型
- 將tensorflow 模型使用coreml轉換工具轉換成coreml模型
- 在swift裡面讀入模型並將模型初始化
- 讀入圖片並放進UIImage型態變數儲存
- 將UIImage轉換成MultiArray[1*512*512*3]陣列型態
- 將陣列型態圖片使用coreml模型創建任務
- 取得結果陣列並轉換為UIImage型態顯示出來
- 進行簡單for 迴圈處理將路線標出來
心得
這次實作ios app機器學習成果比預想好很多僅用180張圖片訓練出來的模型預測效果已經超出預期如果之後比賽方開放場地圖供我們進去練習獲得實際跑道數據訓練更多張圖片進去效果應該不錯吧不過唯一的小問題是我們有點高估手機處理器的效能以為幀率60以上輕輕鬆鬆但實際情況卻只有12幀左右的表現後來我們嘗試把圖片畫質從512*512縮小至128*128就能達成將近70幀的效果並且道路辨識也不用太高清的解析度所以我們就改用這個方法了!因為這次道路辨識效果遠超過預期所以我就把之前高一時隨便講講的校園自動駕駛車計畫再次跟幾位同學提出幾位對維修腳踏車有興趣的同學也對這個計畫十分有興趣所以為了不讓這個計畫變成説說而已的計畫我馬上開始向組員募資並在募資達14000元時馬上採購了一輛二手六人座協力車放置在科館內期待往後成為唯一一間擁有自動駕駛車輛的高中職學校!
查看完整程式

VHDL-LED跑馬燈&光平方
使用硬體描述語言設計而成的LED矩陣跑馬燈以及利用FPGA的超高Clock頻率特性所製作的超高更新率光平方。
VHDL-LED跑馬燈&光平方
用硬體描述語言設計而成的LED矩陣跑馬燈以及利用FPGA的超高Clock頻率特性所製作的超高更新率光平方。
北科附工|高二|2023|團隊協作

前言
當初在練數位電子選手時指導老師給的題目是要讓led矩陣亮起來就好,但我覺得假設只讓led矩陣亮起來有點小無趣,所以我在完成基本掃描電路讓led矩陣顯示數字後就開始上網自學VHDL陣列怎麼使用,接下來就想辦法讓他進化變成跑馬燈了。
原理
- 將想要顯示的畫面存成超長的矩陣(ex:8列44行之類的)
- 先讀取8*(0~7)的顯示畫面陣列
- 用掃描電路控制LED矩陣顯示出來
- 接下來向右一格顯示8*(1~8)的陣列
- 依此類推直到顯示到陣列結尾從頭開始

普通8*8矩陣螢幕版

進階RGB光平方版
心得
這次的VHDL雖然不是太難但我卻從中得到很多樂趣,當看網路上別人用FPGA做8x8led時都是不會動的畫面但我的卻會動就有一種魔名的成就感,甚至如果指導老師給我長一點的時間或許我可能就做出pwm調光的led矩陣吧,如果會動又有pwm調光的led矩陣或許可以拿來播影片了😂,希望之後有時間可以完成pwm調光led矩陣。
觀看展示影片

TIRT 視覺辨識無人車競賽
為了參與視覺辨識無人車競賽並挑戰不使用市售AI鏡頭而開發的土炮道路線辨識算法。
TIRT 視覺辨識無人車競賽
為了參與視覺辨識無人車競賽並挑戰不使用市售AI鏡頭而開發的土炮道路線辨識算法。
北科附工|高二|2022|團隊協作

前言
在2022年暑假我看到今年TIRT比賽的海報其中視覺辨識無人車項目最讓我感興趣因為視覺辨識是我沒接觸過的領域我覺得可以趁機接觸這個領域順便跳脫舒適圈一下於是我馬上找了我們班上熱愛手作的同學組成了三人小隊開始研發我們的自動駕駛小車車了。
視覺辨識設計想法
要能達成車子跟隨兩條白色跑道線所組成賽道大部分人會使用市售的AI鏡頭模組來簡單的達成循線行走的目的但由於我們時間還有3個月我自認為不要做這種沒有技術含量的作法於是我開始了自研跑道辨識系統的道路了。不由於我完全沒接觸過機器學習所以我打算不用機器學習來挑戰製作一個跑道視覺辨識下一頁將會對我的視覺辨識做詳細的製作說明。
原理及效果

原理流程圖

辨識效果演示
心得
本次比賽只提到這些部分是因為雖然我們三個月前開始準備比賽但是團隊合作效果並不理想造成我個人專注在視覺辨識研發以及過於相信車體研發的組員導致我們在比賽前幾天我的視覺辨識程式趨近於完成只剩下調整參數階段但車體研發組員卻尚未完成車體及硬體電路組裝所以我只能在比賽前一晚承擔了所有開始寫arduino控制馬達程式、調整車體等等但很不幸的在比賽當天早上2點我們的樹莓派無預警故障無法開機經過30分鐘撿修後還是回天乏術所以只能在群組上跟組員宣告比賽只能棄權的壞消息。經過這次經驗我學習到了時間分配的重要性以及獲得身為隊長團隊領導能力的寶貴經驗希望在往後的比賽能夠改進。不過這次的視覺辨識研發也讓我學到了很多圖像處理的知識其中我濾掉雜訊的方法是用侵蝕像素再膨脹的方法本來以為我是用一個邪門的方法但後來在github上看到也有人這樣用瞬間有種想法跟大神一樣的優越感xd

火箭姿態即時顯示
嘗試使用MPU6050 6軸慣性傳感器來偵測模型火箭即時姿態。
火箭姿態即時顯示
嘗試使用MPU6050 6軸慣性傳感器來偵測模型火箭即時姿態。
北科附工|高一|2022|個人製作

前言
我們做模型火箭的初衷是像 Space X 一樣可以讓火箭垂直起降再利用雖然我們知道即便我們只是模型火箭但要完成還是很難甚至幾乎不可能不過我們這群有夢想的同學還是想要試試看剛好也遇到我被隔離在家剛好閒閒沒事做就開始研究姿態讀取了。
原理
- 使用i2C讀取MPU6050六軸加速度感應器
- 因讀出來的值是三軸重力加速度值及三軸腳加速度值所以利用卡爾曼濾波及積分算出相對角度
- 將數據使用pyserial回傳給python
- 使用python 函式庫panda3D將火箭模型依照即時角度顯示
心得
這個項目對於當時的我有點困難因為網路中文資源幾乎沒有將角速度積分成角度及消除雜訊的教學所以我只能上國外論壇找資源結果瞬間發現新大陸原來英文資源我看得懂雖然偶爾有單字不懂但大概猜得出來意思接下來我就跟著國外教學順利得到精確的角度數據了接下來就是要解決在python上顯示3d模型的困難其中要顯示漂亮的3d模型首選應該是使用panda3d這個python函式庫了不過這個函式庫一樣資源很少所以我就繼續在英文網站衝浪了。這個項目雖然看起來很簡單但卻培養了我上英文論壇找資料以及閱讀函式庫說明書的能力對我未來項目發展影響極大。
觀看展示影片

低成本派對燈
使用教室原有投影機再配合我們設計的兩軸鏡片反射裝置而完成的超酷、成本超低派對氣氛燈。
低成本派對燈
使用教室原有投影機再配合我們設計的兩軸鏡片反射裝置而完成的超酷、成本超低派對氣氛燈。
北科附工|高一|2021|團隊協作

前言
當時因為快到聖誕節了,我們班導提議聖誕節來辦個聖誕派對,聽到後我馬上自願當燈光組,但後來上蝦皮想要採購氣氛燈時發現價格有點爆預算,這時我開始想有什麼解決方案,結果突然看到頭上有個投影機,突然靈光乍現想到如果把投影機前方加個鏡子把畫面利用鏡子反射投影到各個地方當個超高畫值氣氛燈好像很可以所以馬上開始著手設計投影機派對燈。
材料
- Arduino Uno
- 鏡子
- 3D列印零件
- 3軸類比訊號搖桿
- sg90 伺服馬達
- nrf24l01+ 無線電收發模組
- 竹筷

3D 列印模型示意圖
原理
發送端先讀取搖桿位移數據再用nrf24l01模組發送給接收端控制對應的伺服馬達來讓鏡子轉動。
心得
本來想像中這個項目應該蠻簡單的但沒過多久第一個問題就跑出來了就是nrf24l01這個無線電模組不知道為什麼把功率設在強時常常斷訊還好經過測試教室的大小設定為低也收的到訊號後來又遇到有些表演會用到投影機但我們的設備會擋到這本來讓我很困擾不過腦袋突然靈機一動不就是把鏡子轉到最上面就好了嗎就解決了😅。
做到這裡時也到派對前一天了我跟同學放學留下來想要怎麼裝上去最後用熱溶膠把sg90黏在兩根棍子上再用束帶綁在投影機上本來想說大功告成了做最後的測試結果發現sg90裝反(因為sg90只能轉180度本來分配是左右各90度現在變成不能轉到左邊右邊可以轉180😭)但時間也來不及了所以想說明天將計就計用一下到了聖誕派對我們期待的啟動系統結果5分鐘後就被抗議太亮了被迫關掉...計畫有點趕不上變化不過也成為我高中的第一件作品了希望之後做出更好的作品。
查看完整程式

火箭引擎推力測試機
為了更科學的製作模型火箭引擎而製作的土炮推力測試機。
火箭引擎推力測試機
為了更科學的製作模型火箭引擎而製作的土炮推力測試機。
北科附工|高一|2022|團隊協作

前言
當時因為看了 Youtuber 胡子的自製火箭影片就啟發了我對模型火箭的興趣並找了幾個同學一起開始製作了硝糖火箭第一步就是要來做燃料但我們做完也不敢直接試射怕直接上太空登月這樣(想太多XD)所以我就想說來製作一個推力測試機好了不過遇到第一個問題:該用什麼感應器測推力呢?我本來以為會有什麼專業的拉力計之類的但好像沒有經過一陣子網路衝浪後還是沒什麼結果只有在蝦皮上看到磅秤模組用的壓力感測器(LoadCell)雖然我感覺不太專業但還是使用壓力感測器來做了。
製作過程
- 用我的基礎木工技術切了一個固定架
- 3d 列印了一個燃料卡槽
- 將load cell 與3d列印件固定起來
- 撰寫Arduino 讀取load cell數據並回傳python之程式
- 撰寫python 紀錄數據程式
- 撰寫python 處理及計算數據程式
使用方法
- 將燃料固定於卡槽內
- 啟動python紀錄程式
- 點燃燃料
- 於燃料燒盡後停止紀錄程式
- 用計算數據python程式讀取紀錄數據並得出計算結果
心得
這次的製作碰到了很多火箭引擎數據相關公式計算例如總衝量、平均推力、最大推力及推力持續時間等等的計算所以學到了很多火箭引擎基本知識也首次接觸了python與arduino序列阜溝通的pyserial函式庫這對未來的很多項目有很大的幫助但這次最可惜的事情是我們推力機是由上往下噴的所以會量到燃料本身的重量而我們也沒能力算出燃料質量減少與時間的關係所以沒辦法算出真正的推力數值但起碼大概知道了火箭推力不大所以之後就不跑推力測試直接飛了XD下次若要在做可能可以改成滑軌側噴可能就可以忽略燃料質量了!
查看完整程式

鏡頭自動跟隨系統
使用 Google mediapipe 製作的鏡頭跟蹤系統,讓在家隔離的同學擁有更好的遠距教學體驗。
鏡頭自動跟隨系統
使用 Google mediapipe 製作的鏡頭跟蹤系統,讓在家隔離的同學擁有更好的遠距教學體驗。
北科附工|高一|2022|個人製作

前言
疫情時若有同學確診必須被隔離在家這時就必須由資訊股長(我)來操控學校採購的線上上課移動鏡頭來跟隨老師或黑板上的重點剛開始我還樂在其中但過了幾天開始覺得整堂課拿著遙控器有點麻煩不能做自己的事這樣所以我就打算寫一個python程式來自動跟隨老師了。
原理
- 讀取整個螢幕畫面(因為鏡頭畫面是由Google meet播出去的所以想說讀取Goole meet 的螢幕畫面就好了)
- 使用mediapipe 獲取人體關鍵點
- 若腰部過於左邊或右邊則發送位移訊號
- 讀取老師手勢來達成類似手對空中抓著相機會跟著手的方向轉 手放開鏡頭就會定住的效果(未完成)
- 讀取Google meet 聊天室指令讓在家的同學看不清楚可以傳送“放大”或是想看黑板右側公式則傳送“向右10度”之類的指令在聊天室內讓鏡頭做出對應動作(未完成)

偵測到位置偏左終端機提示鏡頭向左移動示意圖
心得
這次製作因為隔離政策的關係很快就不用線上上課了所以我的系統只有基礎功能連實際使用的機會都沒有有點小可惜因爲我都在腦袋幻想功能都完成的話那線上上課的感覺應該很棒老師走到哪跟到哪、老師想讓鏡頭拍哪就抓到哪甚至在家都同學都有控制權來微調而且完全不需人工介入全自動想想都很酷😂希望之後有機會把他完成並用在好的地方(不要疫情隔離那種)。
觀看展示影片

剪刀石頭布 APP
因為覺得App Inventor寫出來的介面有點太古老,所以嘗試在iPad Playground學習開發的剪刀石頭布遊戲。
剪刀石頭布 APP
因為覺得App Inventor寫出來的介面有點太古老,所以嘗試在iPad Playground學習開發的剪刀石頭布遊戲。
北科附工|高二|2023|課程自學延伸

前言
這一門課教的是利用APP inventor來製作安卓手機APP老師教了我們使用圖片、標籤、按鈕以及文字輸入盒的基本介面元素使用還有一些基本的變數、運算邏輯、控制介面的積木程式使用。但因為我個人覺得App inventor做出來的介面不太好看並且不能在ios上下載下來執行是一個小缺點所以我就開始利用iPad的Swift Playground軟體以及Chat GPT開始自學Swift語言並製作了一個簡單的猜拳遊戲。
原理
- 使用swift ui 語法將介面元素擺出來
- 當按下剪刀石頭布其中一個按鈕時隨機讓電腦出拳並顯示對應emoji
- 判斷誰輸誰贏
心得
這次的行動裝置實習老師透過較簡單的方式(積木程式)來教同學製作app的基本觀念但若對app製作真的有興趣的話可以再去自學java、swift等等的語言。並且我在這次使用swift製作猜拳app時也學習到了常用的UI架構知道了平常遊戲軟體以及購物軟體…等的UI架構差在哪裡還有使用swiftui這個函式庫來達成一些很順滑的UI動畫來增加整體介面質感。所以經過這次的小專案後希望我之後能再利用swift來製作更大型的app更實用的app來上架app store給更多人使用到。
觀看展示影片

FPGA與DHT11串列通訊
使用VHDL硬體描述語言撰寫的串列通訊韌體來讀取DHT11感測到的溫濕度數據。
FPGA與DHT11串列通訊
使用VHDL硬體描述語言撰寫的串列通訊韌體來讀取DHT11感測到的溫濕度數據。
北科附工|高二|2023|個人製作

前言
當初因為被選上了工科技藝競賽數位電子組的選手所以開始了VHDL的培訓經過了兩個月的基本語法培訓後我開始嘗試去看原模組datasheet照著要求的訊號去跟DHT11溫濕度感應器溝通獲取溫濕度數據。
原理
- 使用moore狀態機來與dht11溝通
- 資料腳設為輸出 發送開始訊號
- 資料腳設為輸入 接收dht11 回傳資料
- 將資料放到signal方便其他模組讀取
- 停頓1秒左右給dht11緩衝時間
- 重複以上
- 將溫濕度integer 型態訊號轉成4位元7段顯示器顯示輸出
心得
在學習這個硬體描述語言過程中其實蠻煩躁的因為VHDL不像普通程式語言那樣是循序執行他是有些同步執行有些循序所以整個邏輯思維大爆炸完全不能套用以前寫c++,python等程式語言的想法要邊寫邊想像合成出的電路大概長怎樣來推斷順序是什麼就算腦袋都想好了出來結果也可能跟想像完全不一樣😭這次的串列通訊也花了我整整一星期的時間在debug但當最後成功時的雀躍感真的遠遠超過使用Arduino來讀取DHT11😆經過這次成功的經驗後我對狀態機的使用更為熟練了也對串列通訊有了更深的認識debug技術也大幅提升因為沒有邏輯分析儀所以我用示波器來debug已經用的滾瓜爛熟了!
查看完整程式

視覺彈指偵測
以第一人稱視角開發的彈手指偵測,預計使用於智慧眼鏡等場合,實現彈指開燈之類的酷動作。
視覺彈指偵測
以第一人稱視角開發的彈手指偵測,預計使用於智慧眼鏡等場合,實現彈指開燈之類的酷動作。
北科附工|高一|2021|個人製作

前言
本來是想要做智慧眼鏡而開發的手勢操控本來預想有彈指開燈等等應用場景可惜因為當時經費不足而停止開發甚至當時手勢還想要多做點兩下、捏等手勢動作如果當時完成了可能會有現在Apple Vision Pro 5%的相似度吧😅
原理
- 使用opencv 讀取鏡頭一幀畫面
- 利用mediapipe 手部關鍵點模型來得出關鍵點座標
- 讀取食指中指大拇指的頂端座標看是否很接近以及無名指是否與食指離很遠
- 如果都是那接著再判斷中指是否距離食指很遠且兩個動作經過時間在 0.3 秒內判定為一個完整的彈指程式
智慧眼鏡解決方案
因為有考慮到直接放一個螢幕在眼鏡前面會因靠太近而導致要看畫面時眼睛要特別用力對焦無法輕鬆觀看並且本來是想要用LCD螢幕將背光板拆掉來達成透命螢幕的效果但能不能成功以及透明度表現都是未知數所以因為這幾個貧頸最後想說把螢幕放置在眼鏡鏡腿尾端然後前端用玻璃反射螢幕光源出來至鏡片上但即便顯示有了解決方案但還有電池、處理器等問題要解決當時的我們打算牽訊號線至腰帶上掛著電池及樹莓派的解決方案可惜當時樹莓派對我們來說有點爆預算😅不過電池部分也與現在的 Apple Vision Pro 有 著相同的解決方案 看到發佈會有種沾沾自喜的感覺😂

智慧眼鏡螢幕示意圖
心得
此次手勢辨識算是我初學python的練習專案吧現在來看雖然很多吐槽點但是我還忘不了當初彈完手指時終端機print“snap”時的雀躍感這個項目也讓我首次接觸到了Google的這個簡單易使用且精準的機器學習模型在後續我也常常使用mediapipe來快速製作一些有趣的東西這個項目雖然沒有完整把智慧眼鏡做出來但我也學到了很多東西例如智慧眼鏡技術貧頸在哪裡、知道要讓這麼小的眼鏡有高算力是很難的技術等等的如果把這個項目給現在的我做的話可能會放esp32cam在眼鏡上並把畫面回傳給我用Swift寫的ios app上處理吧這樣既可以使用高效能的A系列處理器又能操控其他手機app之類的比之前樹莓派解法優勢多太多。
觀看展示影片

全校Email發送系統
克服學生帳號無法發送全校性Email的系統。
全校Email發送系統
克服學生帳號無法發送全校性Email的系統。
北科附工|高一|2021|個人製作

前言
高一快要升高二時是學生會選舉的時候剛好我們班有熱心的同學要出去選鄰近投票日時我們班的候選人怕會有人忘記去投票所以希望我幫忙寄email給全校提醒投票但我想了想要輸入全校的學號好麻煩於是就有了製作自動發送郵件的想法。
原理
- 使用SMTP電子郵件傳輸協定
- 指定SMTP伺服器及通訊埠
- 啟動TLS加密
- 登入SMTP伺服器
- 將班級代碼存成一個list
- 將班級代碼及座號合成成特定格式(ex:013314@goo.tyai.tyc.edu.tw)
- 將貼心提醒訊息傳送出去
- 關閉與伺服器連結
心得
這次的全校發送提醒信行動有點小失敗,因為經過後續成效調查發現傳送順序較後面的班級收到的信都被判定為垃圾訊息了有點小可惜當初其實有預想到可能會發生這種事所以辦了5.6個分帳號在發送不過主要原因可能是因為我電腦發送都是用同一個IP發送下次要再做的話可能會分批用不同網路發送了。發送過程中還有遇到一個問題是發送出去要等伺服器回應每封大概要等3秒對於大量發送是一個不小的時間如果下次還要做話或許可以嘗試使用threading來同步發送看看!
查看完整程式