高一
當時因為快到聖誕節了, 我們班導提議聖誕節來辦個聖誕派對, 聽到後我馬 上自願當燈光組, 但後來上蝦皮想要採購氣氛燈時發現價格有點爆預算, 這時我 開始想有什麼解決方案, 結果突然看到頭上有個投影機, 突然靈光乍現想到如果 把投影機前方加個鏡子把畫面利用鏡子反射投影到各個地方當個超高畫值氣氛 燈好像很可以 所以馬上開始著手設計投影機派對燈。
3D 列印模型示意圖
發送端先讀取搖桿位移數據再用nrf24l01模組發送給接收端控制對應的伺服馬達來讓鏡子轉動。
本來想像中這個項目應該蠻簡單的 但沒過多久第一個問題就跑出來了 就 是nrf24l01 這個無線電模組不知道為什麼把功率設在強時 常常斷訊 還好經 過測試教室的大小設定為低也收的到訊號 後來又遇到有些表演會用到投影機 但我們的設備會擋到 這本來讓我很困擾 不過腦袋突然靈機一動 不就是把鏡 子轉到最上面就好了嗎 就解決了😅。
做到這裡時也到派對前一天了 我跟同學放學留下來想要怎麼裝上去 最後 用熱溶膠把sg90 黏在兩根棍子上再用束帶綁在投影機上 本來想說大功告成了 做最後的測試 結果發現sg90 裝反(因為sg90 只能轉180 度本來分配是左右各 90 度 現在變成不能轉到左邊 右邊可以轉180😭)但時間也來不及了所以想說 明天將計就計用一下 到了聖誕派對我們期待的啟動系統 結果5分鐘後就被抗 議太亮了被迫關掉...計畫有點趕不上變化 不過也成為我高中的第一件作品了 希望之後做出更好的作品。
高一
當時因為看了 Youtuber 胡子的自製火箭影片就啟發了我對模型火箭的興 趣並找了幾個同學一起開始製作了硝糖火箭 第一步就是要來做燃料 但我們做 完也不敢直接試射怕直接上太空登月這樣(想太多 XD)所以我就想說來製作一個 推力測試機好了 不過遇到第一個問題:該用什麼感應器測推力呢?我本來以為 會有什麼專業的拉力計之類的 但好像沒有 經過一陣子網路衝浪後還是沒什麼 結果 只有在蝦皮上看到磅秤模組用的壓力感測器(Load Cell)雖然我感覺不太 專業但還是使用壓力感測器來做了。
這次的製作碰到了很多火箭引擎數據相關公式計算例如總衝量、平均推力、 最大推力及推力持續時間等等的計算所以學到了很多火箭引擎基本知識 也首次 接觸了python與arduino 序列阜溝通的pyserial 函式庫 這對未來的很多項目 有很大的幫助 但這次最可惜的事情是我們推力機是由上往下噴的所以會量到燃 料本身的重量 而我們也沒能力算出燃料質量減少與時間的關係所以沒辦法算出 真正的推力數值 但起碼大概知道了火箭推力不大所以之後就不跑推力測試直接 飛了XD 下次若要在做可能可以改成滑軌側噴可能就可以忽略燃料質量了!
高一
我們做模型火箭的初衷是像 Space X 一樣可以讓火箭垂直起降再利用 雖 然我們知道即便我們只是模型火箭但要完成還是很難甚至幾乎不可能 不過我們 這群有夢想的同學還是想要試試看 剛好也遇到我被隔離在家剛好閒閒沒事做就 開始研究姿態讀取了。
這個項目對於當時的我有點困難因為網路中文資源幾乎沒有將角速度積分 成角度及消除雜訊的教學 所以我只能上國外論壇找資源 結果瞬間發現新大陸 原來英文資源我看得懂 雖然偶爾有單字不懂但大概猜得出來意思 接下來我就 跟著國外教學順利得到精確的角度數據了 接下來就是要解決在python 上顯示 3d模型的困難 其中要顯示漂亮的3d模型首選應該是使用panda3d 這個python 函式庫了 不過這個函式庫一樣資源很少 所以我就繼續在英文網站衝浪了。這 個項目雖然看起來很簡單但卻培養了我上英文論壇找資料以及閱讀函式庫說明 書的能力 對我未來項目發展影響極大。
高一
本來是想要做智慧眼鏡而開發的手勢操控 本來預想有彈指開燈等等應用場 景 可惜因為當時經費不足而停止開發 甚至當時手勢還想要多做點兩下、捏等 手勢動作 如果當時完成了可能會有現在 Apple Vision Pro 5%的相似度吧😅
因為有考慮到直接放一個螢幕在眼鏡前面會因靠太近而導致要看畫面時眼 睛要特別用力對焦無法輕鬆觀看 並且本來是想要用LCD螢幕將背光板拆掉來 達成透命螢幕的效果 但能不能成功以及透明度表現都是未知數 所以因為這 幾個貧頸最後想說把螢幕放置在眼鏡鏡腿尾端然後前端用玻璃反射螢幕光源出 來至鏡片上 但即便顯示有了解決方案但還有電池、處理器等問題要解決 當 時的我們打算牽訊號線至腰帶上掛著電池及樹莓派的解決方案 可惜當時樹莓 派對我們來說有點爆預算😅 不過電池部分也與現在的 Apple Vision Pro 有 著相同的解決方案 看到發佈會有種沾沾自喜的感覺😂
智慧眼鏡螢幕示意圖
此次手勢辨識算是我初學python的練習專案吧 現在來看雖然很多吐槽點 但是我還忘不了當初彈完手指時終端機print “snap”時的雀躍感 這個項目 也讓我首次接觸到了Google 的這個簡單易使用且精準的機器學習模型 在後續 我也常常使用mediapipe 來快速製作一些有趣的東西 這個項目雖然沒有完整把 智慧眼鏡做出來 但我也學到了很多東西例如智慧眼鏡技術貧頸在哪裡、知道要 讓這麼小的眼鏡有高算力是很難的技術等等的 如果把這個項目給現在的我做的 話可能會放esp32 cam 在眼鏡上並把畫面回傳給我用Swift 寫的ios app 上處 理吧 這樣既可以使用高效能的A系列處理器又能操控其他手機app 之類的 比 之前樹莓派解法優勢多太多。
高一
高一快要升高二時是學生會選舉的時候 剛好我們班有熱心的同學要出去選鄰近投票日時我們班的候選人怕會有人忘記去投票所以希望我幫忙寄 email 給全校提醒投票 但我想了想要輸入全校的學號好麻煩 於是就有了製作自動發送郵件的想法。
這次的全校發送提醒信行動有點小失敗,因為經過後續成效調查發現傳送順序較後面的班級收到的信都被判定為垃圾訊息了有點小可惜當初其實有預想到可能會發生這種事所以辦了5.6個分帳號在發送不過主要原因可能是因為我電腦發送都是用同一個IP 發送下次要再做的話可能會分批用不同網路發送了。 發送過程中還有遇到一個問題是發送出去要等伺服器回應每封大概要等3秒 對 於大量發送是一個不小的時間 如果下次還要做話或許可以嘗試使用threading 來同步發送看看!
高一
疫情時若有同學確診必須被隔離在家 這時就必須由資訊股長(我)來操控學 校採購的線上上課移動鏡頭來跟隨老師或黑板上的重點 剛開始我還樂在其中但 過了幾天開始覺得整堂課拿著遙控器有點麻煩不能做自己的事這樣 所以我就打 算寫一個python程式來自動跟隨老師了。
偵測到位置偏左終端機提示鏡頭向左移動示意圖
這次製作因為隔離政策的關係很快就不用線上上課了 所以我的系統只有基 礎功能連實際使用的機會都沒有有點小可惜 因爲我都在腦袋幻想功能都完成的 話那線上上課的感覺應該很棒 老師走到哪跟到哪、老師想讓鏡頭拍哪就抓到哪 甚至在家都同學都有控制權來微調而且完全不需人工介入全自動想想都很酷😂 希望之後有機會把他完成並用在好的地方(不要疫情隔離那種)。
高二
當初因為被選上了工科技藝競賽數位電子組的選手 所以開始了VHDL 的培 訓 經過了兩個月的基本語法培訓後我開始嘗試去看原模組data sheet 照著要 求的訊號去跟DHT11 溫濕度感應器溝通獲取溫濕度數據。
在學習這個硬體描述語言過程中其實蠻煩躁的因為VHDL 不像普通程式語言 那樣是循序執行 他是有些同步執行有些循序 所以整個邏輯思維大爆炸完全不 能套用以前寫c++,python 等程式語言的想法 要邊寫邊想像合成出的電路大概 長怎樣來推斷順序是什麼 就算腦袋都想好了出來結果也可能跟想像完全不一樣 😭這次的串列通訊也花了我整整一星期的時間在debug 但當最後成功時的雀躍 感真的遠遠超過使用Arduino來讀取DHT11😆經過這次成功的經驗後我對狀態機 的使用更為熟練了 也對串列通訊有了更深的認識 debug技術也大幅提升 因 為沒有邏輯分析儀所以我用示波器來debug 已經用的滾瓜爛熟了!
高二
當初在練數位電子選手時指導老師給的題目是要讓led矩陣亮起來就好,但我覺得假設只讓led矩陣亮起來有點小無趣,所以我在完成基本掃描電路讓led矩陣顯示數字後就開始上網自學VHDL陣列怎麼使用,接下來就想辦法讓他進化變成跑馬燈了。
普通8*8矩陣螢幕版
進階RGB光平方版
這次的VHDL雖然不是太難但我卻從中得到很多樂趣,當看網路上別人用FPGA做8x8led時都是不會動的畫面但我的卻會動就有一種魔名的成就感,甚至如果指導老師給我長一點的時間或許我可能就做出pwm調光的led矩陣吧,如果會動又有pwm調光的led矩陣或許可以拿來播影片了😂,希望之後有時間可以完成pwm調光led矩陣。
高二
高一升高二暑假時剛好被科主任問到要不要想一個題目參加專題比賽,這時因為暑假在重看哈利波特電影所以對魔法世界有股憧憬,所以就隨口跟主任提魔法棒遙控器的想法,沒想到主任竟然同意製作這個無釐頭的題目,也剛好我同學想要做光立方看看然後我想說光立方或許能當作施展魔法的顯示器,於是我就跟他一拍即合一起報名了專題製作創意組!
演算法效果展示(實際辨識到揮出正方形)
這個項目本來是要報名專題競賽創意組的 但在初選資料繳交前夕我們印錯 年份簡章 導致要繳交資料時發現已經過期了 所以只能選擇棄賽。不過在製作 過程中也經歷了許多腥風血雨例如本來辨識手勢是要訓練一個tensorflow lite 模型在esp32上跑影像辨識來辨識手勢軌跡的 但是要訓練模型時發現訓練效果 遠不如預期 初步估計應該跟辨識模型及一些參數上調整問題有關 對於完全沒 接觸過機器學習的我, 選擇先跟專題老師提出目前遇到的問題 老師表示已經接近截止日了還是先 用傳統if else暴力破解看看 然後我就發揮以前的if else暴力破解影像辨識 的經驗搞出一個還堪用的算法了 這時本來預計紅外線遙控電器什麼的等繳交完 初選資料再繼續做剛好複選上可以趕上展覽就好 但就發生了報名沒上的問題 後續因為寒假開始就不了了知了 直到高職博覽會時指導老師突然說要展出我們 的專題 於事我連夜趕工終於加上藍牙控制手機播放音樂功能展覽出去了!在這 過程中我深刻認知檢查文件日期是多麼重要的一件事以及一大堆陣列的邏輯使 用還有認識了tensorflow 對於往後使用幫助極大!
高二
在2022年暑假我看到今年TIRT比賽的海報 其中視覺辨識無人車項目最讓 我感興趣因為視覺辨識是我沒接觸過的領域 我覺得可以趁機接觸這個領域順便 跳脫舒適圈一下 於是我馬上找了我們班上熱愛手作的同學組成了三人小隊開始 研發我們的自動駕駛小車車了。
要能達成車子跟隨兩條白色跑道線所組成賽道大部分人會使用市售的AI 鏡 頭模組來簡單的達成循線行走的目的 但由於我們時間還有3個月我自認為不要 做這種沒有技術含量的作法 於是我開始了自研跑道辨識系統的道路了。不由於 我完全沒接觸過機器學習所以我打算不用機器學習來挑戰製作一個跑道視覺辨 識 下一頁將會對我的視覺辨識做詳細的製作說明。
本次比賽只提到這些部分是因為雖然我們三個月前開始準備比賽 但是團隊 合作效果並不理想 造成我個人專注在視覺辨識研發 以及過於相信車體研發的 組員 導致我們在比賽前幾天我的視覺辨識程式趨近於完成只剩下調整參數階段 但車體研發組員卻尚未完成車體及硬體電路組裝 所以我只能在比賽前一晚承擔 了所有 開始寫arduino 控制馬達程式、調整車體等等 但很不幸的在比賽當天 早上2 點我們的樹莓派無預警故障無法開機 經過30 分鐘撿修後還是回天乏術 所以只能在群組上跟組員宣告比賽只能棄權的壞消息。經過這次經驗我學習到了 時間分配的重要性以及獲得身為隊長團隊領導能力的寶貴經驗希望在往後的比 賽能夠改進。不過這次的視覺辨識研發也讓我學到了很多圖像處理的知識 其中 我濾掉雜訊的方法是用侵蝕像素再膨脹的方法本來以為我是用一個邪門的方法 但後來在github上看到也有人這樣用瞬間有種想法跟大神一樣的優越感xd
高二行動裝置課程自學延伸
這一門課教的是利用APP inventor 來製作安卓手機APP 老師教了我們使 用圖片、標籤、按鈕以及文字輸入盒的基本介面元素使用 還有一些基本的變數、 運算邏輯、控制介面的積木程式使用。但因為我個人覺得App inventor 做出來 的介面不太好看並且不能在 ios 上下載下來執行是一個小缺點 所以我就開始 利用 iPad 的 Swift Playground 軟體以及Chat GPT 開始自學 Swift 語言並 製作了一個簡單的猜拳遊戲。
這次的行動裝置實習老師透過較簡單的方式(積木程式)來教同學製作app 的基本觀念 但若對app製作真的有興趣的話可以再去自學java、swift 等等的 語言。並且我在這次使用swift製作猜拳app 時也學習到了常用的UI 架構 知道 了平常遊戲軟體以及購物軟體…等的UI架構差在哪裡 還有使用swift ui 這個 函式庫來達成一些很順滑的UI 動畫來增加整體介面質感。所以經過這次的小專 案後希望我之後能再利用swift 來製作更大型的app 更實用的app 來上架app store給更多人使用到。
高二
我們學校的成績系統是外包給新河資訊有限公司他們公司的介面邏輯及設 計要吐槽都不知道從哪裡吐槽起了 又剛好資訊科技自選作業有自己訓練影像辨 識的選項 剛好我一個平常也熱愛手作的同學選了這個功課 在他跟我展現他訓 練的驗證碼辨識模型有多準的同時我就說還是乾脆搞一個新的成績查詢系統 我 們一拍即合說好他負責爬蟲我負責api、server 還有介面設計 接下來就來介紹 我負責的部分。
ios app 示意圖
使用chatgpt製作的網頁
因為這次的製作讓我學到了很多網路知識例如:路由器、socket、http https 的差別等等 也激發了我對網頁三件套的認識之後暑假就開始學了。利用 chat gpt 在做網頁設計時也發現到雖然ai 很強但對於大型專案還是不太擅長 因為 傳送程式碼有字數限制必須分段傳送十分影響效率 並且與ai 進行程式製作時 也必須有底子才行 例如這次在與chat gpt 溝通時若無法執行我也沒有debug 能力所以花了很多時間在與他溝通 結果到後面雖然效果不錯但程式碼超髒無用 程式碼一堆 也因剛開始溝通不佳導致整體架構變得超奇怪 最後索性開始自學 網頁三件套整個網頁打掉重練 但在第二版製作過程中校方更新了成績系統介面 變好看了 在與同學討論後認為時間珍貴若我們真的做出來了對其他同學吸引力 也不高了所以就放棄繼續網頁製作 雖然沒繼續做了但我也成功習得基本撰寫網 頁三件套的能力👍ios app的部分因為我本人想學Swift所以就繼續當作我的練 習題目製作下去了 也因為這個題目我學會了Swiftui、表單製作、底部功能鍵、 堆疊式介面的應用 這次的成績系統改造計畫真的瞬間讓我技能樹成長超多!
高二~高三暑假
我從高一開始因為在網路上開始看到一些人在網路上做模型火箭的影片以 及看到SpaceX 火箭回收技術的成功突然覺得超酷所以就啟發了我對火箭的興趣 當時的我就開始在學校跟一群志同道合的同學開始設計製作模型火箭 雖然因為 燃料研發貧頸試飛了大概十幾二十次都沒有成功 但我也在其中累積了一些航電 知識 剛好在這次暑假前在臉書上看到大名鼎鼎的陽明交大前瞻火箭研究中心 (ARRC)開放暑期實習的機會 剛好想進去學習一下真實火箭的航電以及燃料技術 來讓我們的模型火箭成功上天 但當時我處於高二升高三的階段所以暑假照常理 來說應該要奮發向學參加暑輔 並且我同時身為全國技藝競賽數位電子選手候選 人 所以十分猶豫要不要投自傳履歷過去 不過在我與家人分享這個機會時他們 表示這個機會難得先投履歷過了再說 兩天後我很榮幸且意外的通過了研究中心 副主任的認可獲得了實習機會 在這之後我審慎的思考我想要的未來是什麼 最 終我認為雖然選擇當技藝賽選手或許在未來升學比較有幫助 但我內心覺得或許 去ARRC 才是我想要的吧 也因為我認爲技藝競賽數位電子組比賽內容及比賽生 態已經與技藝競賽存在意義背道而馳 所以最後決定放棄數位電子選手身份 放 手追夢!
這次我實習的第一個任務是設計箭身氣體姿態控制系統(RCS)的推力量測系 統(軟體ui 及硬體程式)但因為有簽署NDA(保密協議)的關係因硬體部分牽扯箭 身設計故以下僅展現軟體ui及測試相關圖片
此圖片僅為測試版本畫面且畫面中數值僅為測試程式亂數生成不具任何 參考價值
此項目是因為航電組學長看到我之前設計的 UI 覺得我很適合的小 project 希望我來幫他們完成的項目 但因為開始製作時已接近開學所以介面只做了這一 頁 不過還好這項目不是必須所以可能開學後慢慢完善了
此網頁可以掃描電子材料包裝條碼來登記出庫入庫數量 此圖片以學生 證條碼測試
本來想像中這個項目應該蠻簡單的 但沒過多久第一個問題就跑出來了 就 是nrf24l01 這個無線電模組不知道為什麼把功率設在強時 常常斷訊 還好經 過測試教室的大小設定為低也收的到訊號 後來又遇到有些表演會用到投影機 但我們的設備會擋到 這本來讓我很困擾 不過腦袋突然靈機一動 不就是把鏡 子轉到最上面就好了嗎 就解決了😅。
雖然這次實習因為NDA(保密協議)的關係只能透露冰山一角的東西 但應該 也能看出來我對這次實習經驗真的充滿熱血也收穫良多 在這期間因爲我是暑輔 實習同時進行所以特別感謝各科老師的大力支持與包容讓我上課上到一半衝去 新竹實習這樣😅 也因為暑輔實習桃園新竹兩邊跑的關係我也深刻學習到時間管 理的重要性讓我更會利用零碎的時間了。這次實習我因緣巧合剛好有接觸到 UI/UX 設計的部分這是我之前接觸較少的領域 經由這次實習我開始學會使用 Figma、PyQt、html、css 前端相關工具Or程式語言 真的獲益良多尤其在會議 上我發表我的作品時各位學長異口同聲wow 一聲出來真的很有成就感。 另外我平常也會去幫忙推進組及結構組做一些打雜工作 所以瞬間點了很多 技能樹 其中最有用的是鈑金設計cad圖之類的因為我身為電子科平常根本不會 碰到這些 這次實習後我也開始自己設計鐵件來使用在平常的小專案上面克服了 3D 列印件不夠堅固的缺點。另外這次實習中遇到的實習生也都來頭不小 大學 實習生基本都台清交成學生 高中實習生除了我以外都是康橋、美國學校、新竹 實驗學校之類的 但其中有一位跟我同年紀的孟加拉美國學校實習生讓我印象最 深刻 他在實習期間都坐我旁邊打他對混合引擎研究的論文 然後他還在孟加拉 美國學校帶領一個火箭團隊製作火箭 我頓時覺得雖然跟他同年紀但他卻利用時 間做了比我多好多好多的事情 聽了他的經歷以後我希望我之後大學能像他一樣 成為為了夢想挑戰自我努力追夢的人🦸
高三
10 月份剛好是TIRT視覺辨識無人車駕駛比賽開始的時間 所以我與我去年 的隊友再次組成三人小隊開始準備比賽 去年的我們發現樹莓派效能略顯不足為 了解決這個弱點 我靈機一想想到我暑假學的swift語言 突然覺得使用手機來 當作主要開發板是一個很好的解決方案例如手機擁有高畫質鏡頭、高效能處理器、 高精度九軸imu 等等優點 於是我開始著手研究如何執行 發現由Google 提出 的Deeplab V3 語意分割機器學習框架十分適合拿來辨識道路 所以就開始研究 如何將Deeplab V3 模型裝到ios app了!
這次實作ios app 機器學習成果比預想好很多 僅用180張圖片訓練出來的 模型預測效果已經超出預期 如果之後比賽方開放場地圖供我們進去練習獲得實 際跑道數據訓練更多張圖片進去效果應該不錯吧 不過唯一的小問題是我們有點 高估手機處理器的效能以為幀率60以上輕輕鬆鬆 但實際情況卻只有12幀左右 的表現 後來我們嘗試把圖片畫質從512*512 縮小至128*128 就能達成將近 70 幀的效果 並且道路辨識也不用太高清的解析度所以我們就改用這個方法了! 因為這次道路辨識效果遠超過預期所以我就把之前高一時隨便講講的校園自動 駕駛車計畫再次跟幾位同學提出 幾位對維修腳踏車有興趣的同學也對這個計畫 十分有興趣 所以為了不讓這個計畫變成説說而已的計畫我馬上開始向組員募資 並在募資達14000元時馬上採購了一輛二手六人座協力車放置在科館內 期待往 後成為唯一一間擁有自動駕駛車輛的高中職學校!
目前辨識模型成果
電動車狀態顯示app
已實際採買車輛進入校園製作
高三
會想製作這個app是為了想要達成實際上架應用商城的夢想,又剛好對目前較熱門的幾款倒數app桌面小工具風格不太滿意,所以就打算利用現有的一些SwiftUI知識來挑戰製作一個結合待辦事項及倒數小工具的倒數app。
本來在我去年的學習計畫中有一項大二要實際上傳App到應用商城的夢想,但隨著後續越來越多作品有接觸到手機App的製作,我也越來越熟悉Swift這款年輕且開發社群極為活躍的語言,為了想要讓自己製作的App讓更多人使用兒不再僅存於自己的手機,我決定蛋蛋捏下去花了3400元訂閱了蘋果開發者帳號,為了不讓辛苦省下來的錢浪費掉,我日以繼夜的在趕工生出阿北倒數,開發途中我意識到上架App跟自己做給自己用的App有著極大的區別,上架App需要考慮使用者的任何情況發生,不像自用App可以知道怎樣會觸發Bug而去避免使用特定方法操作,所以時間成本大大提升,也會發生例如我中途本來想要將待辦功能使用EventKit與蘋果原廠提醒事項App做結合,雖然有成功做出同步資料的功能,但礙於ios省電調度策略的關係提醒事項內資料並不會即時更新,所以造成了兩個App資訊不對等的奇怪現象,這時為了實際使用體驗我也忍痛捨棄這個花了我整整一天時間研究的版本,從舊版本Git開新的branch沿用自製資料結構了。
總而言之,這次的上架App計畫讓我深刻的瞭解到一個東西要商用以及自用的製作複雜度是天差地遠的,也在途中爬了許多Swift的教學文章還有YT上Sean Allen及CodeWithChris的教學影片學習了很多App開發的小技巧,最重要的是增加了很多App開發經驗,現在在回看程式碼我會發現很多地方可以有更好的解決方案,如果可以希望能在未來更新改善。
© 2024 SamJiang