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

校園自駕車
一台於高中時期與另外三位有夢青年從無到有共同出資打造的「自動駕駛電動車」。
校園自駕車
一台於高中時期與另外三位有夢青年從無到有共同出資打造的「自動駕駛電動車」。
北科附工|高三|2023-2024|團隊協作

Python C++ Swift WebSocket API Arduino ImageRecognition MachineLearning DeepLabV3+ SlidingBox UART QT OpenCV LoRa GPS OpenStreetMap Servo 3DPrinting LaserCutting
作品亮點
- 全臺首台高中生自主研發製作可載人電動自駕車
- 校園內擁有接近 Level 3 的自駕能力
- 從電動車製作到自駕系統開發 100% by ourself
- 8人+ 運輸能力
- tyAI 語意分割模型
- 自研 Sliding Box 路徑規劃演算法
- 方向盤電控裝置
- 自製地圖&導航系統
- 自駕接駁服務app

TYAI 語意分割模型
挑戰與應對
研發資金籌備
本次計畫對於一群高中生來說是一項超級燒錢的計劃,所以扣除學校專題製作經費後尚有約80%的資金缺口,最後依靠團隊成員努力的打工後才得以開始我們的遠大計劃。
車體運送
為了實現安全、穩定的載人,我們放棄了自己製作車架的想法,花了一點時間向漁港協力車出租店家收購了一輛報廢協力車,並與團員決定挑戰騎30多公里,將協力車從漁港騎回位於桃園市中心的北科附工,可惜騎了8公里後發現海風過於強大所以臨時請同學家長使用貨車將其運回學校了,再次感謝熱心協助的同學全家🤗
電動動力安裝
有了車架後我們隨即上網購買電動馬達以及相關零件,但收到後發現我們沒有相關電焊經驗,於是我們就藉此機會向本校生機科以及汽車科學習了電焊技術並成功將馬達連接至原有人力傳動系統上。
方向盤電控裝置
一開始我們打算研究無刷馬達控制來控制方向盤,但是考量到再半年即將畢業後,我們選擇使用60kg-cm扭矩的伺服馬達來試試看,結果發現方顯盤轉起來相當吃力,最後只好動用鈔能力換使用150kg-cm的伺服馬達。
語意分割模型
截至畢業前,我們收集了約莫2000張的數據集,並手工標註出 道路、人行道、人、機車、車、三角錐 六種類別,然後再基於Deeplab V3+官方的權重下去訓練,達到白天準確率能用的效果。
自動駕駛系統
第一版系統中我們將語意分割的道路數據經過影像處理後獲得道路邊界,並使用其數據算出道路中心,然後讓車子依據道路中心形式,但行駛過程相當不穩,此時我們意識到我們應該研發一種「不那麼精確的算法」,於是自創 "Sliding Box" 算法就此誕生,經過多次測試後證實這個算法可以穩定的在校內環境執行。
導航系統
上述提到的Sliding Box算法其實有三種模式 右轉、靠右直行以及左轉,要達成全自動駕駛就必須智慧的切換模式,所以我們利用Open Street Map來繪製校內的地圖,並架設一個地圖伺服器,後續只需依靠車機發送起點、終點到伺服器,伺服器就會回傳規劃好的路線數據,自動駕駛系統再依據現在位置以及路線數據切換模式即可。
車機
在個系統有了基本雛形後我們開始著手打造超酷車機,我們使用iPad作為車機軟體的載體,並開發了一個擁有設定導航、控制燈光以及顯示自動駕駛辨識結果的超酷車機軟體。
感應器
自動駕駛需要依靠GPS以及電子羅盤數據才能運作,本來我們是打算將車機定位上傳伺服器即可使用,但我們突然發現iPad WiFi版本沒有定位功能,於是我們就購買了一個GPS模組安裝在車上並使用LoRa傳輸數據到我們的開發基地,不過礙於我們校地過於廣大加上位於市中心無線電干擾嚴重,所以LoRa傳輸範圍無法覆蓋全校,最後我們使用一台廢棄手機安裝我們的程式讓他將定位以及電子羅盤數據上傳伺服器。
小成就
- 全國專題製作競賽第三名
- 國際START簡報製作競賽第二名
- 留下不同凡響的高中回憶
- 種下對自駕車興趣的種子,大學繼續在雲科一號團隊深耕自駕技術

