内容简介
《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值 /
摘要与插图
献给我的祖母——那个终生保持着好奇心并善于激励他人的人,她启发我每天不断向前。
关于作者
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,是他们持续的激励,让我明白了做这些事情的意义。
前 言
你拥有的时机。正如我经常喜欢说的,“我们生活在未来”。