班級儀器:核磁共振(NMR)儀、函數波形產生器(AWG)兼實驗室控制器
每個人都打造同一套儀器平台——一台每個實驗室都用得上的桌上型「瑞士刀」。2026 年度的做法是一塊班級板,每個人都一樣;專案 3 就是你在它上面打造的儀器——韌體、App 與外殼——並以一個很棒的專案網站呈現。 硬體刻意標準化,讓工作坊、設計審查與全班統一的印刷電路板(PCB)訂單方向一致; 你發揮的空間在軟體:介面、自動化與細節打磨,讓一塊電路板變成人人愛用的儀器。
專案 3:打造你的儀器
專案 3 是一台由你自己選定、建立在班級板上的儀器:使用板子各項能力的韌體、操控它的 App,以及在工作坊 3 設計的外殼——並以一個很棒的專案網站呈現。要做什麼儀器由你決定:示波器兼訊號產生器、資料記錄器、鎖相放大器、PID 控制器、NMR 儀、LINE 或 Telegram 機器人、Python 掃描、相機模組⋯⋯你要寫哪些韌體驅動程式,取決於你的儀器;你在工作坊 2 參與的那個區塊的驅動程式是很自然的起點,但不是必須。
專案網站是儀器的一部分。它說明 App 做什麼、怎麼用,用使用者能照著做的範例展示它能做什麼,並展現它的能力——螢幕截圖、量測結果、影片或動畫,以及很棒的介面。整個專案 3 只有一個儲存庫、一個專案網站,以及專案牆上的一張卡片。
這台儀器能做什麼
重點能力:它能做核磁共振(NMR)實驗。這塊電路板就是一台小型 NMR 儀。你自己繞的線圈套在一管水上,置於 2 mT 的磁場中,質子的頻率落在 89 kHz;電路板送出一個短脈衝進線圈、把自己的接收器暫時關閉,記錄自旋回傳的自由感應衰減(FID),App 就顯示出頻譜。板上其他東西——波形產生、類比輸入、開關——本來就是這樣一台儀器需要的。經驗法則:磁場決定頻率。同一台儀器只要換線圈、功率放大器與前置放大器,就能用在更高的磁場,訊號也大得多。
- 產生訊號:16 位元雙通道任意波形產生器——直流電位、斜波、正弦波與任意波形表,頻率到約 50 kHz、振幅 ±10 V(AO1、AO2)——再加上兩路硬體定時的觸發/時鐘輸出(5 V TTL),可達數十 MHz;還有 NMR 發射器:一組直接數位合成(DDS)訊號源與功率放大器,從約 40 kHz 起向上驅動線圈,接在 TX 接頭上。
- 監測訊號:八路 16 位元 ±10 V 類比輸入,全部走 SMA 接頭(AI1–AI8),量程可由軟體切換、最小到 ±0.64 V 以配合感測器量測,並記錄、繪圖。第 7、8 路輸入預設接 NMR 接收器的 I 與 Q 輸出;改接焊接跳線後,也能走它們自己的 SMA 接頭。
- 切換開關:前面板上的一組模組排針:七路 5 V TTL 訊號 MODULE OUT 1–7(另一支為保留腳),另有 +5 V 與接地,用來驅動光耦隔離的模組;另有螺絲端子的八路 5 V TTL 輸出、兩路高速光耦隔離輸入,一個可由韌體(firmware)切換輸入/輸出方向的 TRIG 接頭,以及驅動 NMR 磁場線圈用的 H 橋與大電流 MOSFET 開關(由外接 7–18 V 電源供電)——警報、連鎖保護(interlock)、序列動作。
- 什麼都能連:以原生 USB 連 Python;以 WiFi 連網頁、手機與訊息機器人。你的手機就是前面板(板上一顆小 OLED 顯示狀態);選配的相機節點可把影像串流進同一個 App——想試做相機 App 的人,有一台 ESP32-S3-N16R8-CAM 開發板 + OV3660 鏡頭(金華 #41395)可用。
系統架構
┌──── the CLASS BOARD: base (instructor) + 3 sections, A · B · C · one design, JLCPCB-assembled ×5, nothing to solder ────┐
AO1 AO2 ◄── ±10 V stages ◄── DAC8563 16-bit AWG ───────┐ ┌─── ADS8688 8 × 16-bit ±10 V ◄── AI1–AI8 (SMA)
TX SMA ◄── OPA564 power amp ◄── AD9834 DDS ────────────┤ ├─── NMR receiver ◄── RX SMA ◄── your coil
8 TTL out · 2 fast trigger out · TRIG in/out ──────────┤ │ preamp · blanking · I/Q mixer ──► ADC ch 7, 8
[section B: generation, timing, NMR transmitter] │ │ [section A: inputs and the NMR receiver]
ESP32-S3 dev board (socketed, u.FL antenna → SMA)
USB-C 5 V + data (or 5 V jack) ──► ±12 V · 5 VA · 3V3 ─┤ ├─── module header: MODULE OUT 1–7 · 2 isolated inputs
7–18 V external input ──► H-bridge · MOSFET ──► coils ─┤ └─── 16 SMA · OLED · LEDs · TTL terminals · Qwiic
[base: socket, buses, power entry and coil drivers] │ [section C: the front panel board]
└──────────── WiFi (phone/web app · WebSocket · OTA) · native USB (Python API)
│ │
[Python host: API, logging, plots] [PWA on your phone · bot alerts · optional camera node]
└──────────────── GitHub class repository + your project website + video ───────────────┘
+ main board 180 × 100 mm, 4 layers + front panel 180 × 100 mm flat on its back: 16 SMA (3 × 6, two positions free), TTL terminals, module header, OLED, 3 LEDs + 3D-printed box
MCU——微控制器(microcontroller,單晶片上的小電腦)的選擇(2026 年度已定案):採用標準 DevKitC-1 腳位、附外接天線接頭的 ESP32-S3 N16R8 開發板(dev board)(金華,NT$400),插在班級板的插座上,執行 Arduino 框架。有 WiFi 就能發展網頁/手機/機器人方向;u.FL 天線接到 SMA 穿板座,讓 WiFi 在密閉的金屬或壓克力外殼內也能用;開發板留下 31 個可用 GPIO(通用腳位)與一條 80 MHz 的 SPI 匯流排(晶片與微控制器對話的常見接線標準)給轉換器使用。核心電路採統一規格,讓全班訂單與設計審查得以順利進行——你的創意展現在韌體(在微控制器上執行的程式)、主機端軟體、介面與外殼上。
一塊班級板,大家一起完成。整塊電路板是同一個 KiCad(電路設計軟體)專案,放在一個班級儲存庫(repository:由 git 保存完整歷史的共用專案資料夾,放在 GitHub 上)裡。主板為 180 × 100 mm、四層板;第二塊同尺寸的 PCB 以三排 2×20 排針平貼在主板背面、與它平行,它的外側就是前面板——也就是儀器的正面:3 × 6 排列的 16 個 SMA 接頭(AO1 AO2 TRIG AUX TX FAST1 · AI1–AI4 RX FAST2 · AI5–AI8 與一個備用位置)、八路 TTL 的螺絲端子排、TX 線圈端子、一個 Qwiic、OLED 與三顆 LED、兩路隔離輸入,以及模組排針。儀器的背面則是主板的後緣:USB-C、5 V 電源插孔、外接 7–18 V 輸入,以及線圈端子。授課教師先把整塊板子做完——基礎部分(開發板插座、匯流排、電源輸入與電源軌、外接 7–18 V 輸入、驅動磁場線圈的 H 橋與 MOSFET 開關、擴充排針)加上全部三個區塊——全班再於工作坊 2 一起把它完成。三個區塊:A——輸入與 NMR 接收器:電路板用來「聽」的全部,八路 ±10 V 16 位元輸入(ADS8688),以及把線圈聽到的訊號轉成 I 與 Q 的接收器;B——訊號產生、時序與 NMR 發射器:電路板用來「說」的全部,±10 V 輸出、TTL 與觸發輸出,以及驅動 NMR 線圈的合成器與功率放大器;C——前面板電路板:儀器的正面,本身就是一塊四層板:SMA 陣列、OLED 與三顆 LED、八路 TTL 的螺絲端子排、TX 線圈端子、Qwiic、兩路隔離輸入,以及帶 5 V 緩衝器的模組排針。合併後的設計在 9月28日(一)下午 2 點送進全班訂單,製作五份——每人一台組裝完成的儀器。
規則:儀器本身由 USB-C 或 5 V 電源供電,日常使用是 ≤ 30 V DC。若要切換更大的負載,可以用模組排針驅動光耦隔離的模組:金華四路繼電器模組(NT$150,約 US$4.7)的輸入是光耦隔離的,每通道觸發電流約 5 mA;12 V 版本的繼電器線圈需要自備 12 V 電源,另有 5 V 版本可以直接用排針上的 +5 V。市電接線是你自己的責任,並且必須由有資格的人施作。零件須為 JLCPCB 現貨;開發板由課程提供。成本:班級板是同一份設計製作五份,零件依「每一塊錢能學到多少」挑選——每位學生約 NT$5k(≈ US$155)全包:開發板、零件、四層 PCB、前面板 PCB 與 JLCPCB 全部組裝,沒有任何需要你自己焊接的東西——接合兩塊板子的排針由授課教師焊接。每個零件都必須物有所值,JLC 報價在下單前檢查。
其他想法:可加在 ESP32 這類開發板上的擴充硬體
本課程的硬體是固定的——同一份電路板設計,全班一次訂購;下面這份清單裡沒有任何一項屬於課程內容,也不是給學生的延伸題。放在這裡純粹作為靈感:把哪些擴充硬體加到 ESP32 這類開發板上,可以做出其他對實驗室有用的工具——課程結束之後,或在你自己的工作裡。班級板保留了一組 2×10 擴充排針、兩個 Qwiic 接頭與幾個預留的封裝(footprint:尚未裝件零件的銅箔圖形),日後仍有可能加上這些東西。以下皆採 JLCPCB 現貨零件。
🏎 高速擷取
ADS9224R 雙通道 16 位元 3 MSPS,或 AD9235 40 MSPS 接在閒置的 LCD_CAM 平行埠上:擷取快速的暫態訊號——2026 年度核心電路為了成本與時程而移除的等級。
〰 DDS 正弦波源
AD9833 直接數位合成,正弦波到 1 MHz,掛在擴充排針的 SPI 上:與 16 位元 AWG 互補,把訊號源的頻率上限往上推。
🧮 精密 ADC
ADS1115/ADS1256:16–24 位真實解析度,適合 µV 級與感測器量測。看見 MCU 內建 ADC 看不見的東西——再用雜訊底限圖證明它。
🔢 更多通道
MCP23017(+16 GPIO)與 CD74HC4067(16 路類比輸入共用一腳):兩顆便宜晶片掛在同一條匯流排上,通道數就超越 Arduino Mega。
🎚 可程式增益/自動量程
PGA113 或數位電位器設定增益:輸入級會自己切換量程,弱訊號與強訊號都落在刻度內。
⚖️ 儀表放大器輸入級
INA826/INA333 級差動前端:電橋、熱電偶與疊在雜訊接地上的微小訊號,都能乾淨量測。
🌡 精密溫度通道
MAX31865 + PT100/PT1000 或熱敏電阻電橋:mK 級測溫——實驗室 PID 的感測端。
🔥 加熱器/TEC 驅動
MOSFET PWM 級加上 INA 電流偵測:致動端——對雷射座或樣品台做閉迴路溫控。
🚶 運動驅動
A4988/DRV8825 步進馬達驅動或伺服機接頭:快門、濾光片輪、斬波器——全都聽你的觸發引擎指揮。
⏰ 真正的時基
TCXO(±1–2 ppm)加上外部 10 MHz 參考輸入:把訊號產生器升級成計量級訊號源——再用兩塊板互拍(beat)量出改善幅度。
🔗 隔離式 RS-485/CAN
橫跨實驗室、電氣隔離的多點儀器匯流排——真實設施就是這樣把設備串起來的。
🖥 觸控螢幕前面板
手機/網頁 App 才是這台儀器的臉,班級板上的小 OLED 顯示狀態;若想要能獨立操作的面板,可在前面板 PCB 上加一片 3.5″ 480×320 TFT(ILI9488,SPI)與電容式觸控(FT6236/GT911,I²C——另一種晶片間匯流排),以 LVGL 驅動。輕量版:OLED+旋轉編碼器。
💾 記錄 + 時鐘
microSD 插槽 + DS3231 RTC:不需主機也能記錄數週的含時間戳資料——想拿資料時再用 WiFi 取回。
🔋 電池供電
TP4056 充電器 + 升壓轉換器:可攜式現場量測,停電也不中斷記錄。
💡 光電二極體/TIA 輸入
互阻抗(TIA)光量測通道:雷射功率監測、螢光偵測——佈局品質真正見真章的類比設計。
⚡ 電源監測
INA226 監看自己的電源軌:儀器自己量測電流、電壓與能耗——內建自我診斷。
🔊 音頻級編解碼器
I²S ADC/DAC:高傳真類比路徑,把數位濾波器與軟體鎖相放大器方向升級到 24 位品質。
🛡 更多開關
模組排針的七路 MODULE OUT 訊號可以驅動光耦隔離的模組——繼電器模組、固態繼電器、高側開關,隔離做在模組那一側:把警報/連鎖保護的輸出規模擴大到一整個機架。
超越基準線:做出很棒的東西
成果發表與展示(10月26–30日,每人約 15 分鐘)展示你的儀器、你的 App 與你的網站。軟體、韌體、App,以及圍繞這台儀器的一切,都由你決定要推到多遠——挑一個對你自己的實驗室真正有幫助的方向,或單純挑一個你會很自豪拿出來展示的東西:
📱 手機 App/網頁介面
由 ESP32 提供一個精緻的網頁應用程式(可安裝的 PWA:像 App 一樣運作的網頁):波形控制、即時讀值、深色模式、多使用者。在研討室裡也能操控你的儀器。
🔔 監測與警報
對類比輸入設定門檻規則:切換一路模組輸出、鎖住連鎖保護、推送 Telegram/LINE 警報。故障安全(fail-safe)的預設值、手動重置、含時間戳記的事件記錄。
⏱ 觸發與序列控制
觸發輸入 → 波形爆發(burst)或模組輸出動作;可程式化的序列與排程;讓兩台裝置同步。把波形產生器變成實驗的總指揮。
🐍 Python API 與腳本
乾淨俐落的 instrument.sine(1e3, 0.5) API;自動掃描;用你自己的產生器+ADC 量測濾波器的轉移函數並繪圖。
📈 校正與特性量測
校正振幅與頻率;在示波器上量測頻寬、失真、輸出阻抗;發布一頁規格書風格的規格頁。物理內涵就在這裡。
🌐 多儀器系統
用 MQTT 或 REST 串連多台裝置;用一個儀表板看遍整個實驗室;把同學的儀器當作用戶端。迷你版的系統工程。
🛠 韌體工藝
穩健的狀態機、看門狗(watchdog)、重開機後仍保留的設定、OTA(over-the-air,即經由 WiFi)更新(ESP32)、開機自我測試。這就是展示品與產品的差別。
🎛 前面板與外殼細節
以 PCB 製作前面板,附絲印標示、導光柱、OLED 狀態顯示,以及(選配)與手機 App 共用同一套 API 的觸控介面(LVGL);一個看起來像買來的、而不是自己拼出來的外殼:用你的 OpenSCAD 檔印出來,喜歡的話再加一片雷射切割的壓克力上蓋。
🎬 一個很棒的專案網站
App 做什麼、怎麼用,使用者能照著做的範例,展示它能做什麼——螢幕截圖、量測結果、一支影片或一段動畫。把東西好好呈現本身就是一項技能。盡管做出很棒的東西。
你自己實驗室的需求指向不同的想法?很好——寫進你的規格書。電路板本身不會改變。
展示
10月26–30日,每人約 15 分鐘。展示你的儀器:它是什麼、用來做什麼、你的 App 如何操控它、你的專案網站以及使用者會怎麼用它、你的影片(如果有)。順序與重點由你決定——這是你做出來的產品,不是練習;想規劃展示流程的話,家教會幫你。
備援方案:韌體的模擬模式能在單獨的開發板上跑出 App 與每個面板——如果板子遲到或故障,就展示這個,完全不丟臉。
影片:歡迎在成果發表與你的專案網站上加入一支介紹你的 App 與你的儀器的影片(例如透過專案 1 的流程:Markdown → 投影片 → 網站 → YouTube);這是選配,現場展示出狀況時就播放它。
製作計畫(與工作坊同步進行)
專題在工作坊的幾週內同步進行,與你的研究並行——而不是課程結束後的第二份工作。每次工作階段(session)結束都要提交(commit:附一行說明、存下你修改的快照)並留下交接筆記;每一章都由 Claude 家教陪你走完。
| 時間(2026) | 里程碑 |
|---|---|
| 9月11日(五)· 工作坊 1 | 專案 1:一個你自選的網頁應用程式(模擬器或遊戲),用「AI 方法」打造並部署(deploy),附專案網站。專案 2:先讓參考韌體在你的 ESP32 上運作(硬體驗證基準線),再做你自己的手機 App,透過 WiFi 控制它並讀取量測值。每個專案各有自己的公開儲存庫,並放上專案牆。 |
| 9月14日當週 · 課間 | 改進你的專案 1 與專案 2 的 App,玩得開心。工作坊 2 之前:安裝 KiCad 10 並開啟一次;建立 JLCPCB 帳號。 |
| 9月18日(五)· 工作坊 2 | 用我們的電路圖上電子學 101;KiCad 現場示範;班級板:每位學生補完一個區塊並佈線。 |
| 9月21日當週 · 課間,為了截止日 (9月25日(五):國定假日) | 班級板完成:佈線、設計規則檢查(DRC,KiCad 內建)全數通過、拉取請求經審查並在全班下單前合併。 |
| 9月28日(一)下午 2 點 | 全班 PCB 訂單截止:授課教師合併三個區塊,把 Gerber 檔送交 JLCPCB。硬性截止。 |
| 10月2日(五)· 工作坊 3 | 把東西做出來(製造選單、列印件與切割件的訣竅、從構想到檔案);專案 3:在模擬模式下完成你的第一個韌體驅動與 App 面板,以及你的外殼,大家一起用 OpenSCAD 與 Claude Code 做,或用你已經在用的其他 CAD 軟體。 |
| 10月5日當週 · 課間,為了截止日 | 驅動+面板的拉取請求;輸出外殼檔案(3D 列印用的 STL 及/或雷射切割用的 DXF);你儀器的韌體、App 與專案網站。 |
| 10月9日(五)下午 2 點 | 3D 列印/雷射切割設計檔截止。硬性截止。 |
| 約 10月16日(五) | 領取列印好的外殼與組裝完成的 PCB;組裝你的 ESP32、PCB 與外殼;測試並精修你的韌體與 App。 |
| 10月26–30日 | 成果發表與展示你的專題、App、網站與影片——每人約 15 分鐘。 |
製造交期是硬性限制:PCB 製作、組裝與運送到台灣約需 2 週(板子約 10月16日回來),因此 9月28日(一)下午 2 點的全班訂單截止沒有商量餘地。外殼在所內列印與切割——設計檔須在 10月9日(五)下午 2 點前交出。
成果發表與展示(2026 年 10月26–30日)
約在 10月16日(五)領取製作完成的 PCB 與外殼;組裝你的 ESP32、PCB 與外殼;測試並精修你的韌體與 App。然後在 10月26–30日那一週發表並展示你的專題——每人約 15 分鐘,以英文進行;鼓勵使用 AI 協助準備。
- 展示——你的儀器、你的 App 與你的網站實際運作,順序由你決定;影片是備援。
- 發表——你做了什麼、為什麼做,哪些成功、你學到什麼;建立在共用硬體之上的軟體,正是你展現實力的地方。
- 你的專案網站——每個專案一個,即各公開儲存庫的 GitHub Pages 網站:專案 1 與它的報告、你的手機 App,以及專案 3——你的儀器(韌體、App、外殼)放在同一個儲存庫的同一個網站上。把它做成一個很棒的網站:App 做什麼、怎麼用、能做什麼,給使用者的範例與展現其能力的示範——螢幕截圖、影片或動畫,以及很棒的介面。
每個專案都在班級專案牆上。
專題構想庫
本課程較早的版本曾提供十六個儀器專題的選單——流量連鎖保護、雷射光束快門、PID 控制器、鎖相放大器等等。 基於實務考量我們統一為單一平台,但這個構想庫仍值得一逛:它是軟體方向的寶庫 (許多可直接對應到這台儀器的輸入、輸出與觸發),也是課程結束之後你可以打造什麼的靈感來源。 → 瀏覽專題構想庫。