實車展示

製作過程記錄

專題展製作團隊合照

專題展展區

與北科大校車合照

車體設計與特斯拉相似度極高
觀看展示影片

ARRC 暑期實習
在我高二升高三暑假時參與的 國立陽明交通大學前瞻火箭實驗中心-航電組 暑期實習,實習期間我參與製作了火箭側向推力測試裝置以及實驗室零件管理系統。

ARRC 暑期實習
在我高二升高三暑假時參與的 國立陽明交通大學前瞻火箭實驗中心-航電組 暑期實習,實習期間我參與製作了火箭側向推力測試裝置以及實驗室零件管理系統。
陽明交大|高二-高三|2023|團隊協作

WebSocket LoadCell Arduino WebDesign Python QT Git Barcode UART
作品亮點
- 實作推力測量裝置,並實現與機內系統時間同步
- 開發網頁條碼掃描功能,記錄實驗室零件進出貨,提升庫存管理效率
挑戰與應對
- 將自製裝置同步到原有系統中
- 使用Git來團隊合作

此圖片僅為測試版本畫面且畫面中數值僅為測試程式亂數生成不具任何參考價值

此網頁可以掃描電子材料包裝條碼來登記出庫入庫數量,此圖片以學生證條碼測試
查看官方實習貼文

阿北倒數 APP
個人第一款上架至 App Store 的應用程式,提供文青風格的大考倒數計時小工具,並支援與 iOS 內建待辦事項同步。目前累積超過 1,000 次下載量。
阿北倒數 APP
個人第一款上架至 App Store 的應用程式,提供文青風格的大考倒數計時小工具,並支援與 iOS 內建待辦事項同步。目前累積超過 1,000 次下載量。
北科附工|高三|2023-2024|個人製作

Swift WidgetKit EvenKit AppleDeveloper UIUX
作品亮點
- 文青風桌面倒數小工具
- 與內建「提醒事項」(Reminders) App 同步,整合 To-Do List 功能
挑戰與應對
- 宣傳影片與網路行銷推廣
- ToDo List 與內建待辦事項APP同步
- 好看、使用者喜歡的UI設計
小成就
- 累積超過 1,000+ 次下載
- 宣傳影片累積觀看數 20,000+ 次
- 收到來自使用者的正面回饋,證明產品市場接受度

觀看宣傳影片

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

Swift CoreBluetooth ESP32 AppleDeveloper UIUX
作品亮點
- 免費提供 iOS 用戶使用的 ESP32 藍牙通訊開發工具
- 搭配詳細教學,降低硬體開發門檻,鼓勵更多創客入門
挑戰與應對
- 依據 Apple 安全規範調整 ESP32 藍牙通訊行為,確保穩定連線與使用體驗
小成就
- 依App Store 開發工具類別最高排名第 26 名
- 協助超過 30+ 位使用者開發藍牙通訊專案
- 教學內容獲得教育界老師採用,引入課程教材
- 教學內容受到社群正面回饋,提升 ESP32 在 iOS 平台開發的可行性

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

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

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

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

Swift CoreData UserNotifications UIUX CoreHaptics SwiftStudentChallenge
作品亮點
- 自訂專注與休息時間,根據全球衛生組織推薦設定預設值
- 融合滑順動畫與提示音效,提升使用體驗
- 支援背景推播通知,提醒護眼
- 記錄生活中小發現的小日記功能
- 簡單易懂的護眼觀念與 App 使用說明頁面
挑戰與應對
- 使用 UserNotifications 實作 App 關閉時的護眼提醒
- 嘗試導入 Dynamic Island 顯示倒數時間(但因比賽環境限制無法使用)
- 保持 App 介面細緻,例如滑順按鈕動畫、提示音設計等
反思
應做好時間規劃,期許下次能早早開始製作,做出讓 Tim Cook 說出 "Amazing" 的作品。
觀看展示影片

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

Arduino EcoFriendly LaserCutting 3DPrinting ProductDesign
前言
在思考學校畢業專題要做什麼的時候剛好看到網路上有人用廢棄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來同步發送看看!
查看完整程式