《Arduino技術指南》是2017年12月人民郵電出版社出版圖書,作者是[美]約翰·休斯(John M. Hughes)。
基本介紹
- 書名:Arduino技術指南
- 作者:[美]約翰·休斯(John M. Hughes)
- 出版社:人民郵電出版社
- 出版時間:2017年12月
內容簡介,圖書目錄,
內容簡介
本書主要講解了Arduino開發板的物理特性與接口功能,Arduino使用的各種AVR微控制器,Arduino特有的編程環境,各種擴展板,可與Arduino一起工作的感測器、繼電器模組、小鍵盤以及其他附加組件,從零開始創建自定義擴展板的步驟,介紹各種分析設計問題、定義實體與可測試需求的方法,確保開發成功。
圖書目錄
前言
第 1 章 Arduino 家族 1
1.1 Arduino 簡史.1
1.2 Arduino 設備類型.2
1.3 Arduino 實物展示.3
1.4 Arduino 兼容設備.6
1.4.1 硬體兼容設備 6
1.4.2 軟體兼容設備 7
1.5 Arduino 命名約定.8
1.6 使用Arduino 可以實現的目的9
1.7 更多信息 .11
第 2 章 AVR 微控制器 .12
2.1 背景.12
2.2 內部架構 .13
2.3 內部存儲器 .16
2.4 外圍功能 .16
2.4.1 控制暫存器 16
2.4.2 數字I/O 連線埠 .17
2.4.3 8 位定時器/ 計數器 18
2.4.4 16 位定時器/ 計數器 19
2.4.5 定時器/ 計數器預分頻器 .19
2.5 模擬比較器 .19
2.6 模數轉換器 .20
2.7 串列I/O.21
2.7.1 USART 22
2.7.2 SPI .22
2.7.3 TWI .23
2.8 中斷 24
2.9 看門狗定時器 .26
2.10 電氣特性 .26
2.11 更多信息 .27
第3 章 Arduino 專用AVR 微控制器 .28
3.1 ATmega168/328 29
3.1.1 記憶體 29
3.1.2 特性 29
3.1.3 封裝 30
3.1.4 連線埠 31
3.1.5 引腳電路 31
3.1.6 模擬比較器輸入 31
3.1.7 模擬輸入 32
3.1.8 串列接口 32
3.1.9 定時器/ 時鐘I/O .33
3.1.10 外部中斷 33
3.1.11 Arduino 引腳分配 34
3.1.12 基本電氣特性 35
3.2 ATmega1280/ATmega2560 35
3.2.1 記憶體 35
3.2.2 特性 37
3.2.3 封裝 37
3.2.4 連線埠 37
3.2.5 引腳功能 38
3.2.6 模擬比較器輸入 38
3.2.7 模擬輸入 39
3.2.8 串列接口 39
3.2.9 定時器/ 時鐘I/O .40
3.2.10 外部中斷 41
3.2.11 Arduino 引腳分配 41
3.2.12 電氣特性 44
3.3 ATmega32U4 44
3.3.1 記憶體 44
3.3.2 特性 45
3.3.3 封裝 46
3.3.4 連線埠 46
3.3.5 引腳功能 47
3.3.6 模擬比較器輸入 47
3.3.7 模擬輸入 47
3.3.8 串列接口 48
3.3.9 定時器/ 時鐘I/O .49
3.3.10 外部中斷 50
3.3.11 USB2.0 接口 .51
3.3.12 電氣特性 52
3.3.13 Arduino 引腳分配 52
3.4 熔絲位 .53
3.5 更多信息 .55
第4 章 Arduino 技術細節 .56
4.1 Arduino 特性與功能.56
4.2 Arduino USB 接口 57
4.3 Arduino 物理大小.59
4.3.1 全尺寸基本Arduino PCB 類型.60
4.3.2 Mega 類型的Arduino PCB .61
4.3.3 小型Arduino PCB62
4.3.4 特殊用途PCB 類型 .65
4.4 Arduino 引腳布局.66
4.4.1 Arduino 基線引腳布局 66
4.4.2 擴展基線引腳布局 67
4.4.3 Mega 引腳布局 72
4.4.4 非標準布局 74
4.5 更多信息 78
第5 章 對Arduino 與AVR 微控制器編程 .79
5.1 微控制器交叉編譯 .80
5.2 BootLoader 81
5.3 Arduino IDE 環境 .83
5.3.1 安裝Arduino IDE 84
5.3.2 配置Arduino IDE 85
5.4 使用Arduino IDE 進行交叉編譯 86
5.4.1 Arduino 可執行映像 89
5.4.2 Arduino 軟體創建過程 89
5.4.3 程式標籤卡 90
5.4.4 Arduino 軟體架構 91
5.4.5 運行時支持:main() 函式 92
5.4.6 程式示例 94
5.4.7 常量 97
5.4.8 全局變數 97
5.5 庫 .98
5.5.1 在Arduino 程式中使用庫 .98
5.5.2 將庫添加到Arduino IDE 101
5.5.3 創建自定義庫 103
5.6 Arduino 原始碼.103
第6 章 不使用Arduino IDE 編程 .105
6.1 IDE 替換方案 .105
6.1.1 PlatformIO 105
6.1.2 Ino .107
6.2 AVR 工具鏈 .108
6.2.1 安裝工具鏈 111
6.2.2 make 112
6.2.3 avr-gcc.113
6.2.4 binutils 113
6.2.5 avr-libc 116
6.3 從零開始構建C 或C++ 程式 .118
6.3.1 使用avr-gcc 或avr-g++ 進行編譯 118
6.3.2 多個源檔案與make 程式 118
6.4 AVR 彙編語言 .120
6.4.1 AVR 編程模型 .121
6.4.2 創建AVR 彙編語言程式 123
6.4.3 AVR 彙編語言資源 .125
6.5 上傳AVR 可執行代碼 126
6.5.1 系統內編程 126
6.5.2 使用Bootloader 編程 .127
6.5.3 不使用Bootloader 上傳 .127
6.5.4 JTAG .129
6.5.5 AVRDUDE .129
6.5.6 將Arduino 用作ISP 131
6.5.7 Bootloader 運作 131
6.5.8 更換Bootloader 133
6.6 小結 .133
第7 章 Arduino 庫 .134
7.1 庫組件 .134
7.1.1 EEPROM 136
7.1.2 Ethernet .138
7.1.3 Firmata 144
7.1.4 GSM 148
7.1.5 LiquidCrystal 157
7.1.6 SD .160
7.1.7 Servo .163
7.1.8 SPI .164
7.1.9 SoftwareSerial .165
7.1.10 Stepper 167
7.1.11 TFT .167
7.1.12 Wi-Fi .170
7.1.13 Wi-Fi 類 172
7.1.14 IPAddress 類 172
7.1.15 Server 類 172
7.1.16 Client 類 173
7.1.17 UDP 類 173
7.1.18 Wire .174
7.1.19 Esplora .176
7.2 第三方庫 .179
第8 章 擴展板 182
8.1 擴展板的電氣特性 .183
8.2 擴展板的物理特性 .184
8.3 堆疊擴展板 .186
8.4 常用Arduino 擴展板186
8.4.1 輸入/ 輸出 .187
8.4.2 I/O 擴展板 187
8.4.3 I/O 拓展板 191
8.4.4 繼電器擴展板 194
8.4.5 信號路由擴展板 196
8.4.6 存儲器 199
8.4.7 通信 201
8.4.8 串列I/O 與MIDI .201
8.4.9 Ethernet .202
8.4.10 藍牙 204
8.4.11 USB .205
8.4.12 ZigBee .207
8.4.13 CAN 208
8.4.14 原型 211
8.4.15 製作自定義原型擴展板 213
8.4.16 運動控制 214
8.4.17 DC 與步進電機控制 214
8.4.18 PWM 與舵機控制 216
8.4.19 顯示器 217
8.4.20 儀表擴展板 223
8.4.21 適配器擴展板 225
8.4.22 混雜擴展板 226
8.5 非常見Arduino 擴展板230
8.6 資源 231
第9 章 模組與I/O 組件 .233
9.1 模組234
9.1.1 物理外形 235
9.1.2 接口 235
9.1.3 模組來源 238
9.1.4 模組說明 238
9.2 Grove 模組 260
9.3 感測器與模組介紹 .261
9.4 感測器 .262
9.4.1 溫度、濕度、壓力感測器 263
9.4.2 傾斜感測器 267
9.4.3 聲音感測器 268
9.4.4 光線感測器 269
9.4.5 磁場感測器 272
9.4.6 振動與敲擊感測器 273
9.4.7 運動感測器 274
9.4.8 接觸與位置感測器 275
9.4.9 距離感測器 278
9.5 通信 279
9.5.1 APC220 無線模組 279
9.5.2 315/433 MHz RF 模組 .280
9.5.3 ESP8266 收發器.280
9.6 輸出設備與元件 .281
9.6.1 光源 281
9.6.2 繼電器、電機與舵機 285
9.6.3 模擬信號輸出 287
9.7 用戶輸入 .288
9.7.1 鍵盤 288
9.7.2 搖桿 289
9.7.3 電位器與旋轉編碼器 289
9.8 用戶輸出 .289
9.8.1 文本顯示器 290
9.8.2 圖形顯示器 291
9.9 支持功能 .291
9.9.1 時鐘 292
9.9.2 定時器 293
9.10 連線 294
9.10.1 使用裸露跳線 294
9.10.2 模組連線系統 294
9.10.3 自己動手製作連線器 295
9.10.4 選擇連線方法 297
9.11 供應商資源 .297
9.12 小結 .297
第 10 章 自己動手製作元件 .299
10.1 準備工作 .301
10.2 製作擴展板 .305
10.2.1 物理考慮 .306
10.2.2 堆疊擴展板 .307
10.2.3 電氣考慮 .308
10.3 製作GreenShield 擴展板 .309
10.3.1 目標 .309
10.3.2 定義與規劃 .309
10.3.3 設計 .310
10.3.4 製作原型 .316
10.3.5 **終軟體 .322
10.3.6 裝配 .328
10.3.7 **終驗收測試 .332
10.3.8 運行 .333
10.3.9 後續步驟 .334
10.4 製作與Arduino 兼容的PCB .334
10.5 Switchinator 335
10.5.1 定義與規劃 .335
10.5.2 設計 .336
10.5.3 原型 .347
10.5.4 軟體 .350
10.5.5 製造 .353
10.5.6 驗收檢測 .356
10.5.7 後續步驟 .356
10.6 資源 .356
第 11 章 項目:可程式信號發生器 358
11.1 項目目標 .360
11.2 定義與規劃 .360
11.3 設計 362
11.3.1 功能 .362
11.3.2 外殼 .363
11.3.3 電路圖 .364
11.4 搭建原型 .366
11.4.1 控制輸入與模式 .367
11.4.2 顯示輸出 .368
11.4.3 DDS 模組 369
11.5 軟體 .370
11.5.1 原始碼組織 .371
11.5.2 軟體描述 .372
11.5.3 DDS 庫 378
11.5.4 測試 .379
11.6 **終組裝 .382
11.6.1 上拉電阻陣列 .382
11.6.2 輸入保護 .383
11.6.3 機箱外殼 .384
11.6.4 DC 電源.386
11.7 **終測試與結束 .386
11.8 削減開支 .387
11.9 成本明細 .388
11.10 資源 .389
第 12 章 項目:智慧型調溫器 .390
12.1 背景 390
12.1.1 HVAC 概述 .391
12.1.2 溫度控制基礎 .392
12.1.3 智慧型溫度控制 .394
12.2 項目目標 .395
12.3 定義與規劃 .395
12.4 設計 .396
12.4.1 功能 .396
12.4.2 外殼 .397
12.4.3 電路圖 .399
12.4.4 軟體 .399
12.4.5 用戶輸入/ 輸出 402
12.4.6 控制輸出 .406
12.5 原型 406
12.5.1 DHT22 感測器 407
12.5.2 旋轉編碼器 .408
12.5.3 實時時鐘模組 .409
12.5.4 LCD 擴展板 410
12.6 軟體 .410
12.6.1 原始碼組織 .410
12.6.2 軟體描述 .410
12.6.3 測試 .413
12.7 **終版本 .413
12.7.1 組裝 .414
12.7.2 測試與運行 .416
12.8 成本明細 .417
12.9 後續步驟 .417
12.10 資源 .418
第 13 章 模型火箭發射器:設計研究 419
13.1 概覽 419
13.2 設計周期 .420
13.3 目標 421
13.4 選擇與定義功能需求 .423
13.5 進行初步設計 .426
13.5.1 設計可行性 .429
13.5.2 初始元件列表 .432
13.6 原型 432
13.7 **終設計 .433
13.7.1 電氣特徵 .433
13.7.2 物理外形 .438
13.7.3 軟體 .440
13.7.4 測試與運行 .442
13.8 成本分析 .443
附錄A 工具與配件 444
附錄B AVR ATmega 控制暫存器 455
附錄C Arduino 與兼容產品廠商 477
附錄D 推薦閱讀 482
附錄E Arduino 與AVR 軟體開發工具 .484
關於作者.487
關於封面 487