Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TinyML with MicroPython on Raspberry Pi Pico W。半套

TinyML with MicroPython on Raspberry Pi Pico W。半套

這是我們在樹莓派社群聚會 #36 的分享,介紹如何使用 Raspberry Pi Pico 做 tinyML。

購買各種 Raspberry Pi Pico
* Pico: https://piepie.com.tw/product/raspberry-pi-pico-board
* Pico-H: https://piepie.com.tw/product/raspberry-pi-pico-h
* Pico-W: https://piepie.com.tw/product/raspberry-pi-pico-w

Raspberry Pi 樹莓派社群聚會 #36
* https://raspberrypi-tw-bdfa45.kktix.cc/events/meetup36

Raspberry Pi 樹莓派社群聚會 #36 會後資料
* https://piepie.com.tw/51545/raspberrypi-meetup-36-data

台灣樹莓派

May 08, 2023
Tweet

More Decks by 台灣樹莓派

Other Decks in Technology

Transcript

  1. 姓名標示 — 非商業性 — 相同方式分享 CC (Creative Commons) 姓名標示 —

    你必須給予 適當表彰、提供指向本授權 條款的連結,以及 指出(本作品的原始版本)是否已 被變更。你可以任何合理方式為前述表彰,但不得以 任何方式暗示授權人為你或你的使用方式背書。 非商業性 — 你不得將本素材進行商業目的之使 用。 相同方式分享 — 若你重混、轉換本素材,或依本 素材建立新素材,你必須依本素材的授權條款來 散布你的貢獻物。
  2. 7 • 智慧手環內的 IMU 收到加速度 / 角速度資訊 • 原始數據透過 LPWA

    低功耗技術傳到雲端運算姿態 • 使用者透過儀表板看到各種姿態結果 IoT 情境 / 智慧手環 https://www.youtube.com/watch?v=KUwif0Z8Ot4
  3. 11 • 機器學習 ( 處理結構化資料 ): 資料 > 特徵擷取 >

    模型 > 答案 • 深度學習 ( 處理非結構化資料 ): 資料 > 模型 ( 特徵擷取自學 )> 答案 機器學習 vs. 深度學習 https://bit.ly/3VFLRs9
  4. 12 • 功耗在 1mW 、記憶體在 kB 、時脈在 MHz 等級 tinyML

    由來 https://www.youtube.com/watch?v=KUwif0Z8Ot4
  5. 運算量對應適合的 ARM 系列處理器 https://www.arm.com/blogs/blueprint/ai-for-iot-devices 資料輸入量 振動 偵測 關鍵字 偵測 感測器

    融合 異常 偵測 物件 偵測 Cortex-M Today Cortex-M55 手勢 偵測 生物 識別 語音 辨識 物件 分類 即時 辨識 Cortex-M and Ethon-U55 Cortex-A, Mali And Ethon-N 運算量 TOP/S
  6. 20 • 工作電壓 :3V to 6V DC • 工作電流 :350μA

    • 低功耗 :350 μA • 感應範圍 :±3g(g=9.8m/s2) • 三軸感應 (X, Y, Z) • 對輕微運動具高靈敏度 • 4×4×1.45mm LFCSP 封裝 • 無須外部元件 , 容易與微控制器的 D/A 晶片整合 ADXL335 感測器規格 / 特色 https://www.circuits-diy.com/adxl335-3-axis-accelerometer-module/
  7. 23 • 高性能 , 靈活的 I/O, 低成本 (RP2040 僅 USD$1)

    • RP2040 是英國製晶片 (vs. 中國製的 ESP32) • 支援多種 IDE 開發環境 , 例如 Thonny, Visual Studio Code, Arduino IDE 開發等。可一鍵上傳 • 可使用 MicroPython/CircuitPython,C/C++ • 完整的硬體設計文件 , 軟體開發文件 • RP2040 生態系 , 未來可輕鬆移植 / 量產 使用 RP2040/Pico 的好處
  8. 24 ADXL335 接線圖 ADXL4335 Pico Vcc Pin36 (3.3V) Xout Pin31

    (GPIO26) Yout Pin32 (GPIO27) Zout Pin34 (GPIO28) GND Pin38 (GND)
  9. 25 xx = ADC(26) #GPIO-26 yy = ADC(27) #GPIO-27 zz

    = ADC(28) #GPIO-28 while True: x = xx.read_u16() y = yy.read_u16() z = zz.read_u16() data=str(x)+","+str(y)+","+str(z) print(data) utime.sleep(0.02) 收資料 main.py
  10. 28 • 1. 建立帳號 • 2. 建立專案 • 3. 連接硬體

    • 4. 收集資料 • 5. 訓練模型 • 6. 驗證 / 視覺化調整 • 7. 根據不同硬體部署模型 Edge Impulse 使用流程 https://www.edgeimpulse.com/blog/getting-started-with-edge-impulse
  11. 30 • $ minicom -b 115200 -o -D /dev/ttyACM0 用

    minicom 讀取 UART 推論結果 上下移動 波浪移動