AI 嵌入式系統技術與實踐 — 基於樹莓派 RP2040 和 MicroPython

袁志勇

買這商品的人也買了...

商品描述

本書基於以RP2040 MCU 芯片為核心的樹莓派Pico開發板,
利用Pico硬件擴展接口和麵包板設計典型硬件電路,
並結合MicroPython編程語言講述了嵌入式系統典型接口技術與應用實例;
在介紹機器學習技術基本方法基礎上,講述了樹莓派Pico嵌入式機器學習(TinyML)技術與應用實例,
介紹了華為AI雲ModelArts開發平台構建機器學習模型和Edge Impulse開發平台構建嵌入式機器學習模型等技術。
全書具體內容包括AI嵌入式系統基礎知識、樹莓派Pico開發板硬件基礎、Pico開發板MicroPython編程基礎、
樹莓派Pico開發板人機接口技術、樹莓派Pico中斷與定時技術、樹莓派Pico串行通信與網絡接口技術、
樹莓派Pico無線通信技術實踐、樹莓派Pico電機接口與控制技術實踐、機器學習技術基礎及實踐、嵌入式機器學習技術實踐。

目錄大綱

目 錄
第1篇 嵌入式系統
第1章 AI嵌入式系統基礎知識 3
1.1 嵌入式系統概述 3
1.1.1 嵌入式系統的定義 3
1.1.2 嵌入式系統的組成 4
1.2 嵌入式微處理器 7
1.2.1 嵌入式微處理器分類 7
1.2.2 ARM 嵌入式微處理器 10
1.2.3 嵌入式微處理器選型 14
1.3 AI嵌入式系統的基本概念 15
1.4 嵌入式硬件基礎知識 18
1.4.1 認識樹莓派系列硬件 18
1.4.2 嵌入式硬件接口 20
1.4.3 嵌入式硬件電路必備知識 21
第2章 樹莓派Pico開發板硬件基礎 30
2.1 樹莓派RP2040系列開發板 30
2.1.1 樹莓派Pico開發板 30
2.1.2 Wio RP2040無線 WiFi開發板 31
2.1.3 其他幾款基於RP2040 MCU的開發板 32
2.2 RP2040芯片 32
2.3 樹莓派Pico開發板硬件擴展接口信號 38
2.3.1 Pico開發板硬件擴展接口信號解析 38
2.3.2 樹莓派Pico Flash編程/程序燒寫 42
2.4 樹莓派Pico開發板電源模塊 43
2.4.1 Pico開發板電源模塊分析 43
2.4.2 Pico開發板供電 44
2.4.3 Pico開發板使用電池充電器 46
2.5 Wio RP2040無線 WiFi開發板硬件擴展接口信號 47
2.5.1 Wio RP2040開發板主要特性及硬件技術規格 47
2.5.2 Wio RP2040開發板硬件擴展接口信號 48
2.6 使用MicroPython REPL點亮Pico開發板板載LED 49
2.6.1 所需硬件及Pico開發板 MicroPython固件安裝 49
2.6.2 使用MicroPython REPL交互模式編程 51
2.6.3 使用MicroPython REPL交互模式基礎編程舉例 53
2.6.4 使用MicroPython REPL點亮Pico板載LED編程舉例 54
第3章 Pico開發板 MicroPython編程基礎 58
3.1 MicroPython簡介 58
3.2 Thonny Python IDE安裝與使用基礎 60
3.2.1 Thonny Python IDE簡介 60
3.2.2 Thonny Python IDE安裝 61
3.2.3 使用Thonny建立Pico開發板 MicroPython程序 64
3.3 Python基本語法 67
3.4 Python程序結構控制 79
3.4.1 選擇語句 79
3.4.2 循環語句 82
3.4.3 跳轉語句 85
3.4.4 在循環結構中使用else子句 86
3.5 Python函數與模塊 87
3.5.1 定義函數 87
3.5.2 調用函數 87
3.5.3 變量的作用域 87
3.5.4 模塊與包 88
3.6 類與對象 90
3.6.1 類的定義 91
3.6.2 創建對象 91
3.6.3 類的成員 91
第4章 樹莓派Pico開發板人機接口技術 94
4.1 樹莓派Pico開發板硬件接口引腳擴展及使用 94
4.1.1 Pico開發板硬件接口引腳擴展 94
4.1.2 使用 MicroPython控制Pico開發板硬件擴展接口 95
4.2 樹莓派Pico開發板GPIO接口控制編程基礎 96
4.2.1 Machine模塊 96
4.2.2 使用變量存儲GPIO端口引腳的設定值 96
4.2.3 GPIO端口數字信號輸出 97
4.2.4 使用 MicroPython控制LED間斷閃亮 97
4.3 樹莓派Pico開發板小功率LED接口與GPIO控制 99
4.3.1 樹莓派Pico開發板硬件接口輸出擴展負載的接法 99
4.3.2 小功率LED燈交替閃亮GPIO控制實踐 100
4.3.3 彩色RGB LED燈GPIO控制實踐 102
4.4 樹莓派Pico開發板按鍵接口與GPIO控制 104
4.4.1 按鍵接口技術 104
4.4.2 上拉電阻與下拉電阻 106
4.4.3 樹莓派Pico開發板按鍵接口與GPIO控制實踐 108
4.5 樹莓派Pico開發板LED顯示器接口與GPIO控制 114
4.5.1 LED顯示控制原理 114
4.5.2 Pico開發板7段LED顯示器接口與GPIO控制實踐 117
第5章 樹莓派Pico中斷與定時技術 121
5.1 中斷技術 121
5.1.1 中斷的基本知識 121
5.1.2 中斷技術基本原理 122
5.1.3 樹莓派Pico中斷系統 125
5.2 Pico按鍵中斷及其 MicroPython實現 127
5.2.1 Pico外部中斷的使用方法 127
5.2.2 Pico單個按鍵中斷控制小功率LED發光實踐 128
5.2.3 Pico多個按鍵中斷控制小功率LED閃爍 130
5.2.4 認識三極管 132
5.2.5 使用Pico開發板、單個按鍵和三極管驅動中大功率LED實踐 135
5.3 定時技術及樹莓派RP2040定時器 138
5.3.1 定時器工作原理 138
5.3.2 樹莓派RP2040定時器 139
5.4 Pico定時器 MicroPython控制編程實踐 __________140
5.4.1 Pico定時器對象的使用方法 140
5.4.2 Pico定時器實現LED閃爍控制實踐 141
5.4.3 Pico定時器控制LED數字顯示實踐 143
5.5 PWM 技術及Pico LED呼吸燈 MicroPython控制編程 146
5.5.1 PWM 技術原理 146
5.5.2 運用PWM 技術實現LED呼吸燈視覺效果 147
5.5.3 樹莓派Pico PWM 通道及PWM 對象的使用方法 148
5.5.4 PWM 控制Pico板載LED呼吸燈的 MicroPython編程實踐 149
第6章 樹莓派Pico串行通信與網絡接口技術 151
6.1 Pico開發板 UART串行通信接口技術與實踐 151
6.1.1 UART串行通信接口技術原理 151
6.1.2 Pico開發板 UART串行通信技術及 MicroPython編程實踐 156
6.2 網絡接口技術 162
6.2.1 分佈嵌入式系統結構 162
6.2.2 分佈嵌入式網絡通信方式 164
6.3 Pico開發板I2C總線通信接口技術與實踐 165
6.3.1 I2C總線接口技術原理 165
6.3.2 Pico I2C總線引腳及Pico I2C對象的使用方法 170
6.3.3 樹莓派Pico開發板I2C EEPROM 接口與編程實踐 173
6.3.4 樹莓派Pico開發板I2C OLED接口與編程實踐 177
6.4 Pico開發板SPI總線通信接口技術與實踐 180
6.4.1 SPI總線接口技術原理 180
6.4.2 Pico SPI總線引腳及Pico SPI對象的使用方法 184
6.4.3 Pico與ADXL345加速度傳感器SPI總線接口及
編程實踐 186
第7章 樹莓派Pico無線通信技術實踐 192
7.1 Pico開發板擴展無線 WiFi模塊通信技術實踐 192
7.1.1 ESP 01無線 WiFi模塊 192
7.1.2 嵌入式TCP/IP協議棧 193
7.1.3 常用 AT指令 196
7.1.4 Pico開發板與ESP 01S無線 WiFi模塊接口及通信編程實踐 __________199
7.2 Pico開發板擴展藍牙模塊通信技術實踐 206
7.2.1 藍牙技術 206
7.2.2 藍牙模塊 207
7.2.3 認識 MOSFET晶體管 209
7.2.4 Pico開發板與 HC 06無線藍牙模塊接口及通信編程實踐 212
7.3 Wio RP2040無線 WiFi局域網通信實踐 217
7.4 Wio RP2040迷你開發板 MQTT遠程無線通信實踐 219
第8章 樹莓派Pico電機接口與控制技術實踐 225
8.1 樹莓派Pico直流電機調速控制技術基礎 225
8.1.1 直流電機簡介 225
8.1.2 晶體管電機驅動電路與續流二極管 226
8.1.3 基於Pico開發板和晶體管的直流電機調速控制實踐 228
8.2 樹莓派Pico直流電機控制技術實踐 230
8.2.1 H橋電機正反轉驅動電路 230
8.2.2 Pico開發板和DRV8833驅動模塊電機接口及編程實踐 238
8.3 樹莓派Pico伺服電機控制技術實踐 242
8.3.1 伺服電機 242
8.3.2 Pico開發板和伺服電機接口連接及編程實踐 244
8.4 樹莓派Pico步進電機控制技術實踐 247
8.4.1 直流步進電機及其驅動電路原理 247
8.4.2 Pico開發板步進電機控制技術實踐 249
第2篇 機器學習與嵌入式機器學習
第9章 機器學習技術基礎及實踐 259
9.1 機器學習簡介 259
9.1.1 機器學習的分類 259
9.1.2 機器學習應用開發的基本流程 261
9.1.3 機器學習常用基本術語 263
9.1.4 機器學習編程環境及工具 267
9.2 常用機器學習技術及華為AI雲平台 ModelArts實踐 268
9.2.1 監督學習基本應用問題 268
9.2.2 回歸算法及華為 AI雲平台 ModelArts使用與實踐 271
9.2.3 主成分分析方法及特徵提取應用實踐 280
9.3 神經網絡方法基礎 284
9.3.1 生物神經元 284
9.3.2 人工神經網絡結構 285
9.3.3 人工神經網絡基本學習算法 289
9.3.4 BP神經網絡模型 293
9.3.5 神經網絡常用激活函數 297
9.3.6 深度神經網絡 300
9.4 基於PCA 特徵提取和神經網絡方法的人臉識別技術實踐 301
9.4.1 ORL人臉庫 301
9.4.2 PCA方法人臉圖像特徵提取 302
9.4.3 ORL人臉識別神經網絡結構 302
9.4.4 採用Python和tf.Keras編寫 ORL人臉識別程序 303
第10章嵌入式機器學習技術實踐310
10.1 嵌入式機器學習技術310
10.2 tf.Keras CNN喚醒詞檢測及樹莓派TFLite語音控制實踐311
10.2.1 Speech Commands數據集312
10.2.2 語音喚醒詞的MFCC特徵提取312
10.2.3 基於CNN方法和tf.Keras的語音喚醒詞分類檢測技術實踐319
10.2.4 基於TFLite模型推理引擎的樹莓派語音喚醒詞分類檢測實踐323
10.3 Pico Arduino C力觸覺感知與回歸建模及Processing交互329
10.3.1 Pico開發板Arduino IDE開發環境安裝與使用329
10.3.2 Pico Arduino觸覺感知及Processing、Pico Arduino觸覺交互332
10.3.3 基於力觸覺回歸和質點彈簧模型的力觸覺交互變形可視化338
10.4 運用Edge Impulse實現樹莓派Pico嵌入式機器學習350
10.4.1 Edge Impluse 350
10.4.2 運用Edge Impluse構建Pico姿態檢測TinyML模型351
10.4.3 運用Edge Impluse構建Pico中文語音喚醒詞TinyML模型362
參考文獻369