樹藝AI故事機 V1.3:硬體設計與接線的重要觀念
一台可在展場主動歡迎參觀者、播放作品故事,並讓工作人員以手機網頁維護的故事機,並不是把模組接上就完成。真正決定系統是否穩定的,是電壓、共地、訊號方向與逐步測試這些看似基本、卻最容易被忽略的硬體觀念。
一、系統組成與角色分工
| 元件 | 工作角色 |
|---|---|
| Raspberry Pi Pico W | 系統控制核心:讀取超音波與按鈕、控制 LED、透過 UART 指揮 JQ6500,也提供 Wi‑Fi 網頁控制。 |
| JQ6500 MP3 模組 | 從 microSD 卡讀取 001~006.mp3,驅動喇叭播放系統訊息、歡迎詞與內容。 |
| HC‑SR04 | 量測參觀者與作品的距離,觸發歡迎詞與離開致謝詞。 |
| 三個按鈕與四顆 LED | 提供參觀者內容選擇與現場可見狀態。 |
二、完整接腳圖
圖 1.Pico W、JQ6500、HC‑SR04、按鈕與 LED 的接線總覽。
圖中的 Pin 是 Pico W 排針的實體腳位;GP 則是程式中使用的 GPIO 名稱,例如 Pin(14) 代表 GP14,而不是實體 Pin 14。
三、第一原則:所有 GND 必須共地
Pico W、JQ6500、HC‑SR04、按鈕與 LED 必須共用同一個 GND。訊號電壓永遠是相對於 GND 而存在;若模組沒有共地,Pico W 讀到的 0 或 1 可能只是漂浮訊號,造成按鈕亂觸發、BUSY 不穩或超音波距離異常。
四、5V 模組與 3.3V GPIO:ECHO 一定要分壓
HC‑SR04 以 Pico W 的 VBUS 5V 供電,但 ECHO 腳會輸出約 5V。Pico W GPIO 只能接受 3.3V 邏輯,不能將 ECHO 直接接到 GP15。
HC‑SR04 ECHO → 1 kΩ → GP15
GP15 → 2 kΩ → GND
分壓後的電壓約為 5V × 2kΩ ÷ (1kΩ + 2kΩ) = 3.33V,符合 Pico W GPIO 的安全範圍。
五、UART 有方向:Pico W 指揮 JQ6500
| 連線 | 用途 | 程式對應 |
|---|---|---|
| GP0(實體 Pin 1)→ JQ6500 RX | 送出播放命令 | UART(0, tx=Pin(0), baudrate=9600) |
| JQ6500 BUSY → GP20(實體 Pin 26) | 回報播放中/未播放 | busy = Pin(20, Pin.IN) |
| JQ6500 VCC ← Pico VBUS | 5V 供電 | 硬體接線 |
| SPK+/SPK− → 喇叭 | 音訊輸出 | 不可接到 GND |
本作品實測 BUSY 在播放時約 2.4V、未播放時約 0V。因此它可接 Pico W 輸入腳,但不設定 PULL_UP 或 PULL_DOWN;程式再以短暫穩定時間過濾偶發跳動。
六、按鈕採 PULL_UP,LED 必須限流
三個按鈕分別接 GP10、GP11、GP12,另一端都接 GND。程式設定 Pin.IN, Pin.PULL_UP:未按下讀值為 1;按下接地後讀值為 0。V1.3 加入「按鈕放開鎖定」,按鍵必須先回到 1 才可再次播放,避免長按或接點不穩造成重播。
四顆 LED 分別由 GP16~GP19 控制,每顆均要串聯 220~330 Ω 電阻:
Pico GPIO → 220~330 Ω 電阻 → LED 正極(長腳)
LED 負極(短腳)→ GND
| GPIO | 顏色 | 意義 |
|---|---|---|
| GP16 | 綠 | 待機 |
| GP17 | 黃 | 開機、歡迎、致謝等系統語音 |
| GP18 | 藍 | 作品內容播放 |
| GP19 | 紅 | 超音波感測器連續量測失敗 |
紅燈是獨立診斷狀態,不應因為其他燈正在亮就被覆蓋;這是 V1.2 實測後修正的 LED 設計原則。
七、建議的硬體測試順序
- 只接 Pico W:確認 Thonny 能執行程式與儲存
main.py。 - 逐顆測 LED:確認開機依序亮綠、黃、藍、紅。
- 測 HC‑SR04:先列印距離,確認手靠近/移開數值合理,再加入濾波與離場判定。
- 測 JQ6500:確認 microSD 音檔連續編號 001~006,先播 004 開機訊息,再測各內容音檔。
- 測 BUSY:列印原始與穩定讀值,確認播放中為 1、未播放為 0。
- 接按鈕:逐一確認 GP10、GP11、GP12 按下只播放一次。
- 最後測 Wi‑Fi:手機連上
TreeAIStoryBot,開啟http://192.168.4.1。
八、接線完成前檢查表
- 所有模組 GND 已共地。
- HC‑SR04 ECHO 已經過 1kΩ/2kΩ 分壓。
- JQ6500 喇叭接在 SPK+、SPK−,沒有接到 GND。
- 四顆 LED 都各自串聯 220~330Ω 電阻。
- 按鈕另一端都接 GND,程式使用 PULL_UP。
- BUSY 接 GP20,且輸入腳未設 PULL_UP 或 PULL_DOWN。
- microSD 音檔使用連續編號 001.mp3~006.mp3。

沒有留言:
張貼留言