iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
生成式 AI

AI x Hardware系列 第 8

🌬️ 與風同行:Program Manager 的特級料理,AI 與 Python 的最終修煉

  • 分享至 

  • xImage
  •  

序章:廚師的最後考驗

完成了「方向箭頭」的小點心,
也掌握了「避障邏輯」這道家常料理。

師父卻告訴我:

「廚師若只會煮飯,那只是廚工。
真正的特級廚師,要能設計菜單,讓整桌料理相互呼應。」

我明白了,身為 Program Manager,光是會寫程式還不夠。
我必須學會 設計一份完整的 PRD 與 Spec
並且利用 AI 協作,把想法轉化成工程師能理解的邏輯。

這就是我的第三道挑戰。


第一章:PRD 的設計 —— 與 AI 的對話

我決定請 AI 當我的「副主廚」。
我給它一個需求:

「我要一台小車,能夠巡航:

  • 一開始往前走
  • 如果遇到障礙,先停下來
  • 然後轉彎,繞過障礙,繼續前進」

AI 幫我草擬了一份 PRD:

PRD 項目 說明
使用者故事 「我希望小車能自動巡航,即使遇到障礙也能繼續行進。」
需求編號 PRD-003
驅動因素 使用者需要無人值守的小車
驗收條件 小車能自動前進,遇到障礙停下 → 轉彎 → 繼續前進

當我看到這份草稿時,心裡竊喜。
過去要花我好幾天才能整理好的文件,
AI 幾分鐘就能幫我搭好框架。

但作為 Program Manager,我必須檢查:
是否缺少「轉彎角度」、「反應時間」這類的細節?
AI 是副廚,但最後要端上桌的,是我。


第二章:Spec 的烹調 —— 把 AI 草稿變成食譜

我把 PRD 轉換成更精確的 Spec:

Spec 編號 條件 行為
SPEC-301 小車前方無障礙 小車持續前進
SPEC-302 小車前方有障礙 小車停止
SPEC-303 停止後 小車向左轉 1 秒
SPEC-304 轉彎後 小車繼續前進

這份 Spec 就像完整的食譜:
它清楚定義了 每個情境下的反應
讓工程師知道該如何下鍋。


第三章:積木編輯器的預製菜

我先用積木模擬這個邏輯:

  1. 當狀態 = 無障礙 → 顯示「前進箭頭」
  2. 當狀態 = 有障礙 → 顯示「STOP」 → 等待 1 秒 → 顯示「左轉箭頭」

在 MakeCode 裡,積木的組合看起來就像一個「分岔的料理流程圖」。

image

這就像「預製菜」:簡單快速,但味道單一。
真正的考驗還在後面 —— 寫出真實 Python


[快速上手] MakeCode 積木邏輯結構

📦 變數設定

設定變數:狀態 = "無障礙"

🎯 按鈕事件積木

按鈕 A 被按下(模擬偵測到障礙物)

當按鈕 A 被按下
├── 設定 狀態 為 "有障礙"

按鈕 B 被按下(模擬沒有障礙物)

當按鈕 B 被按下  
├── 設定 狀態 為 "無障礙"

🔄 主迴圈(重複無限次)

像「料理流程圖」的分岔結構:

重複無限次
├── 如果 狀態 = "無障礙" 則
│   └── 顯示圖示 ↑ (前進箭頭)
│
├── 否則如果 狀態 = "有障礙" 則  
│   ├── 顯示字串 "STOP"
│   ├── 暫停 1000 毫秒
│   └── 顯示圖示 ← (左轉箭頭)
│
└── 暫停 100 毫秒

🍳 就像料理流程:

主食材:狀態變數

  • 🥕 "無障礙" → 直接上菜(顯示前進)
  • 🍄 "有障礙" → 需要處理(停止→等待→左轉)

調味步驟

  1. 按鈕A = 加入"障礙香料"
  2. 按鈕B = 加入"暢通調料"
  3. 迴圈 = 持續品嚐和調整

分岔處理

  • 路徑1:暢通 → 簡單快炒(直接前進)
  • 路徑2:阻塞 → 複雜燉煮(停止→等待→轉向)

🎨 推薦使用的內建圖示:

  • 前進North ArrowTriangle
  • 左轉West Arrow< 符號
  • 停止XSquare

第四章:真實 Python 的巡航程式

我打開 Python 編輯器,開始自己下鍋。
這一次,不再依靠自動生成,而是自己寫:

