前言
Hi 大家好,我是梅森。這篇想跟大家聊聊我第一次參加 IEYI 世界青少年發明展的經過,也就是 2025 年的臺灣選拔賽。我跟同組兩位夥伴做了一台會自己判斷擁擠的智能電梯,英文名字是 Intelligent Elevator Traffic Management System,最後很幸運拿到金牌,也拿到代表臺灣去大阪參加世界賽的門票。
這台作品是三個人花很長時間一起磨出來的。同組的張靖杭學長也寫了一篇初賽紀錄,他把技術細節整理得很完整,想看硬體怎麼做的可以去讀他那篇。我這篇會站在自己的角度,講我們是怎麼想到題目的,怎麼把一整台電梯縮成一個小模型,辨識到底怎麼運作,還有比賽現場那些讓我心臟差點停掉的意外。

一切從一台很擠的電梯講起
會挑電梯這個題目,說穿了是從生活裡的抱怨長出來的。臺灣夏天很熱,電梯又常常擠得要命,卡在裡面的那幾秒真的會讓人心情變差。我們幾個就開始想,有沒有辦法讓電梯在人多的時候跑得聰明一點。
想著想著,我們挖到一個更根本的問題。現在的電梯是靠重量感測器判斷滿不滿,可是重量根本不等於空間。有時候電梯裡已經被人跟行李塞得滿滿的,總重卻還沒到上限,這時候電梯還是會乖乖回應外面每一層的呼叫,一層一層停。門一開,外面的人看到裡面這麼擠也擠不進來,白等一場。
後來我們又聊到一個更嚴重的狀況。萬一高樓層有人出意外要緊急送醫,或是救護人員要趕上去,只要中間有人按電梯,電梯就會被攔下來。這中間被浪費掉的,很可能就是救命的黃金時間。這個念頭讓我們決定,除了讓電梯會判斷擁擠,還要多加一顆能搶回控制權的緊急按鈕。
我們想做的兩件事
把想法收攏之後,我們的作品其實在解兩個問題,剛好對應到兩個功能。
第一個是電梯空間辨識模組。我們用一顆朝下的鏡頭盯著電梯地板,靠背景相減去算地板被佔掉多少。一旦判斷裡面已經很擠了,電梯就先不理外面的呼叫,只回應裡面乘客按的樓層,不再一直停下來讓月台的人失望。
第二個是緊急按鈕。住戶或救護人員遇到緊急狀況時按下去,電梯會放掉所有外部呼叫,直接把人送到需要的樓層,同時觸發警報器,讓整棟樓知道電梯正在處理緊急情況。
我們有想過這顆按鈕會不會被小孩亂按。討論之後決定不要為了防亂按加一堆關卡,因為真的出事的時候,你只會希望它越好按越好。所以我們改成按下去就會發出很大聲的警報,用這個方式嚇阻想亂按的人。
把一整台電梯縮進一個模型
比賽要把作品扛到現場,所以我們得想辦法把一台電梯縮成搬得動的模型。這段是我這次做起來最有感覺的地方。
分工上,我主要顧影像辨識跟作品的外型模型,哪裡缺人就去補。學長負責電路設計跟焊接,另一位夥伴顧電梯的運行邏輯還有作品說明書。

硬體上,我們這次不再用馬達把電梯艙吊著跑,而是改成步進馬達搭配線性直線滑軌,讓電梯艙沿著軌道上下,穩很多。樓層也從五層減到三層,比較好設計。整台的大腦是一台樹莓派 4。

過程當然沒這麼順。一開始就卡在電源。樹莓派的 5V 根本推不動馬達滑軌,只好外接電源。後來我們找了一顆 PD 誘騙器,把 5V 的充電頭騙出 12V,才把電壓問題解掉。
外型的部分,我先用厚紙板做了初版,跟負責外觀的夥伴喬電梯的大小還有內部空間怎麼擺,最後決定做成一台電腦主機造型的電梯,再用雷射切割切出來。



辨識這段,我繞了好大一圈
影像辨識是我花最多心力的部分,也是我覺得最值得講的一段。
我一開始想得很直覺,用 YOLOv5 nano 去數電梯裡有幾個人。真的做下去才發現一個大盲點。YOLO 只認得人,它不認得空間。如果電梯裡塞的是行李或紙箱這種非人的東西,明明佔了位子卻不會被算進去,電梯就會誤判成還很空。這跟我們最想解決的問題完全相反。
想通這件事之後,我掉頭回到最初的設計,用 OpenCV 直接判斷地板還剩多少空間,不再去數人頭。做法是拿現在的畫面跟原本空的地板去比,被蓋住的面積越大就代表越擠。把幾個版本相依的坑填掉之後,辨識大致就能動了。

