Slide 1

Slide 1 text

1 TinyML with MicroPython on Raspberry Pi Pico W 。半套 sosorry 2023/03/27 @Raspberry Pi Meetup #36

Slide 2

Slide 2 text

姓名標示 — 非商業性 — 相同方式分享 CC (Creative Commons) 姓名標示 — 你必須給予 適當表彰、提供指向本授權 條款的連結,以及 指出(本作品的原始版本)是否已 被變更。你可以任何合理方式為前述表彰,但不得以 任何方式暗示授權人為你或你的使用方式背書。 非商業性 — 你不得將本素材進行商業目的之使 用。 相同方式分享 — 若你重混、轉換本素材,或依本 素材建立新素材,你必須依本素材的授權條款來 散布你的貢獻物。

Slide 3

Slide 3 text

3 ● Raspberry Pi 官方經銷商 ● 專注 Raspberry Pi 應用與推廣 , 舉辦社群活動 關於我們

Slide 4

Slide 4 text

更多詳細資料 https://piepie.com.tw/26335/tutorial-learning-path-v1

Slide 5

Slide 5 text

5 ● 從 IoT 到 AIoT ● tinyML 介紹與工作流程 ● DEMO 大綱

Slide 6

Slide 6 text

6 Internet of Things https://www.youtube.com/watch?v=KUwif0Z8Ot4

Slide 7

Slide 7 text

7 ● 智慧手環內的 IMU 收到加速度 / 角速度資訊 ● 原始數據透過 LPWA 低功耗技術傳到雲端運算姿態 ● 使用者透過儀表板看到各種姿態結果 IoT 情境 / 智慧手環 https://www.youtube.com/watch?v=KUwif0Z8Ot4

Slide 8

Slide 8 text

8 ● 但由於頻寬或電力限制 , 通常只傳送取樣後的資料 IoT 情境 / 智慧手環 https://www.youtube.com/watch?v=KUwif0Z8Ot4

Slide 9

Slide 9 text

9 ● 如果可以即時做訊號運算 , 會有更多有趣的發現 ● 並且只傳送推論後的結果將降低資料傳送量 IoT 情境 / 智慧手環 https://www.youtube.com/watch?v=KUwif0Z8Ot4 tinyML

Slide 10

Slide 10 text

10 深度學習、機器學習和人工智慧 https://learn.microsoft.com/zh-tw/azure/machine-learning/concept-deep-learning-vs-machine-learning

Slide 11

Slide 11 text

11 ● 機器學習 ( 處理結構化資料 ): 資料 > 特徵擷取 > 模型 > 答案 ● 深度學習 ( 處理非結構化資料 ): 資料 > 模型 ( 特徵擷取自學 )> 答案 機器學習 vs. 深度學習 https://bit.ly/3VFLRs9

Slide 12

Slide 12 text

12 ● 功耗在 1mW 、記憶體在 kB 、時脈在 MHz 等級 tinyML 由來 https://www.youtube.com/watch?v=KUwif0Z8Ot4

Slide 13

Slide 13 text

13 常見 tinyML 應用 https://www.youtube.com/watch?v=KUwif0Z8Ot4

Slide 14

Slide 14 text

14 tinyML 案例 https://www.youtube.com/watch?v=x8VC8IcZ6WE

Slide 15

Slide 15 text

15 tinyML 所需要的軟硬體 https://www.youtube.com/watch?v=KUwif0Z8Ot4

Slide 16

Slide 16 text

運算量對應適合的 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

Slide 17

Slide 17 text

17 常見 tinyML 開發板 https://www.youtube.com/watch?v=KUwif0Z8Ot4 Raspberry Pi Pico

Slide 18

Slide 18 text

18 常見 tinyML 工作流程 https://www.youtube.com/watch?v=KUwif0Z8Ot4

Slide 19

Slide 19 text

19 開始 tinyML 吧

Slide 20

Slide 20 text

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/

Slide 21

Slide 21 text

21 Raspberry Pi Pico https://www.cytron.io/p-raspberry-pi-pico-board

Slide 22

Slide 22 text

22 Raspberry Pi Pico Faimly https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html Pico Pico H Pico W Pico H Pico WH

Slide 23

Slide 23 text

23 ● 高性能 , 靈活的 I/O, 低成本 (RP2040 僅 USD$1) ● RP2040 是英國製晶片 (vs. 中國製的 ESP32) ● 支援多種 IDE 開發環境 , 例如 Thonny, Visual Studio Code, Arduino IDE 開發等。可一鍵上傳 ● 可使用 MicroPython/CircuitPython,C/C++ ● 完整的硬體設計文件 , 軟體開發文件 ● RP2040 生態系 , 未來可輕鬆移植 / 量產 使用 RP2040/Pico 的好處

Slide 24

Slide 24 text

24 ADXL335 接線圖 ADXL4335 Pico Vcc Pin36 (3.3V) Xout Pin31 (GPIO26) Yout Pin32 (GPIO27) Zout Pin34 (GPIO28) GND Pin38 (GND)

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

26 ML/DL 工作流程 https://www.edgeimpulse.com/blog/getting-started-with-edge-impulse

Slide 27

Slide 27 text

27 Edge Impulse 一次完成收資料 / 訓練 / 驗證三個願望 https://www.edgeimpulse.com/blog/getting-started-with-edge-impulse

Slide 28

Slide 28 text

28 ● 1. 建立帳號 ● 2. 建立專案 ● 3. 連接硬體 ● 4. 收集資料 ● 5. 訓練模型 ● 6. 驗證 / 視覺化調整 ● 7. 根據不同硬體部署模型 Edge Impulse 使用流程 https://www.edgeimpulse.com/blog/getting-started-with-edge-impulse

Slide 29

Slide 29 text

29 推論 main.cpp

Slide 30

Slide 30 text

30 ● $ minicom -b 115200 -o -D /dev/ttyACM0 用 minicom 讀取 UART 推論結果 上下移動 波浪移動

Slide 31

Slide 31 text

DEMO

Slide 32

Slide 32 text

32 Raspberry Pi Rocks the World Thanks