from microbit import *
import time

while True:
    # 模擬障礙物:A = 有障礙, B = 無障礙
    if button_a.is_pressed():
        # 有障礙物 → 停止
        display.scroll("STOP")
        sleep(1000)
        # 左轉
        display.show(Image.ARROW_W)
        sleep(1000)
    elif button_b.is_pressed():
        # 無障礙物 → 前進
        display.show(Image.ARROW_N)
    else:
        # 預設狀態 = 前進
        display.show(Image.ARROW_N)

這段程式,雖然還是簡單的顯示箭頭,
但背後已經蘊含了「遇到問題 → 中斷 → 解決 → 繼續」的完整邏輯。

這就是 Spec 真正的落地。

image

[快速上手] 用程式碼練習 Micro:bit

  1. 微軟官方提供的 Micro:bit Editor,雖然方便,但主要是積木型態程式語言(或積木轉出的 Python),
    和真實 Python 仍有落差,無法完整體驗「自己下鍋」的感覺。
    所以我們這裡改用另一個網站來練習 —— 可以直接寫 真實 Python

  2. 打開這個網站 👉 https://python.microbit.org/v/3

  3. 進入後你會看到一個線上編輯器,可以直接輸入 Python 程式。
    預設會有一段簡單的程式碼,例如顯示一個愛心:

    from microbit import *
    
    while True:
        display.show(Image.HEART)
    
  4. 你可以直接在右側模擬器測試,或下載程式碼燒錄到實體 micro:bit。

  5. 這樣,我們就不需要依賴積木,也能體驗「真實 Python 的寫作流程」。


第五章:模擬器與實體驗證

我先在模擬器上測試:

  • 按下 A → 小車顯示 STOP → 左轉 → 再度前進
  • 按下 B → 小車顯示 前進箭頭

接著,把程式下載到實體 micro:bit:

  • 當我按下 A 時,LED 矩陣先顯示「STOP」,再切換成「←」箭頭,最後回到「↑」。
  • 按下 B,則穩定顯示「↑」。

這一刻,我終於看到自己設計的 PRD 與 Spec,透過 Python 真正運作起來。


第六章:廚師的領悟 —— AI 與我的協作

這次挑戰最大的體悟是:

  • AI 幫我快速打底:像副主廚先幫我準備好 PRD 草稿。
  • 我再做補強:檢查缺漏、加上細節,就像調整食譜的火候。
  • 程式驗證 Spec:寫 Python 就像真的下鍋,能檢驗食譜是否可行。

Program Manager 的價值,不在於我比工程師會寫更多程式,
而是在於我能用 PRD → Spec → 程式驗證 的流程,
確保整個計畫的方向正確。


第七章:特級廚師的舞台

當我回頭看三篇的旅程:

  1. 追風的學徒:我第一次切菜,用積木完成小點心。
  2. 風中的挑戰:我開始掌握火候,用真實 Python 煮出家常菜。
  3. 與風同行:我學會設計菜單,與 AI 協作,完成了一桌完整的料理。

我已經不再是只能點頭的 PM,
而是一個能夠理解程式邏輯、設計 PRD 與 Spec,
並帶領團隊往前走的 Program Manager


結語:與風同行

程式不只是冰冷的指令,
它像風一樣,需要理解它的方向、節奏與力量。

AI 就是我身邊的風向標
幫我少走冤枉路,提醒我注意缺漏。

而我自己,就是那個願意追風的人。
因為只有追著風跑,
才能有一天,與風並肩同行。


🎯 第三篇重點整理

故事核心

  • Program Manager 學會與 AI 協作,設計出完整的 PRD 與 Spec。
  • 真實 Python 程式,落地巡航邏輯。
  • 案例可在模擬器與實體 micro:bit 實現。

實作練習

  • PRD/Spec → 巡航小車(前進 / 停止 / 左轉 / 繼續)。
  • 真實 Python 程式,不可逆回積木。
  • 測試方式:模擬器 + 實體 micro:bit。

學習價值

  • 學會如何用 AI 當輔助,快速產生文件與邏輯。
  • 體會 Program Manager 在跨領域協作中的價值。
  • 從學徒成長為「特級廚師」,能設計完整菜單。

參考資料


上一篇
🌬️ 風中的挑戰:從積木到真實 Python,Program Manager 的第一份規格料理
系列文
AI x Hardware8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言