MicroPython項目開發實戰 MicroPython Projects: A do-it-yourself guide for embedded developers to build a range of applications using Python

[美]雅各布·貝寧格 著 張博 譯

  • MicroPython項目開發實戰-preview-1
  • MicroPython項目開發實戰-preview-2
  • MicroPython項目開發實戰-preview-3
MicroPython項目開發實戰-preview-1

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

商品描述

《MicroPython項目開發實戰》詳細闡述了與MicroPython項目相關的基本內容,主要包括MicroPython簡介、管理實時任務、針對I/O擴展器編寫MicroPython驅動程序、開發應用程序測試框架、自定義MicroPython內核啟動代碼、自定義調試工具以可視化傳感器數據、使用手勢控制設備、基於Android的自動化和控制、利用機器學習構建物體檢測應用程序、MicroPython的未來等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。

目錄大綱

目    錄

第1章  MicroPython簡介 1

1.1  嵌入式軟件語言 1

1.2  MicroPython案例 3

1.2.1  用例1—DIY項目 5

1.2.2  用例2—快速原型 5

1.2.3  用例3—小批量生產產品 6

1.3  評估MicroPython是否適合 7

1.4  選擇合適的開發平臺 8

1.4.1  調查可用的架構 8

1.4.2  確定感興趣的開發板 9

1.4.3  利用KT矩陣選擇開發板 12

1.5  MicroPython的開發過程和策略 13

1.6  有用的開發資源 16

1.7  本章小結 16

1.8  本章練習 17

1.9  進一步閱讀 17

第2章  管理實時任務 19

2.1  技術需求 19

2.2  實時調度的需求條件 19

2.3  MicroPython調度技術 20

2.3.1  輪流調度 21

2.3.2  使用定時器的周期性調度 24

2.3.3  MicroPython線程機制 28

2.3.4  事件驅動調度 31

2.3.5  合作式調度 31

2.4  使用asyncio的協同多任務處理 31

2.4.1  asyncio簡介 32

2.4.2  基於協作多任務的LED示例 33

2.4.3  關於asyncio的進一步討論 35

2.5  本章小結 36

2.6  本章練習 36

2.7  進一步閱讀 36

第3章  針對I/O擴展器編寫MicroPython驅動程序 37

3.1  技術需求 37

3.2  RGB按鈕I/O擴展器項目要求 38

3.2.1  硬件需求 38

3.2.2  軟件需求 38

3.3  硬件和軟件架構設計 39

3.3.1  硬件架構 39

3.3.2  詳細的硬件設計 40

3.3.3  選擇一個按鈕 41

3.3.4  I/O擴展器原理圖 41

3.3.5  軟件架構 42

3.4  項目構建 45

3.4.1  構建硬件 45

3.4.2  構建I/O擴展器驅動程序 46

3.4.3  構建RGB驅動程序 47

3.4.4  構建RGB按鈕驅動程序 48

3.5  測試和驗證 49

3.5.1  開發測試用例 49

3.5.2  編寫應用程序 52

3.6  本章小結 58

3.7  本章練習 58

3.8  進一步閱讀 58

第4章  開發應用程序測試框架 59

4.1  技術需求 59

4.2  測試框架簡介 59

4.3  測試框架的需求 61

4.3.1  硬件需求 61

4.3.2  軟件需求 62

4.4  測試框架設計 63

4.4.1  測試框架的硬件體系結構 63

4.4.2  測試框架的軟件體系結構 64

4.5  構建測試框架 67

4.5.1  編寫測試架構 67

4.5.2  測試PCA8574 69

4.6  運行測試框架 71

4.7  本章小結 72

4.8  本章練習 73

4.9  進一步閱讀 73

第5章  自定義MicroPython內核啟動代碼 75

5.1  技術需求 75

5.2  MicroPython內核概述 76

5.2.1  下載MicroPython內核 76

5.2.2  MicroPython內核的組織方式 77

5.2.3  STM32L475E_IOT01A埠 77

5.3  訪問啟動代碼 83

5.4  將MicroPython模塊添加至內核中 90

5.5  將自定義內核部署至開發板上 92

5.5.1  編譯後的輸出文件 93

5.5.2  對開發板編程 94