這一段對我影響蠻大的。它讓我很具體地體會到,選技術不是看哪個聽起來比較潮,而是看它到底解不解得了你真正的問題。YOLO 很強,可是用錯地方就是不行。反而 OpenCV 這個看起來樸素的做法,才真的貼合我們的需求。
卡了快兩個月的電梯邏輯
真正折磨我們的是電梯的運行邏輯。這個問題卡了快兩個月,一路卡到賽前一週都還沒解決。
後來我們去研究真實電梯是怎麼跑的,才知道一般電梯裡通常有兩到三片晶片在分工,一片管馬達,一片記錄各樓層的請求,一片跟其他電梯溝通。可是我們整台電梯只有一台樹莓派,要它一邊跑馬達一邊隨時接收樓層請求,實在很難兼顧。
我們想過加一顆 ESP32 來分擔,但一想到供電又是一個大坑就放棄了。跟老師討論之後,我們生出一個折衷做法,讓程式一邊跑一邊反覆確認有沒有新的樓層請求,大概是這個流程:
有人按三樓,電梯開始跑,過一秒,確認外面有沒有請求,馬達繼續跑,再確認外面有沒有請求,就這樣一直循環。
邏輯上是通的,但我們忽略了一件事。步進馬達每跑一小段就要停一秒做判斷,從旁邊看就是一台一頓一頓超級卡的電梯。而這時候已經是賽前一週了。
我們重讀一次簡章,發現 IEYI 其實很在意創意跟設計思考這種偏設計師思維的東西,不見得只看你硬體有沒有完美運作。所以我們臨時轉彎,我另外用 Python 寫了一套智能電梯模擬系統,把電梯的運行邏輯還有外觀模擬出來。因為是純軟體,沒有馬達這個物理因素,就不會有停一秒的問題。就這樣,我們帶著一個還不算完整的作品上了比賽現場。

比賽當天,比我想的還混亂
先講一件現在回想很好笑的意外。比賽前一天,我們的馬達滑軌還沒固定好,我圖方便就直接拿熱熔膠去黏。結果我忘了步進馬達待機會發熱,等我們測完基本動作,馬達的熱剛好把熱熔膠融掉,整根滑軌就這樣應聲倒下。當下我們都嚇壞了,趕快檢查線路跟馬達有沒有燒掉,還好沒出什麼大事,最後改用電火布把它綁好。
到了現場,我們拿平板當電梯艙的地板,鏡頭朝下對著它,再接上我寫的模擬系統來展示。

因為是第一次比 IEYI,我們其實搞不太懂評審的問答方式。後來才知道總共有四位評審,分別看創意性,市場效益性還有操作作動性,最後一位是隨機的,每位大概兩分鐘的報告加問答。第一位評審來的時候我們還不知道他是創意評審,就照標準流程從頭講一遍,講完還剩半分鐘,結果他什麼都沒問。
從第二位開始我們就學乖了,會針對他負責的類別加重介紹的比例。遇到看市場效益的評審,我們就強調緊急按鈕平常真的用不到,可是萬一用到你會很慶幸有它。遇到看操作作動的評審,就多講電梯怎麼自動判斷擁擠。

講解的過程其實有點煎熬,因為評審幾乎都沒提問,讓我們一度很緊張,以為他們對我們的題目沒興趣。
居然拿了金牌
結果我們這台智能電梯拿到了金牌。要用一句話形容這次比賽,大概就是過程刺激,結果意外。
會說意外,是因為我們的電梯邏輯根本沒設計好,成品沒辦法真的跑,只能靠模擬系統加一台會上下移動卻沒有任何邏輯的馬達來撐場面。在一個這麼看重設計跟創客精神的比賽裡,這個狀態其實很不利。
回學校之後我們開了一次復盤,主要在想兩件事,一是我們哪裡做得好,二是評審為什麼有時間卻不太提問。指導老師點醒了我們,發明展的評審很多來自藝術或設計背景,不見得每個都懂技術。他們更想聽的是你的思考邏輯,你的設計方針,你怎麼發現問題又怎麼解決,有沒有想過每個做法的利弊。而我們在後面幾輪剛好很著重講這些,評審可能已經聽到他想聽的了,也就沒什麼好追問。
我報告的時候有偷偷觀察每位評審的表情,發現只要一講到緊急按鈕跟我們的設計思考,評審的神情就會變認真。所以後面幾位我都刻意加重緊急按鈕的比例,也許這真的幫我們多撈了一點分。
這面金牌還帶來一個很大的意外收穫。我們被邀請代表臺灣,去日本參加 IEYI 的世界賽。
寫在最後
第一次完整走完 IEYI,我最大的體會是,技術只是其中一塊,怎麼想,怎麼解釋,怎麼面對意外,一樣重要。我們的作品在技術上有很明顯的缺口,但因為我們很清楚自己為什麼做這個題目,每個設計背後在解什麼問題,反而在一個重視設計思考的比賽裡站穩了。
從辨識那段的 YOLO 掉頭回 OpenCV,到電梯邏輯卡兩個月最後只能改用模擬系統,這些不完美現在回頭看,反而是我學最多的地方。
既然要去世界賽,我們勢必要重新設計。外型我打算改成可以拆開帶出國的版本,邏輯也要好好想辦法,讓它在只有一台樹莓派的情況下真的跑順。這些我會再寫一篇大阪決賽的紀錄接著講完。謝謝一路上幫過我們的老師跟夥伴,也謝謝看到這裡的你。我們大阪見。