《图灵程序设计丛书 Arduino技术指南》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)约翰·休斯(JohnM.Hughes)著;武传海译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115471055
  • 页数:487 页
图书介绍:本书主要讲解了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 PCB 62

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