5.5.3  測試更新後的內核 96

5.6  本章小結 98

5.7  本章練習 98

5.8  進一步閱讀 98

第6章  自定義調試工具以可視化傳感器數據 99

6.1  技術需求 99

6.2  調試和可視化嵌入式系統 100

6.3  可視化工具的需求 100

6.3.1  硬件需求 100

6.3.2  軟件需求 101

6.4  可視化工具的設計 101

6.4.1  可視化工具的硬件架構 102

6.4.2  可視化工具的軟件架構 103

6.5  構建可視化工具 104

6.5.1  安裝項目庫 105

6.5.2  在MicroPython中設置串行數據流 105

6.5.3  利用命令行參數打開COM埠 108

6.5.4  利用Matplotlib創建用戶界面 110

6.5.5  繪制輸入數據流 112

6.6  測試並運行可視化工具 115

6.7  本章小結 117

6.8  本章練習 118

6.9  進一步閱讀 118

第7章  使用手勢控制設備 119

7.1  技術需求 119

7.2  手勢控制器簡介 119

7.3  手勢控制器的需求 120

7.3.1  硬件需求 121

7.3.2  軟件需求 121

7.4  硬件和軟件設計 121

7.4.1  硬件架構 122

7.4.2  詳細的硬件設計 122

7.4.3  軟件架構 124

7.5  構建手勢控制器 125

7.5.1  APDS-9960操作理論 125

7.5.2  分析手勢數據 128

7.5.3  APDS-9960手勢驅動程序 131

7.5.4  APDS-9960手勢類構造函數 133

7.5.5  APDS-9960手勢類檢測方法 135

7.5.6  手勢控制器應用程序 138

7.6  測試手勢控制器 140

7.7  本章小結 141

7.8  本章練習 142

7.9  進一步閱讀 142

第8章  基於Android的自動化和控制 143

8.1  技術需求 143

8.2  傳感器節點項目需求 143

8.2.1  硬件需求 144

8.2.2  軟件需求 144

8.3  硬件和軟件設計 145

8.3.1  硬件架構 145

8.3.2  軟件架構 146

8.4  構建傳感器節點 146

8.4.1  在ESP32上安裝MicroPython 147

8.4.2  安裝ESP32快閃內存工具 147

8.4.3  利用MicroPython對ESP32編程 147

8.4.4  利用LED測試MicroPython 149

8.4.5  設置WebREPL 150

8.4.6  利用Anaconda簡化應用程序開發 152

8.4.7  安裝uasyncio 154

8.4.8  編寫傳感器節點應用程序 154

8.5  測試傳感器節點 161

8.5.1  Android套接字服務器 161

8.5.2  向傳感器節點發出命令 163

8.5.3  測試命令 163

8.6  本章小結 164

8.7  本章練習 165

8.8  進一步閱讀 165

第9章  利用機器學習構建物體檢測應用程序 167

9.1  技術需求 167

9.2  機器學習簡介 167

9.2.1  智能系統需求 169

9.2.2  從雲端到邊緣的機器學習 171

9.3  物體檢測需求 172

9.3.1  硬件需求 172

9.3.2  軟件需求 173

9.4  物體檢測設計和理論 174

9.4.1  CIFAR-10和CIFAR-100數據集 174

9.4.2  機器學習模型語言 176

9.4.3  TFLu 176

9.4.4  CMSIS-NN 177

9.4.5  硬件 178

9.5  在OpenMV相機上實現並測試物體檢測 178

9.5.1  OpenMV IDE 179

9.5.2  實現預訓練的CIFAR-10網絡 181

9.5.3  利用TensorFlow模型進行人物檢測 183

9.6  本章小結 187

9.7  本章練習 187

9.8  進一步閱讀 188

9.9  參考資料 188

第10章  MicroPython的未來 189

10.1  不斷發展的MicroPython 189

10.2  Pyboard D-series 190

10.2.1  Pyboard D-series硬件 190

10.2.2  Pyboard D-series軟件 193

10.3  真實世界中的MicroPython 196

10.3.1  DIY/創客示例項目 197

10.3.2  專業示例項目 197

10.4  MicroPython的發展趨勢 198

10.5  進一步討論 199

10.6  參考資料 199

附錄A 201