具体描述
《Arduino实战》是用Arduino搭建趣味电子产品的实践指南。《Arduino实战》循序渐进、深入浅出地讲解了Arduino创意电子制作的方方面面:拆封Arduino板卡并让一个LED闪烁,然后进一步介绍在实际项目中最常用的技术,如控制电动机、LCD显示器、超声波和红外线传感器等。书中还讲解了一些流行的技术,如Wi-Fi、蓝牙、GPS、USB通信等。通过《Arduino实战》,读者可以尝试制作五音阶电子琴、简易气象站、微博盒子、可穿戴路标灯等妙趣横生的创意电子产品。除了Arduino和Processing开发环境以外,读者还会接触到Pure Data和Python编程、iOS开发等热点话题。书后附录包括了图解驱动安装、编程基础知识等,即使是没有编程基础的初学者也可以轻松入门,而书中丰富的案例不但兼具深度和广度,更是兼具实用性和艺术性,想必Arduino高手也会从中有所收获。
《Arduino实战》既可以作为Arduino初学者的入门教材,也可以作为Arduino进阶玩家的创意指南和参考手册。
作者简介
Martin Evans是一名专业的开发者,一名终身的电子发烧友,以及一个基于Arduino的水下ROV的创造者。
Joshua Noble是一名作家和创新技术专家,他致力于智能空间方面的工作。
Jordan Hochenbaum使用Arduino来探索音乐表达和创新性交互。
目录信息
第1章 你好Arduino 3
1.1 Arduino简史 4
1.2 Arduino硬件 4
1.2.1 Arduino Uno 5
1.2.2 Arduino Duemilanove 6
1.2.3 Arduino Ethernet 6
1.2.4 Arduino Mega 6
1.2.5 另外几种Arduino电路板 7
1.2.6 复制品的冲击 8
1.2.7 获取一片Arduino 9
1.3 设置你的工作环境 9
1.3.1 Arduino软件 9
1.3.2 基本硬件安装 10
1.3.3 你的Arduino工具箱 10
1.4 做点什么 11
1.4.1 第一个闪烁的LED 11
1.4.2 使LED闪烁的程序 11
1.4.3 把所有的东西连起来 12
1.4.4 上传和测试 12
1.5 熟悉IDE 13
1.5.1 主编辑器 14
1.5.2 串口监视器 15
1.5.3 捕获错误 15
1.5.4 流程 16
1.6 Arduino程序的结构 16
1.6.1 setup子程序 17
1.6.2 无限循环 17
1.7 为代码编写注释 18
1.8 小结 19
第2章 数字输入和输出 20
2.1 准备开始 20
2.1.1 面包板的使用 21
2.1.2 电路图 21
2.1.3 添加LED 22
2.1.4 连接硬件 23
2.1.5 使5个LED闪烁的程序 24
2.1.6 烧写和测试 25
2.2 获得控制权 25
2.2.1 电路图 25
2.2.2 连接 26
2.2.3 认识中断 27
2.2.4 通过按钮控制LED的程序 27
2.2.5 烧写和测试 29
2.2.6 使用break语句 29
2.2.7 烧写和测试 30
2.3 反应测试仪 30
2.3.1 电路图 31
2.3.2 连接 31
2.3.3 测试反应速度的程序 32
2.3.4 烧写和测试 34
2.4 反应速度计:谁真正拥有最快的反应时间 34
2.4.1 测定反应速度的程序 34
2.4.2 烧写和测试 36
2.5 小结 36
第3章 简单项目:输入和输出 38
3.1 认识模拟电路 39
3.1.1 模拟和数字有什么区别 39
3.1.2 读取电位器 40
3.1.3 连接硬件 41
3.1.4 读取电位器的程序 41
3.1.5 烧写和测试 42
3.2 压电换能器 43
3.2.1 电路图 44
3.2.2 连接硬件 45
3.2.3 用于测定压电换能器输出的程序 45
3.2.4 烧写和测试 46
3.2.5 添加一个扬声器的电路 47
3.2.6 连接硬件 48
3.2.7 产生一个音阶的程序 48
3.2.8 烧写和测试 49
3.3 制作一架五声音阶电子琴 49
3.3.1 电路图 50
3.3.2 连接硬件 51
3.3.3 制作一架五声音阶电子琴的程序 51
3.3.4 烧写和测试 52
3.4 小结 53
第二部分 将Arduino投入工作
第4章 扩展Arduino 57
4.1 用库来扩展Arduino 57
4.2 核心库 58
4.3 标准库 58
4.3.1 使用ArduinoTestSuite进行测试驱动型开发 59
4.3.2 使用EEPROM存储数据 60
4.3.3 使用SD卡存储更多数据 61
4.3.4 连接到以太网 62
4.3.5 使用Firmata进行串行数据通信 63
4.3.6 使用LiquidCrystal库显示数据 64
4.3.7 控制伺服电机 65
4.3.8 转动步进电机 65
4.3.9 与SPI外设通信 66
4.3.10 通过双线接口进行数据通信 67
4.3.11 通过SoftwareSerial库获得更多串口 68
4.4 第三方库 70
4.5 通过扩展板来扩展Arduino 71
4.5.1 常用扩展板 71
4.5.2 陷阱:它能用在我的Arduino上吗 73
4.6 小结 74
第5章 运动中的Arduino 75
5.1 认识直流电动机 76
5.1.1 开始和停止 77
5.1.2 启动和停止小型直流电机的程序 77
5.1.3 连接硬件 78
5.1.4 烧写和测试 80
5.2 转速控制和反向旋转 80
5.2.1 PWM来救场 81
5.2.2 用于电机控制的H桥 82
5.2.3 L293D双H桥驱动芯片 83
5.2.4 连接硬件 84
5.2.5 用L293D控制电动机的程序 85
5.2.6 烧写和测试 86
5.2.7 改变电动机的转速 86
5.2.8 烧写和测试 87
5.3 步进电机:每次进一步 88
5.3.1 单极型还是双极型 88
5.3.2 连接硬件 91
5.3.3 步进电机库函数 93
5.3.4 控制步进电机的程序 93
5.3.5 烧写和测试 94
5.4 尝试使用伺服电机 94
5.4.1 控制伺服电机 95
5.4.2 伺服电机的函数与方法 96
5.4.3 控制伺服电机的程序 96
5.4.4 连接硬件 97
5.4.5 烧写和测试 98
5.5 直流无刷电动机:小身材,大力量 98
5.5.1 为什么要用无刷电机 98
5.5.2 获得控制权 99
5.5.3 控制无刷电机的程序 100
5.5.4 连接硬件 101
5.5.5 烧写和测试 102
5.5.6 反向旋转 102
5.5.7 反向旋转一个无刷电机的程序 103
5.5.8 连接硬件 104
5.5.9 烧写和测试 104
5.6 用于更多电动机的电动机控制扩展板 104
5.7 小结 105
第6章 目标检测 106
6.1 使用超声波进行目标检测 106
6.1.1 选择一款超声波传感器 107
6.1.2 三线还是四线 108
6.1.3 超声波目标检测的程序 108
6.1.4 连接硬件 110
6.1.5 烧写和测试 111
6.2 红外测距 111
6.2.1 红外和超声波配合使用 112
6.2.2 夏普GP2D12红外测距仪 112
6.2.3 用于距离计算的非线性算法 112
6.2.4 距离测定的程序 113
6.2.5 连接硬件 115
6.2.6 烧写和测试 115
6.3 使用被动式红外进行运动侦测 115
6.3.1 使用Parallax被动式红外传感器(PIR) 116
6.3.2 红外运动侦测的程序 116
6.3.3 连接硬件 118
6.3.4 烧写和测试 119
6.4 小结 119
第7章 LCD显示器 120
7.1 LCD简介 120
7.2 并行字符LCD:日立HD44780 123
7.2.1 4位还是8位 124
7.2.2 库和函数 124
7.2.3 电路图 125
7.2.4 以4位模式连线 126
7.2.5 写入日立HD44780的程序 128
7.2.6 烧写和测试 128
7.3 串行LCD气象站 129
7.3.1 串行还是并行LCD 129
7.3.2 SerLCD库和函数 130
7.3.3 Maxim DS18B20集成温度传感器 131
7.3.4 OneWire和DallasTemperature库 131
7.3.5 电路图 132
7.3.6 将所有东西连接起来 132
7.3.7 LCD气象站的程序 134
7.3.8 烧写和测试 135
7.4 图形LCD:三星KS0108GLCD 135
7.4.1 库和函数 136
7.4.2 电路图 137
7.4.3 将一切都连接起来 138
7.4.4 在GLCD上绘图的程序 139
7.4.5 烧写和测试 140
7.5 小结 141
第8章 通信 142
8.1 以太网 142
8.1.1 Ethernet库 143
8.1.2 以太网扩展板与SD数据卡 145
8.2 Arduino Web服务器 145
8.2.1 建立服务器 146
8.2.2 建立Web服务器的程序 147
8.2.3 烧写和测试 148
8.2.4 故障排除 149
8.3 与Twitter通信 149
8.3.1 关于Twitter和令牌 149
8.3.2 库和函数 150
8.3.3 电路图和硬件连接 150
8.3.4 Twitter一键发推器的程序 150
8.3.5 烧写和测试 152
8.4 Wi-Fi 152
8.4.1 Arduino WiFi扩展板 153
8.4.2 WiFi库和函数 154
8.4.3 手势:无线加速度计 156
8.4.4 连接硬件 156
8.4.5 Wi-Fi通信的程序 157
8.4.6 烧写和测试 160
8.5 蓝牙无线 160
8.5.1 ArduinoBT 161
8.5.2 添加蓝牙 162
8.5.3 建立一个蓝牙连接 162
8.5.4 蓝牙通信的程序 163
8.6 串行外设接口(SPI) 164
8.6.1 SPI库 164
8.6.2 SPI设备和数字电位器 165
8.6.3 电路图和硬件连接 165
8.6.4 LED数字调光器的程序 167
8.7 数据记录 168
8.7.1 各种存储器 168
8.7.2 SD卡和SD库 169
8.7.3 SD卡传感器记录器的程序 170
8.8 Cosm 171
8.8.1 注册一个账户并获得API密钥 171
8.8.2 创建一个新的数据源 172
8.8.3 Cosm传感器记录程序 173
8.8.4 烧写和测试 175
8.9 小结 175
第9章 游戏开始 183
9.1 任天堂Wii欢迎你 177
9.1.1 Wii Nunchuk 178
9.1.2 连接Nunchuk 180
9.1.3 与Wii通信 181
9.1.4 测试Wii程序 190
9.2 发布Xbox 190
9.2.1 获得连接 191
9.2.2 USB Host库 191
9.2.3 利用USB Host扩展板学习Xbox控制器 192
9.2.4 Xbox报告数据分组 194
9.2.5 让我们启动它 196
9.2.6 与代码接驳 196
9.2.7 Xboxhid.ino 198
9.2.8 硬件连接和测试 201
9.3 小结 202
第10章 Arduino与iOS整合 204
10.1 将你的设备连接到Arduino 205
10.1.1 Redpark串口线 205
10.1.2 最终连接 206
10.2 iOS代码 206
10.2.1 在Xcode中创建一个单视图应用程序 207
10.2.2 编写代码 211
10.3 引入Arduino 214
10.3.1 利用iOS设备开关LED的程序 214
10.3.2 测试这个程序 215
10.4 用Xcode做更多事情 216
添加一个Slider控件 216
10.5 滑动控制Arduino 220
10.5.1 Arduino滑块控制电路 221
10.5.2 测试这个电路 221
10.6 将数据发送到iOS设备 222
10.6.1 Xcode编程 222
10.6.2 GP2D12红外距离传感器 226
10.6.3 测试 227
10.7 小结 228
第11章 制作可穿戴设备 236
11.1 LilyPad简介 230
11.1.1 LilyPad附件 231
11.1.2 导电缝纫线和布料 232
11.2 制作一件转向标夹克 233
11.3 制作一架可穿戴钢琴 236
11.4 Arduino Pro Mini 238
11.5 制作一个智能耳机 238
11.6 制作一件带指南针的夹克 241
11.7 小结 244
第12章 添加扩展板 245
12.1 扩展板基础 245
12.2 Adafruit电动机扩展板 246
12.2.1 AFMotor库 246
12.2.2 使用电动机扩展板控制一个步进电机 248
12.2.3 使用电动机扩展板控制直流电机 249
12.2.4 获得一块电动机扩展板 252
12.3 制作你自己的扩展板 252
12.3.1 存储器 253
12.3.2 电平转换器 253
12.3.3 SD卡插槽 254
12.3.4 将SD卡连接到Arduino 254
12.3.5 准备洞洞板 255
12.3.6 测试扩展板 258
12.4 小结 260
第13章 软件整合 261
13.1 串行信道 262
13.2 使用伺服电机进行人脸跟踪 262
13.2.1 组装人脸跟踪的硬件 264
13.2.2 人脸跟踪的代码 265
13.3 利用Firmata制作一个均衡器 269
13.3.1 在你的应用程序中使用Firmata 269
13.3.2 在Processing中进行音频分析 270
13.3.3 组装均衡器的硬件 271
13.3.4 均衡器的代码 272
13.4 利用Pure Data制作一个合成器 274
13.4.1 组装合成器的硬件 275
13.4.2 合成器的代码 276
13.5 使用Python来监测温度 279
13.5.1 Python中的串口库 279
13.5.2 组装温度计的硬件 281
13.5.3 用于监测温度的代码 281
13.6 小结 283
附录A 安装Arduino IDE 284
附录B 编程基础 291
附录C 软件库 305
附录D 器件列表 309
附录E 有用的链接 214
· · · · · · (收起)
读后感
用户评价
这本关于树莓派的书简直是我的救星!我一直对嵌入式系统和物联网充满好奇,但传统的教程总是让人望而却步,充斥着晦涩难懂的专业术语和复杂的电路图。然而,这本书的讲解方式完全不同。作者似乎深谙初学者的心理,从最基础的概念入手,循序渐进地引导我们进入这个充满乐趣的世界。最让我印象深刻的是它的实践案例。书中提供的项目设计得非常巧妙,不仅贴近日常生活,而且每一步的指导都清晰到位,配图也非常详尽。我跟着做了一个自动浇花系统,看着程序成功运行,那种成就感是无与伦比的。它让我真切地体会到了编程和硬件结合的魔力。而且,书中的代码结构清晰,注释详尽,即便是像我这样编程经验有限的人也能很快理解其工作原理。这本书不仅是工具书,更像是一位耐心的老师,手把手地带着我跨越了初学者的门槛。对于任何想要接触树莓派,却又担心技术门槛太高的人来说,这本书绝对是开启新世界大门的钥匙。
我是一位资深软件工程师,最近想拓展一下硬件技能栈,目标直指微控制器和实时系统。市面上很多同类书籍要么过于偏向理论,缺乏实操深度,要么就是代码堆砌,对底层原理解释不足。这本书却在这两者之间找到了一个绝佳的平衡点。它对处理器的架构、内存管理以及中断机制的阐述,逻辑严密,深入浅出。我特别欣赏它对不同外设接口(如SPI、I2C、UART)的详细对比和应用场景分析,这对于编写高效、可靠的底层驱动至关重要。书中的性能优化章节,提供了许多宝贵的经验,让我学会了如何从微观层面调校代码,挤出每一分系统资源。读完后,我感觉自己对嵌入式系统的理解不再停留在“调用库函数”的层面,而是真正触及到了硬件与软件交互的核心。对于有一定编程基础,希望向专业嵌入式开发迈进的读者来说,这本书的深度和广度都达到了专业参考资料的水准,是梳理知识体系的绝佳选择。
对于纯粹的电子爱好者,尤其是刚接触数字逻辑和微控板的用户来说,这本书的入门体验极其友好。我完全是电子白痴,以前连电阻和电容都分不清。但作者似乎非常了解我们这类“小白”的困惑点。在讲解电路连接时,书里用的是非常直观的连线图,而不是枯燥的原理图,这大大降低了上手的心理压力。更棒的是,它没有急于展示复杂的功能,而是从点亮一个LED灯开始,逐步增加复杂度,每一次的进步都建立在对前一个知识点完全掌握的基础上。当我第一次通过代码控制一个继电器开关风扇时,我深刻感受到了DIY的乐趣所在。这本书成功地把“高深莫测”的电子编程拉下了神坛,让普通人也能体会到创造的乐趣。它的叙事风格带着一种鼓励和引导的力量,让人愿意沉下心来,一步步探索下去。
我非常注重书籍的后续价值和拓展性。很多教程读完一遍就束之高阁了,但这本书的设计理念显然考虑了长期的学习路径。它在核心功能介绍完毕后,留出了大量的篇幅讨论高级主题,比如如何通过网络协议进行设备间通信,以及如何部署简单的云端监控服务。这些章节为将初步的实验成果提升到实际应用层面提供了明确的蓝图。我正在尝试利用书中的MQTT协议知识,搭建一个远程监控系统,整个过程的参考资料几乎都可以在这本书中找到对应的概念支撑和代码框架。这种“打地基”后再“盖高楼”的结构,使得这本书的知识体系非常稳固,不容易过时。它不仅仅解决了当前遇到的问题,更重要的是,它教会了我如何去研究和解决未来可能会遇到的更复杂的问题,物超所值。
说实话,我买过不少关于创客教育和DIY项目的书籍,很多都虎头蛇尾,最后总是在一些半成品项目上不了了之。但这一本给我的感觉非常扎实、完整。它不是简单地告诉你“怎么做”,而是深挖“为什么这样做”。比如,在讨论传感器数据采集时,它不仅展示了如何连接和读取数据,还详细分析了信号噪声的来源、滤波算法的选择以及如何通过软件手段补偿硬件的不足。这种全链路的思维培养,对我进行自己的创意项目非常有启发。我甚至开始尝试修改书中一些模块的代码,去适配我手头上的非标设备。书中的排版和图示设计也极其考究,每一个实验步骤都像在操作一个精密的仪器,容错率较高,极大地提升了实验的成功率和读者的自信心。这不仅仅是一本技术手册,更是一本培养解决问题能力的思维训练册。
云端数据交互、iOS开发、Processing/Pure Data互动艺术、可穿戴设备、Twitter盒子、自动人脸跟踪……一本实例丰富的好书,你还在等什么? ~~^_^~~
CH9-11游戏部分和智能可穿戴设备可以看看。
云端数据交互、iOS开发、Processing/Pure Data互动艺术、可穿戴设备、Twitter盒子、自动人脸跟踪……一本实例丰富的好书,你还在等什么? ~~^_^~~
不错
不错