結合果蠅蕈狀體神經網路之電子鼻
於水果熟成與腐敗判別之研究
結論:可行,建議執行。 用 M5Stack 與三顆氣體感測器做成仿果蠅電子鼻,判斷香蕉的熟成階段。研究不只比較準確率,而是檢驗果蠅嗅覺的每一個步驟分別帶來什麼能力:換濃度也認得、只學一次就會、學新東西不忘舊的。先導模擬支持這三項;其中「增益控制」原理搬到傳統方法上也同樣有效,這也列為結論之一。模擬中果蠅模型在濕度干擾(E8)表現較差,60 秒快速判斷則各方法都做得到。真實感測器能否重現,是 11 月要先驗證的最大風險。
題目、研究問題與假設
果蠅靠嗅覺尋找發酵中的水果。牠的「蕈狀體」只用約 2,000 個 Kenyon 細胞,就能分辨上千種氣味,而且學一次就記得。本研究把果蠅嗅覺的每一個步驟做進電子鼻,逐一檢驗每個步驟帶來什麼能力,最後用來回答生活問題:這根香蕉還能不能吃?
果蠅嗅覺的五個機制 → 電子鼻的五種能力
| 果蠅的機制 | 電子鼻上的做法 | 預期帶來的能力 | 實驗 |
|---|---|---|---|
| 約 50 種嗅覺受器,用「組合」辨認氣味 | BME688 輪流 5 種加熱溫度+SGP30+SCD40,共 8 種「受器」 | 受器種類越多,越能分辨相似氣味 | E1c |
| 觸角葉的增益控制(側向抑制)+APL 全域抑制 | 除以總反應量;KC 只留前 5% | 換濃度也認得 | E3(E4 快速判斷為實用目標) |
| PN 適應(習慣常聞到的氣味) | 用平常聞到的背景氣味,扣掉平均模式(不需標籤) | 準確率提高、少樣本也學得會 | E2b、E5 |
| Kenyon 細胞稀疏編碼 | 2,000 個 KC 只亮 5%,可用真實連結體接線 | 不同氣味的編碼不互相干擾 | E2b、E2c |
| 多巴胺分區學習(每個 MBON 有自己的區) | 學某一類時只改那一類的突觸 | 學新水果不忘舊的、M5Stack 上當場教 | E6 |
研究假設(實驗前訂好,照實回報)
| 編號 | 假設 | 判斷標準 | 實驗 | 先導模擬 |
|---|---|---|---|---|
| H1 | 仿果蠅電子鼻能分辨 4 種氣味,準確率不輸傳統方法(非劣性) | 與最好的傳統方法差距 ≤ 5 個百分點 | E2 | 0.96 vs 0.995(差 3.1) |
| H2 | 只學 1 倍濃度,就能認出 0.25–4 倍的同一氣味;拿掉增益控制就做不到 | 果蠅模型每個濃度 ≥ 80%,且高於原始 kNN/邏輯回歸;消融組明顯下降 | E3、E2b | 0.95–1.00 vs 0.25–0.95 |
| H3 | 樣本放入 60 秒就能判斷,量測時間可從 4 分鐘縮短(實用目標,不是果蠅專屬優勢) | 果蠅模型 60 秒時準確率 ≥ 85% | E4 | 0.92(傳統 0.83–0.89;30 秒時果蠅 0.69 較差) |
| H4 | 每類只給 1–3 個樣本,果蠅模型就學得會 | 1 個樣本時高於原始 kNN/邏輯回歸,差距大於 20 次抽樣的標準差 | E5 | 0.88 vs 0.65–0.67 |
| H5 | 學會新的一類後,舊的類別不會被忘記 | 舊類別準確率下降 ≤ 10 個百分點,傳統逐步更新的邏輯回歸下降更多 | E6 | −6 vs −77 個百分點 |
| H6 | 判斷熟成階段要「組合比例+強度」兩條路,只看比例不夠 | 加上強度神經元後,香蕉準確率明顯提升,且不輸傳統方法(差距 ≤ 5) | E7 | 0.91 vs 0.74(邏輯回歸 0.92) |
| H7 | 電子鼻能比肉眼提早發現香蕉開始腐敗 | 多數香蕉提早 ≥ 1 天 | E7 | 模擬中位數 0 天 |
「先導模擬」只代表程式與設計在模擬資料上行得通,模擬資料的反應是我們自己設定的,不能當成結果。H7 是食品科學的主問題,不論演算法勝負都能回答。
創新點
- 不只比準確率,而是拆解果蠅嗅覺:每個機制都有「拿掉它」的消融實驗,說得出每一步的功能。
- 真實情境的能力:濃度會變、時間有限、樣本很少、會一直學新東西,這些正是家用電子鼻會遇到的問題。
- 兩條路的假說:辨認「是什麼氣味」靠組合比例,判斷「壞到什麼程度」還需要強度。模擬支持這個想法(但模擬本來就設定腐敗主要是味道變強),要用真實香蕉檢驗。
- 真實果蠅連結體:使用 2026 年發表的雄果蠅完整中樞神經連結體(male-cns v1.0)的 PN→KC 接線。
先導模擬評估
用模擬資料(含感測器上升曲線、每日漂移與雜訊)跑完整分析流程,比較「果蠅模型」「傳統 kNN/邏輯回歸」「傳統方法加上果蠅正規化」三種做法,確認實驗設計與程式可行,並作為研究假設的預期值。
果蠅模型的三個關鍵設計與依據
| 設計 | 生物依據 | 先導模擬(拿掉 → 保留) |
|---|---|---|
| PN 適應(扣掉平常的背景模式) | PN 會對常聞到的氣味適應 | 標準辨識 0.84 → 0.96;1 個樣本 0.58 → 0.88 |
| 強度神經元(8 個,只在熟成判斷用) | 果蠅同時保留氣味種類與濃度資訊 | 香蕉 0.74 → 0.91 |
| 分區學習(每類一個多巴胺區) | 多巴胺神經元各管一個 MBON 區 | 學新類別時舊類別權重完全不變 |
① 把「除以總量」搬到 kNN 上,常常跟完整果蠅模型一樣好:這列為結論之一,果蠅的增益控制原理可以移植;「不遺忘」則是果蠅分區學習特有的。
② 高低濕度(E8)果蠅模型比傳統方法差(0.90 vs 1.00);60 秒快速判斷(E4)各方法都做得到,不是果蠅專屬優勢。
③ 模擬假設同一氣體不論濃淡「比例都一樣」;真實金屬氧化物感測器的比例可能隨濃度改變,11 月第一週就要用真實稀釋液檢查(見時程的決策點)。
參數(強度神經元數量、KC 放電比例)只用「開發資料」決定:校正實驗前 4 天、香蕉第 1 批。之後固定不動,再用其餘資料測試。模擬資料的反應是自行設定的,只作預期值,不是實驗結果。
科別選擇與新穎度
為什麼選生活與應用科學科(二)
科(二)自第 63 屆(2023)起範圍是「生物科技/食品科學」,化工與環境改列科(三)。第 63–65 屆國中組科(二)全國得獎 42 件,類型集中在食品加工與物性、微生物與發酵、天然萃取物功效、生物材料,全部都有實際的濕實驗與生活應用,純模擬作品 0 件。所以本研究把「水果何時腐敗」放在主體,神經模型與電子鼻定位為解決問題的工具。
| 屆 | 科別 | 作品 | 與本研究的關係 |
|---|---|---|---|
| 58 | 生活(二) | 自製多功能行動光譜儀探討果汁新鮮度 | 同為自製儀器檢測新鮮度,但用光譜而非氣味 |
| 60 | 生活(二) | 可見光與近紫外線光譜分析蜂蜜品質 | 儀器檢測食品品質 |
| 65 | 生活(二) | 運用非破壞性電阻抗法檢測超音波催化效果(香蕉) | 分科後的新科(二),電子量測食品,同樣用香蕉 |
| 65 | 生活(二) | 自釀釋迦醋之探討 | 發酵題材,可作延伸實驗對照 |
歷屆作品新穎度比對
比對範圍:國中組第 56–65 屆(2016–2025)全部科別全國得獎作品,共 1,086 件。
限制:只比對全國決賽得獎作品的名稱,未含縣市賽作品,也未逐件閱讀內文。
評審可能的質疑與回應
「這比較像工程,不像食品科學?」
說明書中食品實驗(E7 香蕉與標準答案量測)佔一半以上篇幅;題目把「水果熟成與腐敗」放在前面;結論以腐敗曲線與提早天數為主。
「為什麼要用果蠅模型,直接用現成 AI 不行嗎?」
E2 檢驗準確率是否不輸(非劣性);E3、E5、E6 檢驗果蠅機制帶來的能力:換濃度也認得、只學一次、學新的不忘舊的。其中「除以總量」這一步搬到傳統方法上也有效(果蠅原理可移植),「不遺忘」則是果蠅分區學習特有的。E2b 逐一拿掉機制,檢驗每種能力來自哪一步。
研究原理:果蠅怎麼聞 → 如何模仿
偵測對象:選「果蠅真正在聞」的氣味
| 氣體 | 在食物中代表 | 對果蠅的意義 | 對應感測器 |
|---|---|---|---|
| 乙醇 | 水果過熟、酵母發酵 | 強烈吸引 | SGP30、BME688 |
| 醋酸 | 發酵後期、變酸 | 吸引 | BME688 |
| 乙酸乙酯 | 熟水果香味 | 吸引 | BME688、SGP30 |
| 二氧化碳 | 呼吸作用、微生物生長 | 高濃度時逃避 | SCD40 |
果蠅嗅覺迴路與電子鼻的對應
硬體:M5Stack 電子鼻與採樣盒
氣體感測單元選擇
| 單元 | 晶片 | 量測項目 | 用途 | 決定 |
|---|---|---|---|---|
| Unit ENV-Pro | BME688 | VOC 綜合反應、溫度、濕度、氣壓 | 不同加熱溫度對不同氣體敏感。UIFlow 2 一次只能設一個溫度,本研究用程式輪流切換 5 段(200–360°C),得到 5 維氣味指紋 | 主力 |
| Unit Mini TVOC/eCO2 | SGP30 | 乙醇與氫氣原始訊號、TVOC | 乙醇是過熟與發酵的關鍵氣體 | 主力 |
| Unit CO2 / CO2L | SCD40/SCD41 | 紅外線式 CO₂、溫濕度 | 呼吸作用與微生物生長指標 | 主力 |
| Unit MQ | MQ-5 | 液化石油氣、甲烷 | 與食品關係小 | 不採用 |
| Air Quality Kit | SEN55 + SCD40 | PM、VOC、NOx 指數、CO₂ | 功能重疊且較貴 | 不採用 |
三顆主力感測器的 I²C 位址互不衝突(SGP30 0x58、SCD40 0x62、BME688 0x77),用 Grove 分接器串在 Core2 的 Port A 即可。
採樣流程與特徵
一次量測(約 12 分鐘)
每次量測的特徵向量
| 來源 | 特徵 | 維度 |
|---|---|---|
| BME688 | 5 段加熱溫度(200、240、280、320、360°C)下的氣體電阻(相對基準變化量) | 5 |
| SGP30 | 乙醇原始訊號、氫氣原始訊號 | 2 |
| SCD40 | CO₂ 濃度增量(ppm) | 1 |
| 環境 | 溫度、相對濕度(、氣壓) | 2–3 |
| 氣味特徵合計(溫濕度另外記錄,不進模型) | 8 | |
溫濕度本身不是氣味,但要記錄下來:E8 會檢查濕度改變時模型是否受影響;若影響大,再比較「放入模型」與「只用來校正」兩種做法。
採樣標準作業程序(SOP)
- 每天開機暖機 30 分鐘;量一次「空盒」當日基準。
- 樣本放入前,先在室溫靜置到與室溫相同(冷藏組需回溫 30 分鐘,避免溫度干擾與盒內結露)。
- 每個樣本量測時間、放入位置、盒子開關順序都固定;記錄開始時間。
- 每量 5 個樣本插入一次空盒量測,用來追蹤漂移。
- 樣本量測順序每天隨機排列,避免「最後量的總是比較爛」的系統誤差。
仿果蠅蕈狀體模型
第一層:投射神經元(PN)— 增益控制、適應、上升/下降
r 是樣本穩定值、b 是當日乾淨空氣基準。除以總量後,同一種氣味不論濃淡,比例都一樣(增益控制)。適應把「平常就聞得到的模式」扣掉,只留下這個樣本特別的地方;「平常」可以從沒有標籤的背景量測學來,就像果蠅平常聞過很多東西,但大多沒有獎懲。最後每個通道拆成上升(z⁺)與下降(z⁻)兩個 PN,因為放電率不能是負的,共 16 個 PN。判斷熟成時,另外加 8 個強度神經元,各自偏好一段總反應量。
第二層:Kenyon 細胞(KC)— 稀疏編碼
W 是 2,000 × 16 的接線矩陣:隨機接線(每個 KC 接 7 個 PN),或真實連結體接線(雄果蠅 male-cns v1.0,右腦 1,891 個 KC,見教學)。「只留前 5%」是 APL 神經元的全域抑制,它本身也不受濃度影響,所以消融實驗要把「除總量」和 APL 一起拿掉。
第三層:輸出神經元(MBON)— 多巴胺分區學習
每一類有自己的輸出神經元,多巴胺只改那一區的突觸(分區學習),所以學新的一類時,舊類別的權重完全不變(自動測試已驗證)。除以樣本數(恆定調節)避免樣本多的類別每次都贏。判斷時取 oc 最大者,信心度用 softmax 換算。
對照方法
| 方法 | 用途 |
|---|---|
| kNN(k = 1、3)、邏輯回歸 | 傳統方法(原始特徵,標準化) |
| kNN/邏輯回歸+果蠅正規化 | 只把「除以總量」這一招搬過去:果蠅原理能不能移植? |
| 單一門檻(只看乙醇) | 最簡單的做法,代表「一顆感測器夠不夠」 |
| 果蠅模型的消融版本 | 拿掉增益控制/適應/稀疏編碼/分區學習,各一個(E2b) |
| BME AI-Studio(選做) | Bosch 官方工具;UIFlow 輪流加熱的資料可能無法匯入,需先試 |
公平原則:少樣本實驗中,傳統方法也能用同一份無標籤背景資料做標準化;所有參數只用開發資料決定。
移植到 M5Stack
程式已寫好(enose_classifier.py + mb_infer.py)。模型連同 PN 適應、強度神經元與量測時間設定存成 JSON,已在電腦上驗證 M5Stack 版與電腦版的每一筆判斷與信心度一致。ESP32 上的速度與記憶體要等上機實測。
標準答案:香蕉熟成分級
模型要學的「正確答案」必須在實驗前定好,並且不看電子鼻讀值。以下為初版,須先與指導老師確認。
| 指標 | 量法 | 用途 |
|---|---|---|
| 果皮色階 | 常用的 1–7 級香蕉色卡,固定光源與背景拍照 | 分級主依據 |
| 褐斑面積 % | 照片以 ImageJ 門檻法計算褐色像素比例 | 分級主依據,可量化 |
| 糖度(°Brix) | 取果肉汁液,糖度計 | 熟成曲線;破壞性,每天犧牲 1 根 |
| pH | 果肉加蒸餾水 1:1 打勻 | 變酸指標;破壞性 |
| 重量損失 % | 每天同一時間秤重 | 水分散失;非破壞 |
| 肉眼判定「不能吃」 | 3 位不知道電子鼻結果的同學看照片投票,多數決 | E7 比較提早天數的對照 |
破壞性量測(糖度、pH)用「陪測香蕉」:同批多買幾根,每天剖一根,不動到電子鼻追蹤的那幾根。
實驗總表(可搜尋、可篩選)
| 編號 | 類別 | 實驗 | 資料 | 成功標準 | 月份 |
|---|---|---|---|---|---|
| E1 | 感測器 | 感測器特性:4 種標準溶液 × 6 種稀釋(0.1–4 倍) | 1 倍各 10 次、其他各 5 次;1 倍另測高/低濕度 | CV < 10%;上升/回復時間;第 1 週先檢查濃度比例是否穩定 | 11 月 |
| E1b | 感測器 | 漂移:連續 7 天量空盒與同一瓶溶液 | 每天 1 次 | 扣基準後跨日 CV 變小 | 11 月 |
| E1c | 果蠅核心 | 組合編碼:受器種類 1→8 種 | 重用 E1 | 種類越多準確率越高 | 11 月 |
| E2 | 果蠅核心 | 標準辨識與非劣性(H1) | 重用 E1(中濕度) | 與最好的傳統方法差 ≤ 5 個百分點 | 12 月 |
| E2b | 果蠅核心 | 元件消融:一次拿掉一個果蠅機制 | 重用 E1 | 找出哪個機制造成哪種能力 | 12 月 |
| E2c | 果蠅核心 | 真實連結體 vs 隨機 vs 打亂接線(探索) | 重用 E1 | 無預設方向,任何結果都報告 | 12 月 |
| E3 | 果蠅核心 | 濃度外推:只學 1 倍,測 0.1–4 倍(H2) | 重用 E1 | 每個濃度 ≥ 80% 且高於原始方法 | 12 月 |
| E4 | 果蠅核心 | 提早判斷:放入後 30–240 秒就判斷(H3) | 重用 E1 原始記錄,不必重量 | 60 秒 ≥ 85%(實用目標) | 12 月 |
| E5 | 果蠅核心 | 少樣本:每類 1/3/5/10 個,測試含各種濃度(H4) | 重用 E1 | 1 個樣本時高於原始方法 | 12 月 |
| E6 | 果蠅核心 | 不遺忘+M5Stack 現場教新水果(H5) | 重用 E7;另做現場示範 | 舊類別下降 ≤ 10 個百分點 | 2 月 |
| E7 | 食品 | 香蕉熟成與腐敗:3 批 × 室溫/冷藏(H6、H7) | 每天量到腐敗 | 強度神經元提升準確率;提早 ≥ 1 天 | 12–1 月 |
| E7b | 食品 | 氣味特徵 × 糖度、pH、褐斑的相關 | 重用 E7 | 找出最能代表腐敗的特徵 | 1–2 月 |
| E8 | 感測器 | 濕度干擾:中濕度訓練,測高/低濕度 | 重用 E1 | 下降幅度與原因 | 2 月 |
| E9 | 延伸 | 自釀水果醋三期(選做) | 另量 | 能否分出三期 | 2 月 |
| E10 | 延伸 | 換水果:草莓或芭樂(選做) | 另量 | 香蕉模型能否沿用 | 2 月 |
設計重點:E1c、E2、E2b、E2c、E3、E4、E5、E8 全部重用同一份 E1 資料(4 種氣體 × 6 種稀釋),不必另外量測。
實驗步驟細節
E1 感測器特性(資料來源,最重要)
- 標準溶液:食用酒精、白醋、乙酸乙酯(或香蕉油香精)、清水。以「1 倍」為中間濃度,稀釋成 0.1、0.25、0.5、1、2、4 倍,6 種。
- 1 倍每種各量 10 次(訓練用),其他濃度各 5 次;1 倍另在低濕度(乾燥劑)與高濕度(濕紙巾)各量 5 次(E8 用)。共約 4 × (10 + 5×5 + 10) = 180 次,約 36 小時機器時間,分 11 月完成,每天順序隨機。
- 第 1 週決策點:每種氣體先量 0.25、1、4 倍各 3 次,計算「除以總量」後的比例是否接近(程式:
e3_concentration.py)。- 接近 → 照原計畫。
- 不接近(比例隨濃度改變)→ 加入 PN 的壓縮非線性(例如取對數或開根號,真實 PN 反應也會飽和),重新檢查;仍不行則把 E3 的測試範圍縮成 0.5–2 倍,並在討論中說明。
E2b 元件消融
完整果蠅模型與 4 個「拿掉一個機制」的版本,在標準辨識、濃度外推、少樣本三項各自評分。某機制「有用」的標準:拿掉後下降超過抽樣標準差。
E3 濃度外推
只用 1 倍濃度(中濕度)訓練,測試其他 5 種濃度。同時報告:原始 kNN/邏輯回歸、傳統方法+果蠅正規化、果蠅模型、果蠅模型拿掉增益控制。
E4 提早判斷
不用重量:把 E1 的原始記錄在樣本放入後 30、45、60、90、120 秒截斷,用截斷前 15 秒(一整輪 BME688 加熱)的平均當作「當下的值」。模型用完整 240 秒的資料訓練。如果 60 秒就夠,E7 香蕉可以把量測時間縮短,每天能量更多根。
E5 少樣本
每類只給 1、3、5、10 個樣本(從訓練日的各種濃度抽),各抽 20 次;測試集是保留的最後一天,包含各種濃度。所有方法都能用訓練日的無標籤資料做標準化或適應,只有那幾個樣本有標籤。
E6 不遺忘+現場教學
- 電腦上:先學新鮮、可食、過熟,再只學腐敗,比較舊類別準確率(對照:逐步更新的邏輯回歸、跨區懲罰的果蠅模型)。
- M5Stack 上(展示用):現場放一種新水果,按鍵「教」它一次,再測舊的水果仍能正確判斷。需要替
enose_classifier.py加一個「學習模式」(2 月)。
E7 香蕉熟成與腐敗(食品科學主體)
- 至少 3 批香蕉,每批 10 根編號:5 根室溫、5 根冷藏,另加 4–6 根「陪測香蕉」做破壞性量測(糖度、pH)。
- 每天:拍照 → 秤重 → 電子鼻逐根量測 → 陪測香蕉剖開量糖度與 pH。冷藏組先回溫 30 分鐘。
- 模型:果蠅模型+8 個強度神經元(第 1 批當開發資料決定參數,第 2、3 批測試);同時報告只看比例的版本,檢驗 H6。
- 提早天數:電子鼻「連續 2 天判為腐敗且信心度 ≥ 0.7」的第一天,對比 3 位同學看照片多數決判定不能吃的第一天。
數據分析方法
| 問題 | 分析方法 | 呈現方式 |
|---|---|---|
| 感測器重複性、漂移 | 變異係數 CV;扣基準前後跨日 CV | 表格、折線圖 |
| 標準辨識(H1) | 依量測日分組交叉驗證;非劣性:與最好方法差距 ≤ 5 個百分點 | 準確率長條圖、混淆矩陣、PCA 圖 |
| 哪個機制有用 | 消融:拿掉後下降是否超過抽樣標準差 | 分組長條圖 |
| 濃度外推(H2) | 只用 1 倍訓練,逐一濃度測試 | 準確率 vs 濃度(對數軸) |
| 提早判斷(H3) | 截斷原始記錄 | 準確率 vs 秒數 |
| 少樣本(H4) | 20 次抽樣平均 ± 標準差 | 學習曲線 |
| 不遺忘(H5) | 學新類別前後舊類別準確率 | 前後對照圖 |
| 腐敗(H6、H7) | 依批次切分;每根香蕉的「肉眼日 − 電子鼻日」 | 腐敗曲線、提早天數點圖 |
- 參數只用開發資料(校正實驗前 4 天、香蕉第 1 批)決定,寫進紀錄後固定。
- 傳統方法也給同樣的調整機會與同樣的無標籤資料。
- 假設與判斷標準在實驗前訂好(本頁),實驗後新增的分析要註明「事後分析」。
- 不論勝負,所有方法、所有濃度、所有批次的結果都報告。
工具:Python(numpy、scikit-learn、matplotlib),程式見實作教學;ImageJ 或 browning_area.py 量褐斑面積。樣本數少,只做描述統計與效果量,不過度宣稱「顯著」。
數據記錄表
| 欄位群組 | 欄位 |
|---|---|
| 基本資料 | 樣本編號、批次、第幾天、保存條件(室溫/冷藏)、量測日期時間、量測順序 |
| 環境 | 室溫、室內濕度、盒內溫度、盒內濕度、氣壓 |
| 基準 | 當日空盒 BME688 5 段電阻、SGP30 乙醇/氫氣、CO₂ |
| 感測器原始值 | BME688 5 段電阻值(每 3 秒一段)、SGP30 乙醇與氫氣原始值、TVOC、CO₂(每秒一筆) |
| 食品標準答案 | 照片檔名、色階、褐斑面積 %、重量、糖度、pH、硬度(可選) |
| 判斷 | 分級標籤、肉眼投票結果、模型輸出與信心度 |
| 加分項 | 培養皿菌落計數(需老師指導無菌操作) |
M5Stack 把每秒原始值存成 microSD 上的 CSV,檔名含日期與樣本編號;每天結束後複製到電腦並備份到雲端硬碟。
timestamp,sample_id,batch,day,storage,phase,bme_r0,...,bme_r9,sgp_ethanol,sgp_h2,tvoc,co2,temp_c,rh_pct,pressure_hpa 2026-11-03T14:02:11,B1-03,1,4,room,sample,51234,...,18877,17520,13210,145,612,26.1,58.3,1011.2
以上欄位名與數值只是格式範例,不是實測資料。
雲端系統架構(Zeabur)
目前只部署研究計畫網站。資料以 microSD 為主,雲端上傳是方便組員即時看曲線的加分項,不是實驗成敗的必要條件;網路斷線時實驗照常進行。若日後加上 /api,裝置金鑰放在環境變數,不寫進程式碼。
時程規劃(2026-10 至 2027-03)
| 月份 | 工作項目 | 檢查點/決策點 |
|---|---|---|
| 2026 年 10 月 | 採購、採樣盒、記錄程式;與老師確認分級標準;用模擬資料演練全部分析程式 | 能連續記錄 1 小時;每支程式都跑過一次 |
| 2026 年 11 月 | E1(6 種稀釋)、E1b 漂移、E1c 組合編碼 | 第 1 週:濃度比例是否穩定(決定 E3 範圍與是否加 PN 非線性);月底:4 種氣味分得開 |
| 2026 年 12 月 | 用開發資料固定參數 → E2、E2b、E2c、E3、E4、E5;E7 第 1 批香蕉(開發) | H1–H4 結果出爐;決定香蕉量測時間(依 E4) |
| 2027 年 1 月 | E7 第 2、3 批香蕉;E7b 相關分析 | H6、H7 結果;3 批腐敗曲線 |
| 2027 年 2 月 | E6(含 M5Stack 現場教學模式)、E8;上機實測;延伸 E9、E10(選做) | M5Stack 可現場判斷與學習 |
| 2027 年 3 月 | 撰寫作品說明書、海報、現場展示 | 說明書送老師審閱 |
寒假(約 1 月下旬至 2 月中)在家也能量香蕉,但電子鼻與採樣盒要能帶回家,需先確認。
預算(粗估,未查價)
所有金額都尚未查詢台灣經銷商實際價格,採購前需再確認。
風險評估與備案
| 風險 | 等級 | 影響 | 對策/備案 |
|---|---|---|---|
| 真實感測器的濃度比例會隨濃度改變 | 高 | H2、H3 的基礎(模擬假設比例固定) | 11 月第 1 週先測 0.25/1/4 倍;不穩定就加 PN 壓縮非線性,或縮小 E3 範圍並說明 |
| 三顆感測器反應速度不同 | 中 | 提早判斷時比例還沒定型(SCD40 每 5 秒、BME688 一輪 15 秒) | E4 從 30 秒起算;若 30–45 秒不佳,改以 60 秒為目標 |
| 「一直調到贏」的質疑 | 中 | 結果可信度 | 參數只用開發資料決定並記錄;傳統方法同等對待;全部結果都報告 |
| 果蠅正規化讓傳統方法一樣好 | 低 | 「果蠅模型最好」不成立 | 本來就列為結論之一:果蠅原理可移植;果蠅模型另有不遺忘、當場學習的能力 |
| 濕度干擾 | 高 | 金屬氧化物感測器對濕度極敏感,香蕉本身會釋放水氣 | 每次記錄溫濕度;固定採樣流程;E8 量化影響;PN 適應可部分抵銷;必要時盒內放定量乾燥劑 |
| 感測器漂移 | 中 | 同樣氣味每天讀值不同 | 每日量空盒基準;特徵改用相對變化量;每 5 個樣本插一次空盒 |
| 4 種氣體分不開 | 中 | H1 不成立 | 11 月檢查點;改用 3 類(乙醇、醋酸、清水)或調整 BME688 加熱組合;結果照實寫 |
| 每日量測工作量 | 中 | 每天約 2 小時,組員負擔大 | 縮短換氣時間(依 E1 回復時間);組員輪班;必要時每批降到 6 根 |
| 程式只在模擬資料上驗證過 | 中 | 真實資料可能出現沒想到的狀況 | 程式已完成(25 項測試);10 月用清水先跑通整條流程;M5Stack 上機失敗時用電腦判斷展示 |
| 香蕉批次差異 | 中 | 模型只記住某一批 | 依批次切分訓練與測試;至少 3 批 |
| 評審認為偏工程 | 中 | 被質疑不屬科(二) | 食品實驗佔一半以上篇幅;題目把「水果熟成與腐敗」放前面 |
| 模型不易理解 | 低 | 評審不熟神經科學 | 一張圖說明「果蠅怎麼聞 → 如何模仿 → 為什麼更好」 |
| 乙酸乙酯安全 | 低 | 揮發性有機溶劑 | 見「安全規範」;或改用香蕉油香精 |
安全規範
- 乙酸乙酯、酒精為易燃液體:遠離火源與加熱器,只取少量稀釋液,在通風處操作,老師在場。
- 腐敗水果與菌落培養皿:戴手套,用完密封丟棄;培養皿不開蓋觀察,丟棄前依老師指示處理。
- 實驗香蕉一律不食用。
- 抽氣泵出口朝窗外或通風處,不在密閉房間長時間排放。
- 鋰電池:M5Stack 內建電池,充電時有人看管,不在採樣盒內充電。
預期成果與應用
- 一台成本數千元、可現場展示、能即時顯示判斷結果的仿果蠅電子鼻。
- 三顆感測器對 4 種食品關鍵氣體的特性數據(靈敏度、重複性、回復時間)。
- 仿蕈狀體方法在少樣本學習與抗濃度變化上的定量比較,以及「側向抑制」這一步的消融結果。
- 香蕉在室溫與冷藏下的腐敗曲線,以及電子鼻比肉眼提早偵測的天數。
應用場景
家庭
冰箱或水果籃旁的小盒子,提醒「這串香蕉再 2 天要吃完」,減少食物浪費。
水果通路
倉庫抽檢時快速找出開始腐敗的箱子,避免一箱壞掉帶壞整批。
Zeabur 部署步驟
- 把專案推到 GitHub(
.omc、.remember、實驗原始資料已列在.gitignore)。 - 在 Zeabur 建立專案,選「從 GitHub 部署」。Zeabur 會偵測根目錄的
Dockerfile(nginx 靜態網站,監聽 8080)。 - 產生網域,例如
flyenose.zeabur.app(實際名稱部署時再定)。 - 之後每次 push 到
main,Zeabur 會自動重新部署;網頁設定為每次重新驗證,不會看到舊版。
行動清單
- 與指導老師確認題目、科別(生活與應用科學科(二))與香蕉分級標準
- 查詢 Core2、ENV-Pro、SGP30、SCD40 台灣經銷價格,更新預算
- 確認三個 Unit 的供電與電位規格,以及 Grove 分接器接法
- 採購零件、保鮮盒、風扇、抽氣泵、糖度計、pH 計
- 製作採樣盒(進氣、出氣、感測器固定座)
- 撰寫 M5Stack 讀取與 microSD 記錄程式,連續記錄 1 小時測試
- 寫好採樣 SOP 與數據記錄表,組員分工排班
- 用模擬資料把全部分析程式跑過一次(教學頁「各實驗怎麼跑」)
- 準備 6 種稀釋液(0.1–4 倍),寫好稀釋表
- 11 月第 1 週:0.25/1/4 倍比例檢查,決定 E3 範圍
- 用開發資料固定模型參數,記錄在實驗日誌後不再更動
- 完成 E1、E1b 感測器特性與漂移測試(11 月檢查點)
- 用真實 E1 資料跑一次完整果蠅模型(含 PN 適應),確認沒有程式問題
- 完成 E2、E2b、E3、E4、E5(果蠅核心實驗)
- 完成 E7 三批香蕉實驗與腐敗曲線
- 模型移植到 M5Stack,加入現場學習模式(E6),實測速度與記憶體
- 逐一查證參考文獻(原始論文、官方文件)
- 撰寫作品說明書、海報與現場展示流程
勾選狀態只存在這台瀏覽器。
參考資料(待查證)
- 國立臺灣科學教育館,全國中小學科學展覽會科別說明:twsf.ntsec.gov.tw/Article.aspx?a=38
- 全國中小學科學展覽會第 56–65 屆國中組得獎名單:
https://twsf.ntsec.gov.tw/activity/race-1/{屆}/high.html - M5Stack 官方產品列表:docs.m5stack.com/en/products
- M5Stack Unit Mini TVOC/eCO2(SGP30)說明:docs.m5stack.com/en/unit/tvoc
- Male CNS Connectome Consortium, "Sexual dimorphism in the complete connectome of the Drosophila male central nervous system", Cell (2026), doi:10.1016/j.cell.2026.08.015;Google Research 部落格:A connectomics milestone;資料
male-cns:v1.0(CC-BY 4.0) - 待補(需查原文):果蠅蕈狀體稀疏編碼與 APL 抑制的原始研究;以果蠅嗅覺迴路做相似度搜尋的「FlyHash」研究(Dasgupta 等人);Bosch BME688 資料手冊與 BME AI-Studio 使用說明;Sensirion SGP30、SCD40 資料手冊;香蕉果皮色階分級的文獻。
第 6 項只列出主題,作者、年份與期刊都還沒查證,寫進說明書前必須先找到原文。