新書推薦:
《
中年成长:突破人生瓶颈的心理自助方案
》
售價:NT$
296.0
《
维奥莱塔:一个女人的一生
》
售價:NT$
347.0
《
商业银行担保管理实务全指引
》
售價:NT$
658.0
《
信风万里:17世纪耶稣会中国年信研究(全二册)
》
售價:NT$
811.0
《
青铜之美 国宝里的中式美学
》
售價:NT$
806.0
《
海外中国研究·朱熹的思维世界(增订版)
》
售價:NT$
653.0
《
汗青堂丛书147·光明时代:中世纪新史
》
售價:NT$
388.0
《
能成事的团队
》
售價:NT$
510.0
|
內容簡介: |
《Arduino魔法书:实现梦想的工具和技术》是一本关于使用Arduino实现梦想的作品。作者Jeremy Blum有一句名言:“我们生活在未来。”利用可用的工具和在本书中将学到的知识,任何人都有机会、也有能力选择一款Arduino微控制器并在几分钟内利用它控制周围的世界——这一梦想直到最近才成为可能。微控制器是一个可编程的平台,它使我们能够使用相对简单的命令,来定义复杂的机械、电气和软件系统的操作。通过对本书的学习,我们将使用Arduino制作各种作品,从运动检测到无线控制系统再到互联网通信。
本书适用于任何经验层级的Arduino爱好者。读者不需要具备或者只需具备少量编程和电气工程方面的经验。为了照顾到各个层次的读者,本书设计了各种可选章节、小栏目或短节选,并在其中详细解释了具体的概念。
|
目錄:
|
目录
第1部分 Arduino工程基础 1
第1章 让你的Arduino闪烁 2
探索Arduino生态系统 3
Arduino功能 3
Arduino板卡 7
创建你的第一个程序 12
下载并安装Arduino IDE 12
运行IDE并连接Arduino 13
分析你的第一个程序 15
本章小结 17
第2章 数字输入、输出和脉冲宽度调制 18
数字输出 19
连接一个LED并使用面包板 19
数字输出端口编程 23
使用for循环 24
analogWrite与脉冲宽度调制 25
读取数字输入 28
读取带有下拉电阻的数字输入 28
使用“有弹性的”按键 30
制作一个可控的RGB LED夜灯 33
本章小结 37
第3章 读取模拟传感器 38
理解模拟和数字信号 39
比较模拟和数字信号 39
将模拟信号转换为数字信号 40
利用Arduino读取模拟传感器:analogRead 41
读取电位器 42
使用模拟传感器 45
利用可变电阻制作自己的模拟传感器 50
使用阻性分压器 50
利用模拟输入控制模拟输出 52
本章小结 54
第2部分 控制环境 55
第4章 三极管与电机驱动 56
驱动直流电机 57
操作大电流感性负载 58
利用PWM控制电动机转速 62
使用H-桥控制直流电机的方向 64
驱动伺服电机 70
理解连续旋转伺服电机和标准伺服电机的区别 71
理解伺服电机控制 71
控制伺服电机 75
制作扫描式距离传感器 76
本章小结 80
第5章 发出声音 81
理解扬声器的工作原理 82
声音的性质 82
扬声器是如何发声的 83
使用tone发出声音 84
包含定义文件 85
给扬声器接线 86
产生声音序列 88
理解tone函数的限制 91
制作一架微型钢琴 91
本章小结 94
第6章 USB和串口通信 95
理解Arduino的串口通信功能 96
使用内置或外置USB-串口转换器的Arduino板卡 97
使用次级含USB功能ATMega MCU来模拟串口转换器的Arduino板卡 99
使用单个带USB功能MCU的Arduino板卡 101
带有USB-Host功能的Arduino板卡 101
监听Arduino 102
使用print语句 102
使用特殊字符 103
改变数据类型表示 105
与Arduino通信 105
从计算机或其他串口设备上读取信息 106
与桌面应用程序通信 112
与Processing通信 113
学习Arduino Leonardo(及其他基于32U4的Arduino)的特殊技巧 119
模拟键盘 119
模拟鼠标 124
本章小结 127
第7章 移位寄存器 129
理解移位寄存器 130
发送并行和串行数据 131
使用74HC595移位寄存器 131
使用Arduino进行串行移位输出 134
在二进制和十进制间转换 136
用移位寄存器控制灯光动画 137
搭建“光骑士” 137
用LED条形图响应输入 139
本章小结 142
第3部分 Arduino通信接口 143
第8章 I2C总线 144
I2C总线的历史 145
I2C硬件设计 145
通信方案与ID值 146
硬件要求和上拉电阻 147
与I2C测温探头通信 148
设置硬件 148
参考数据手册 149
编写软件 151
将移位寄存器、串口通信和I2C通信结合 153
为温度监控系统搭建硬件 153
修改嵌入式程序 154
编写Processing程序 156
本章小结 159
第9章 SPI总线 160
SPI总线概述 161
SPI硬件和通信设计 162
硬件配置 162
通信方案 163
比较SPI与I2C 164
与SPI数字电位器通信 164
从数据手册中获取信息 164
设置硬件 167
编写软件 169
用SPI数字电位器制作视听显示系统 171
设置硬件 172
修改软件 173
本章小结 175
第10章 连接液晶显示器 176
设置LCD 177
使用LiquidCrystal库写入LCD 180
向显示器输出文本 180
创建特殊符号和动画 182
制作一个私人自动恒温器 185
设置硬件 185
用按键调节设定值 188
添加声音报警和电扇 189
整合:完整的程序 190
升级项目 194
本章小结 194
第11章 使用XBee收发器进行无线通信 195
理解XBee无线通信 196
XBee无线收发器 197
XBee无线收发器扩展板和串口连接 198
配置XBee 201
用扩展板或USB适配器配置 202
选择Xbee设置并将XBee连到主机上 203
用X-CTU配置XBee 204
用串口终端配置XBee 207
与计算机无线通信 209
为远程Arduino供电 209
回顾串口示例:用电位器控制Processing 211
回顾串口示例:控制一个RGB LED 214
与另一个Arduino通信:制作无线门铃 216
系统设计 217
发射器硬件 218
接收器硬件 218
发射器软件 219
接收器软件 220
本章小结 223
第4部分 高级的话题和项目 225
第12章 硬件和定时器中断 226
使用硬件中断 227
理解轮询和中断间的折中 228
理解Arduino的硬件中断能力 229
搭建并测试硬件消抖动的按键中断电路 230
使用定时器中断 237
理解定时器中断 237
获取软件库 238
近乎于同时地执行两个任务 238
搭建一个中断驱动的音响 239
音响硬件 239
音响软件 240
本章小结 242
第13章 用SD卡记录数据 243
数据记录的准备工作 244
用CSV文件格式化数据 244
为数据记录准备SD卡 245
将SD卡接入Arduino 249
SD卡扩展板 249
SD卡SPI接口 253
写入SD卡 253
读取SD卡 258
使用一个实时时钟 261
理解实时时钟 261
使用实时时钟 263
做一个入口记录仪 268
记录仪硬件 268
记录仪软件 270
数据分析 273
本章小结 274
第14章 将你的Arduino联网 275
互联网、Arduino和你 276
网络术语 276
客户端与服务器 279
将Arduino联网 279
在网上控制Arduino 279
准备IO控制硬件 280
设计一个简易网页 280
编写Arduino服务器程序 282
通过网络控制Arduino 286
把实时数据发送给绘图服务 290
在Xively上创建实时数据源 290
添加数据源组件 295
本章小结 299
附录 ATMega数据手册和Arduino原理图揭秘 300
阅读数据手册 300
分解数据手册 300
理解器件引脚定义 302
理解Arduino原理图 304
|
內容試閱:
|
献给我的祖母——那个终生保持着好奇心并
善于激励他人的人,她启发我每天不断向前。
关于作者
Jeremy Blum在康奈尔大学取得了电气和计算机工程专业的硕士学位,他还在同一领域取得了学士学位。在康奈尔大学,他通过由他发起并领导的康奈尔大学可持续设计组织(Cornell University Sustainable Design)监督了国内外几座生态建筑的设计和施工,该组织是一个美国承认的可持续设计组织,曾受到美国和世界绿色建筑委员会(U.S. and World Green Building Councils)CEO的特别称赞。同样,Jeremy也将他的激情付诸电气工程领域,设计了太阳能家庭能源监控系统、革命性的光导纤维LED照明系统及追踪太阳的智能太阳能面板。他还负责协助启动了一个首创的创业者协同工作空间,每年致力于许多学生创业项目(也包括一些他自己的创意)的合作开发。
Jeremy还设计了广受称赞的义肢控制方法、手势识别系统及楼宇自动化系统等许多项目。他设计了MakerBot Replicator 3D打印机(被世界各国的人们使用,包括像NASA这样知名组织)的电子系统,以及MakerBot Digitizer 3D扫描仪的原型电子系统和固件。作为知名组织Creative Machines Lab的研究员,他致力于制作能够自我组装的机器人、自学习四足机器人及重新定义个人制造的3D打印机。他将这项研究呈送给了同行审阅的期刊和远在印度的学术会议。
Jeremy制作的YouTube视频已经将数百万人带入了工程学的大门,是互联网上最流行的Arduino入门教程。他曾开发了入选探索频道(Discovery Channel)的开源硬件项目和入门教程,并因此被国际上的开源社区和“创客”社区所熟知,赢得了一些奖项和黑客马拉松(hack-a-thons)大赛。Jeremy入选了美国电气和电子工程师学会(American Institute of Electrical and Electronics Engineers)的2012工程学新面孔(2012 New Face of Engineering)榜单。
他通过自己的公司Blum Idea Labs LLC提供工程学咨询服务,并向纽约的年轻学生教授工程学和可持续发展课程。Jeremy的激情正在通过创新的工程学解决方案,改变着人们的生活和我们的家园。你可以在Jeremy的网站上进一步了解他和他的工作,网址是:www.jeremyblum.com。
关于技术编辑
¬¬Scott Fitzgerald是一名艺术家和教育工作者。自2006年起,他就在教学中将Arduino平台当作教具,并且自2005年起,就在纽约大学的交互性电信项目(Interactive Telecommunications Program,ITP)中教授物理计算,向艺术家和设计师介绍微控制器。Scott为Arduino团队工作,为新产品撰写文档,并创作入门教程来向人们介绍Arduino平台。他在2011年曾经是Making Things Talk第2版的技术编辑,并在2012年为Arduino官方入门套件(Arduino Starter Kit)撰写了附赠的图书。
致 谢
首先,必须感谢在Wiley出版社的朋友帮助我完成了这本书:感谢Mary James当初鼓励我撰写这本书;感谢Jennifer Lynn全程监督了我的写作。我还欠Scott Fitzgerald一个大大的感谢,感谢他在本书的技术编辑过程中的批判性眼光。
如果没有element14的鼎力支持,我可能永远无法制作出我的Arduino入门系列视频教程,它们是本书的序曲。尤其是Sabrina Deitch和Sagar Jethani,他们是绝佳的合作伙伴,我很荣幸能与他们一起工作。
在撰写本书主要部分的同时,我还要完成硕士学位并经营两家公司,所以我要特别感谢我的教授和同事,感谢他们在我尝试平衡所有责任时理解我。
最后,我想感谢我的家庭,特别是我的父母,还有我的兄弟David,是他们持续的激励,让我明白了做这些事情的意义。
前 言
你拥有绝佳的时机。正如我经常喜欢说的,“我们生活在未来”。利用如今可用的工具和书中的知识,你就有机会、也有能力让梦想变成现实。让任何人选择一款微控制器并在几分钟内利用它控制周围的世界——这一梦想直到最近才成为可能。你可能已经猜到了,微控制器是一个可编程的平台,它使你能够使用相对简单的命令,来定义复杂的机械、电气和软件系统的操作。Arduino微控制器平台将成为你的新宠,带你探索电子、编程、人机交互、艺术、控制系统及更加广阔的世界,有了它就有了无限的可能。通过对本书的学习,你将掌握使用Arduino制作各种作品的方法,从运动检测到无线控制系统再到互联网通信。
无论你是工程领域彻头彻尾的新手,还是打算入门嵌入式系统设计的经验丰富的老兵,Arduino都是一个绝佳的起点。你在寻找一本Arduino开发的通用参考手册吗?本书也非常适合你,它会引导你完成一系列具体项目,而你以后也可以再次翻阅本书来查找代码片段、最佳范例和系统原理图等资料。电气工程、系统设计、编程实践……这些你在阅读时学到的知识在Arduino平台之外也有广泛的应用。通过对本书的阅读,你将具备承担各种工程项目的能力,不论它们使用的是Arduino还是其他平台。
本书对象
本书适合任何经验层级的Arduino爱好者。章节是彼此相关的,要利用前面章节中的概念和项目组件来实现更加复杂的想法。但不要担心,当你面临全新的、复杂的想法时,会有一个交叉引用来提示你相关概念第一次出现在书中的何处,以便很快回想起来。
本书假设你不具备或者只具备很少的编程和电气工程方面的工作经验。为了照顾到各个层次的读者,本书设计了各种可选章节、小栏目或短节选,在其中详细解释了具体的概念。尽管这些小栏目对你更深入地理解Arduino的工作原理来说并不是必需的,但它们为更具好奇心的读者提供了进一步关注技术性话题的机会。
你将通过本书学到什么
本书不是食谱书。如果你想遵循手把手地指导自己如何搭建一个具体项目的书,而不需要解释为什么要这么做,那本书便不适合你。你可以把本书作为一本导论,其中介绍了电气工程、计算机科学、产品设计和高级思维;你也可以把Arduino作为媒介,通过动手实践的方式来体验这些概念。
当我们在本书中演示如何搭建Arduino项目的硬件组件时,你学到的将不仅是如何将它们连接在一起,还有如何阅读原理图,为什么将某个器件用于某项功能,如何通过数据手册为自己的项目选择合适的器件等。在编写软件时,我提供了完整的程序代码,但你会逐步走过几个迭代性的过程来创建最终的程序。这会帮助你巩固具体的程序函数、良好的代码格式化实践和对算法的理解。
本书会讲授物理概念、算法、数字化设计原理及具体的Arduino编程概念。我希望,通过对本书中案例的学习,你不仅能成为一名熟练的Arduino开发者,还能学会一些技巧,去开发更加复杂的电气系统,并在其他领域或其他平台上继续从事工程学方面的工作。
本书使用的标注
在本书中使用了下列标注和图标,以在一些最重要或最有用的信息上吸引你的注意。
警告 请你一定要留意这样的条目。如果一旦错误地执行某些步骤就可能导致电子器件损坏,你就会看到这种警告。
提示 这些条目包含了关于如何执行简单任务的快速提示,这可能对你手头的任务有所帮助。
注意 这些条目包含了对你来说可能很重要的额外信息,包括视频和在线资料的相关链接,它们会让具体项目的开发变得更加轻松。
样例标题
这样的条目对当前话题或相关话题做了更加深入的讲解。
获取器件
幸运的是,你可以方便地获得实施本书中项目所需的器件。本书译者已经根据本书内容提供了这些器件的获得地址:http:kuangqi.me。
建议你先买基本套件。随着阅读的深入,你还可以购买扩展套件。不想购买套件吗?别担心。在每章的开头,有一个该章所需的详细器件列表。本书原著的专题网站www.exploringarduino.com,也提供了一些链接,通过它们可以找到每章所需的器件。
注意 你是否已经从Newark获得了本书的捆绑套装?如果是,那么你就可以继续了。
你需要什么
除了用来搭建Arduino项目的具体器件以外,你的Arduino探险之旅还需要一些其他工具和材料。最重要的是,你需要一台兼容Arduino集成开发环境(IDE)的计算机(Mac OS X 10.4以上版本,Windows XP以上版本,或者一个Linux发行版)。在必要时我会为这些操作系统中的操作做出说明。
你可能还想要一些额外的工具,用来调试、组装硬件等。它们对完成本书中的项目来说不是必需的,但在你拓展电气工程技能时,这些工具在其他项目中迟早有用。我推荐如下工具。
一把烙铁和一些焊料(完成本书中的项目并不需要焊接,但你可能希望在洞洞板上组装自己的电路,或者你可能想购买需要焊接组装的扩展板。)
一台万用表(在调试过程中有用,但不是必需的。)
一组小型螺丝刀
一支热熔胶枪
源代码和数字化内容
本书的主要专题网站是www.exploringarduino.com,它是由本书作者维护的。你可以在这个网站上找到每章的代码并下载(还有视频、链接及其他有用的材料)。Wiley也维护了一个关于本书数字化内容的仓库,网址是www.wiley.com。本书代码可在www.wiley.comgoexploringarduino网页的“Download Code”标签下下载。
你也可以在www.wiley.com上根据ISBN(本书原著的ISBN为978-1-118- 54936-0)搜索本书原著,从而找到代码。
在每章的开始处,你可以找到本章主要代码的下载地址。在每章中,
|
|