投影片與班級儲存庫
- 投影片:工作坊 1——實驗物理學家的 AI(PDF)・工作坊 2——設計印刷電路板(PDF)・工作坊 3——把東西做出來(PDF)。錄影不放上網。
- 班級儲存庫:class-board-2026(儲存庫(repository)是一個由 git 保存完整歷史的專案資料夾;放在 GitHub 上就同時有一份線上版)——參考韌體(firmware)與手機 App、KiCad 零件庫、workbook,以及 Claude 家教(tutor)技能(在 Claude Code 中輸入
/tutor)。 - 專案牆:tigp-experimental-methods.github.io/showcase-2026——每位學生的專案以卡片呈現,每分鐘自動更新;showcase-2026 儲存庫(每位學生都能推送;README 說明條目格式)。
- 專案 1 類型的範例:pendulum-example(線上版)· csv-scope-example(線上版)。
安裝程式(逐步說明見課前準備)
- Visual Studio Code
- VS Code 的 Claude Code 擴充功能(extension) · 文件
- git · GitHub CLI · GitHub Desktop——git 記錄一個資料夾中檔案的歷史;GitHub CLI(
gh)是 GitHub 的命令列工具 - uv(Python 安裝器/套件管理器)
- KiCad(我們用來畫電路圖(schematic)與佈局印刷電路板(PCB)的免費軟體——工作坊 2 前要能執行)
- OpenSCAD 2021.01(撰寫外殼用的程式——工作坊 3 前安裝並開啟過一次)
- VS Code 的 PlatformIO(建置並燒錄(flash)韌體)· Arduino IDE 2
- Bambu Studio(實驗室 Bambu Lab P1S 印表機的切片軟體——工作坊 3 前安裝並開啟過一次)
我們用的詞
課程網頁反覆出現的工具名詞,每個一行。每一頁在名詞第一次出現時也會就地解釋。
| 名詞 | 意思 |
|---|---|
| git | 記錄一個資料夾中檔案歷史的工具 |
| GitHub | 存放並分享儲存庫的網站 |
| repository 儲存庫 | 由 git 保存完整歷史的專案資料夾;放在 GitHub 上就同時有一份線上版 |
| clone 複製 | 把儲存庫的完整副本下載到你的筆電 |
| commit 提交 | 把你的修改存成一個快照,附一行說明 |
| diff 差異 | 兩個快照之間究竟改了什麼的清單——你審查的是它,而不是整個檔案 |
| push 推送 | 把你的提交上傳到 GitHub |
| branch 分支 | 儲存庫內各自獨立的一條工作線,讓多人修改時不互相踩到 |
| main | 主分支,大家共同依據的版本——main 永遠要能跑 |
| merge 合併 | 把一個分支的修改併入主線 |
| pull request(PR)拉取請求 | 請求把你的分支併入共用專案;先由某人審查、留意見並核准 |
| ring reviewer 環狀審查者 | 審查你拉取請求的同學(A 審 B、B 審 C、……、E 審 A) |
| CI 持續整合 | continuous integration:GitHub 對每個拉取請求自動執行的建置,並回報綠燈或紅燈 |
GitHub CLI(gh) | GitHub 的命令列工具:在終端機(輸入指令的文字視窗)登入、建立儲存庫、開拉取請求 |
| Markdown | 帶輕量格式的純文字(# 標題、- 清單);README、計畫與交接檔案都用它寫 |
| CLAUDE.md · PLAN.md · HANDOVER.md | 儲存庫裡的純文字檔:專案如何設定(代理每個工作階段都會讀)· 要做什麼、依什麼順序 · 已完成、已驗證、下一步、注意事項——讓新的工作階段能接著做 |
| coding agent 程式代理 | 在你的檔案上工作的 Claude Code:讀檔、寫程式、執行指令並回報 |
| context window 情境視窗 | 模型在一個工作階段(session)中看到的一切——對話、檔案與指示;每則訊息都會把它全部重送一次,所以要保持精簡:一個工作階段只談一個主題 |
| token 權杖 · API key 金鑰 | 模型讀寫(也是計費)的文字單位 · 讓你的程式能呼叫模型或服務的密碼;金鑰就是錢,絕不放進儲存庫 |
| Cloudflare Pages · GitHub Pages | 把儲存庫變成公開網頁的免費服務(Cloudflare Workers 再加上後端) |
| deploy 部署 | 把網頁發布上線 |
| project website 專案網站 · project wall 專案牆 | 一個專案儲存庫的公開 GitHub Pages 網站(它是什麼、如何運作、一張它運作中的照片或影片、驗證了什麼、連到 App 與程式碼的連結)· 把全班每個專案以卡片呈現、每分鐘自動更新的班級頁面 |
| webhook 網頁掛鉤 | 一個網址,某項服務(Telegram、LINE)在事情發生時會來呼叫——機器人就是這樣收到訊息的 |
| microcontroller 微控制器 · dev board 開發板 | 單晶片上的小電腦;開發板載著它,附 USB-C 接頭與腳位。我們用的是帶 WiFi 的 ESP32-S3 |
| firmware 韌體 | 在微控制器上執行的程式 |
| flash 燒錄 | 經 USB 把韌體寫進板子 |
| PlatformIO · toolchain 工具鏈 | 為我們建置並燒錄韌體的工具 · 它使用的編譯器與輔助程式 |
| SIM mode 模擬模式 | 讓韌體假造自己硬體的一種建置,班級板還沒到手前 App 就能在光板開發板上跑 |
| access point 存取點 | 板子自己發出的 WiFi 網路,用手機加入 |
| PWA · WebSocket | 手機 App:由板子提供、像 App 一樣運作的網頁 · 該網頁與板子之間的即時雙向連線 |
| KiCad | 我們用來畫電路圖與佈局印刷電路板的免費軟體 |
| schematic 電路圖 · PCB 印刷電路板 | 電路的圖 · 帶銅箔走線的實體電路板設計 |
| symbol 符號 · footprint 封裝 | 零件在電路圖中的圖形 · 零件焊上去的銅箔圖形 |
| ERC · DRC | KiCad 的電氣規則檢查與設計規則檢查;零錯誤即通過 |
| rule area(zone)規則區域 · routing 佈線 | 板上劃給你的框出區域 · 畫出零件之間的銅箔走線 |
| JLCPCB | 製造並組裝班級板的工廠;零件來自它的零件庫(料號形如 C12345——不需要 LCSC 帳號) |
| BOM 物料清單 · Gerber | 零件清單 · 送去工廠的製造檔 |
| STL · STEP · DXF | 3D 檔案格式:列印用 · CAD 交換用 · 以及雷射切割用的 2D 圖檔格式 |
| OpenSCAD · 切片軟體(slicer) | 零件是一個由形狀構成的短文字檔的免費程式(AI 寫它,你改數字)· 把 3D 模型轉成印表機要走的層的程式(Bambu Studio) |
| GPIO · SPI · I²C | 微控制器上的通用腳位 · 晶片與微控制器對話的兩種常見接線標準 |
實驗物理學家的 AI——工作坊 1 提到的工具
代理與文件
- Claude Code 文件——入門、CLAUDE.md、技能(skill)、鉤子(hook)、子代理(subagent)、MCP;VS Code 擴充功能(我們的選擇:綁定程度低,你的程式碼與歷史都還是你的)。
- Claude Code 最佳實務(Anthropic 工程部落格)。
- 執行代理(agent)的其他方式:Claude Cowork · Claude Design。計畫或程式碼的獨立審查者,是一個沒看過這份工作的全新 Claude 工作階段。
- Anthropic Console——把 LLM 放進自己 App 所需的 API 金鑰;API 文件。金鑰就是錢:別放進儲存庫。
- Markdown 指南(帶輕量格式的純文字)· 在 GitHub 上寫作
Git 與 GitHub
- VS Code 的原始碼控制——不用終端機也能編輯 → 暫存 → 提交 · GitHub Hello World · Pro Git(免費書籍)
免費部署
- GitHub Pages(從公開儲存庫產生靜態網頁——每個專案網站,以及任何完全在瀏覽器裡執行的 App,網址
https://<user>.github.io/<repo>/) - Cloudflare Pages+Cloudflare Workers(直接從 GitHub 儲存庫部署;有免費方案——任何有後端、機器人網頁掛鉤(webhook)或機密的東西都放這裡)。你可能兩個主機都需要,所以兩個帳號都要準備好。
- YouTube(不公開)——只有拿到連結的人才看得到的影片
- Hugging Face Spaces(App 與模型的展示)· Zenodo(附可引用 DOI 的資料與程式碼)
會跟你說話的 App
- Telegram Bot API——用 @BotFather 建立機器人;最容易的起點
- LINE Messaging API——台灣人人都有的 App;先從 Telegram 開始,再移植到 LINE
- ntfy.sh——只做推播通知,不需要機器人
語音、影片與圖像
- OpenAI Whisper(語音轉文字)· Chatterbox(文字轉語音,開放原始碼)
- show-your-work——實驗室公開的影片、投影片與報告製作流程:五個 Claude Code 技能(
education-video、slide-deck、technical-report、natural-voice、showoff-render);先寫腳本,最後才做圖。選用,適合專案 1 的簡報延伸,以及介紹你的儀器的影片。 - Blender(從 CAD 模型以程式產生硬體的渲染圖)· Unreal Engine(場景)。生成的圖像要標示清楚。
- 用 Markdown 做投影片:Marp · reveal.js。繪製圖表:Mermaid、draw.io。螢幕錄影:OBS Studio。
Python 與儀器
- uv 指南 · Python 教學 · matplotlib 圖庫 · pySerial · PyVISA(儀器控制)
- 在瀏覽器裡做專案 1:MDN canvas 教學(模擬器或遊戲網頁通常就是用它畫的)。
- 原分所:SAIL Club(Sharing AI Lunch Club)與其資源頁面。
電子
- KiCad 文件 · KiCad 學習資源 · kicad-jlcpcb-tools 外掛(LCSC 零件搜尋、BOM——零件清單——與 CPL 匯出)
- JLCPCB——PCB 製造與 SMT 組裝 · JLCPCB 零件庫 · LCSC · PCB 製程能力/設計規則
- 開發板:ESP32-S3(我們用的:金華 #40729,NT$400)· Raspberry Pi Pico · Teensy 4.x · Arduino 文件
- 類比電路:TI Op Amps for Everyone · ADI Op Amp Applications Handbook · 光電二極體放大器(TI) · Horowitz 與 Hill 合著《The Art of Electronics》(圖書館可借)
- 資料轉換器:ADI Data Conversion Handbook;時基:NIST 頻率穩定度
- PCB 佈局實務:降低 EMI 的 PCB 設計準則(TI)
- 儀器:SCPI 標準(用 Python 和你的示波器對話)
- 專題閱讀材料:低磁場 NMR 論文、班級板每個零件的規格書、工具與供應商(班級儲存庫 docs/references.md)
把東西做出來
工作坊 3 用到的工具與服務。班級外殼用 OpenSCAD 撰寫、用 Bambu Studio 切片;其他軟體留待以後:當零件需要精確幾何、加工服務要 STEP 檔(精確的 3D 交換格式),或機械師傅需要一張圖面時再用。
- OpenSCAD——班級外殼用的程式:下載(穩定版 2021.01)· 使用手冊 · 速查表(一頁列出所有形狀、移動與組合)。
- BOSL2——OpenSCAD 的函式庫:圓角盒、螺絲孔與螺紋銅套孔、真正的螺紋,在純 OpenSCAD 不夠用時。
- Bambu Studio——實驗室 Bambu Lab P1S 的切片軟體:匯入、擺放方向、檢查支撐、切片、讀出列印時間與克數。
- FreeCAD 1.1——最大的免費 CAD 軟體,用滑鼠操作,附 Python 主控台:給機械師傅的標註圖面、含展開圖的鈑金件、初步的 FEM(有限元素)檢查。
- CadQuery 與 build123d——用一般的 Python 做 CAD,仍是 AI 寫的程式碼:當零件需要精確的孔,或加工服務要 STEP 檔時。
五套 CAD 軟體比較
| OpenSCAD | CadQuery | build123d | FreeCAD | SolidWorks | |
|---|---|---|---|---|---|
| 操作方式 | 程式碼,在自己的視窗中 | Python | Python | 滑鼠(GUI)+ Python | 滑鼠(GUI) |
| 費用 | 免費 | 免費 | 免費 | 免費 | 數千美元;有學生授權 |
| 幾何 | 網格(多邊形面) | 精確 | 精確 | 精確 | 精確 |
| 匯出 STEP | 否 | 是 | 是 | 是 | 是 |
機械
- 3D 列印設計規則:Hubs FDM 設計指南 · 關鍵設計考量 · Prusa 知識庫
- 熱熔螺紋銅套(heat-set inserts):CNC Kitchen 測試 · Markforged 指南
- 雷射切割:MakerCase(盒體產生器)· Boxes.py · 所內壓克力雷射切割機(DXF 或 STEP——請洽授課教師)