编辑推荐
1.国外流行的全面、完善的开源硬件图书,引进国内后第1版出版5年仍畅销不衰。
2.属于一书在手通晓所有的完全手册。从零基础开始,讲解详细到位。
3.书中50个案例全部附有源代码,方便读者学习与练习。
内容简介
书籍 计算机书籍
Arduino是当前世界上最为流行的开源硬件,在机器人、艺术、科学实验领域受到广泛关注,在欧美目前非常流行,国内尚处于起步阶段,但非常受到前卫艺术家和硬件DIY爱好者的一致认可。《Arduino从基础到实践(第2版)》是当前所有外版同类书中最详细的,几乎包括了Arduino目前所有可连接技术,属于一书在手通晓所有的完全手册。本书是从零基础开始的,讲解地非常详细,也非常到位。"《Arduino从基础到实践(第2版)》第一版问世后收到读者好评,故引进第二版"
作译者
Michael McRoberts,2008年在天体摄影的小项目中制作云探测器,寻找将温度传感器连接到PC的方法时发现了Arduino。经过研究,发现Arduino是解决这个问题的理想选择。最后很快成功地制作出了云探测器,而且价格便宜。米歇尔对Arduino的兴趣由此开始。自那以后,他采用Arduino完成了大量的工程项目。他同时在网上发现了被称为"地球之光电子"(Earthshine Electronics)的Arduino入门套件及组件。他采用Arduino制作的下一个项目是在UKHAS 和CUSF的搭档们的帮助下,将一个高海拔气球送到边缘空间进行拍照和录像。他做这个项目仅仅是为了好玩。
当米歇尔还是一个孩子的时候,就对电子产生了浓厚的兴趣。那时,无线电器材公司还在利用一百合一电子套件制作圣诞礼物单。在他青少年时,得到一台辛克莱81计算机,开始对编程感兴趣。从那以后,他再也离不开计算机。最近,他又成为了Mac平台的粉丝。
他是伦敦黑客联盟(London Hackspace)和奥尔平顿天文协会的会员,他还经常为Arduino论坛写一些东西。他还喜欢以"Arduino爱好者"(TheArduinoGuy)为网名,潜伏在Arduino、高海拔探测项目和伦敦黑客联盟(一个位于伦敦的非盈利性的技术人员分享工具和知识的社区)等论坛上,或在Twitter上与网民闲聊。闲暇之余,他也喜欢研究天文学、天体摄像,以及骑摩托车兜风和航海。
目录
第1 章 引言 1
如何使用本书 2
你需要的东西 2
Arduino 到底是什么 3
搭建你的Arduino 环境 6
加载第一个程序 13
Arduino IDE 14
总结 21
第2 章 让我们开始吧 22
项目1-LED 闪灯器 22
需要的元件 23
把元件连接起来 23
输入代码 24
项目1-LED 闪灯器-代码回顾 24
项目1-LED 闪灯器-硬件回顾 29
项目2-S.O.S 莫尔斯码信号源 33
输入代码 34
项目2-S.O.S 莫尔斯码信号源-代码回顾 35
项目3-交通信号灯 37
需要的元件 38
把元件连接起来 38
输入代码 39
项目4-互动交通灯 40
需要的元件 41
把元件连接起来 42
输入代码 42
项目4-互动交通灯-代码回顾 44
项目4-互动交通灯-硬件回顾 49
逻辑状态 49
下拉电阻 49
上拉电阻 50
Arduino 的内部上拉电阻 52
小结 52
第3 章 LED 效果 54
项目5-LED 跑马灯效果 54
需要的元件 54
把元件连接起来 54
输入代码 55
项目5-LED 跑马灯效果-代码回顾 56
项目6-互动LED 跑马灯效果 58
需要的元件 58
把元件连接起来 58
输入代码 59
项目6-互动LED 跑马灯效果-代码回顾 60
项目6-互动LED 跑马灯效果-硬件回顾 60
项目7-闪烁灯 62
需要的元件 62
把元件连接起来 62
输入代码 62
项目7-闪烁灯-代码回顾 63
项目8-RGB 彩灯 64
需要的元件 65
把元件连接起来 65
输入代码 65
项目8-RGB 彩灯-代码回顾 67
项目9-LED 火焰效果 71
需要的元件 71
把元件连接起来 71
输入代码 72
项目9-LED 火焰效果-代码回顾 72
项目10-串口控制彩灯 73
输入代码 73
项目10-串口控制彩灯-代码回顾 76
指针概要 80
小结 87
第4 章 简单的扬声器与传感器 89
项目11-压电扬声报警器 89
需要的元件 89
把元件连接起来 90
输入代码 90
项目11-压电扬声报警器-代码回顾 91
项目11-压电扬声报警器-硬件回顾 92
项目12-基于压电扬声器的音乐演奏器 93
输入代码 93
项目12-基于压电扬声器的音乐演奏器-代码回顾 95
项目13-压电震动传感器 99
需要的元件 99
把元件连接起来 99
输入代码 100
项目13-压电震动传感器-代码回顾 101
项目14-光敏传感器 102
需要的元件 102
把元件连接起来 103
输入代码 103
项目14-光敏传感器-硬件回顾 104
小结 106
第5 章 驱动直流电机 108
项目15-简单直流电机控制 108
需要的元件 109
把元件连接起来 109
输入代码 110
项目15-简单直流电机控制-代码回顾 111
项目15-简单直流电机控制-硬件回顾 112
三极管 112
电机 113
二极管 113
项目16-使用L293D 电机驱动芯片 114
需要的元件 114
把元件连接起来 115
输入代码 115
项目16-使用L293D 电机驱动芯片-代码回顾 117
项目16-使用L293D 电机驱动芯片-硬件回顾 118
小结 120
第6 章 二进制计数器和I/O 移位寄存器 122
项目17-移位寄存器8 位二进制计数器 122
需要的元件 122
把元件连接起来 123
输入代码 124
二进制数制 125
项目17-移位寄存器8 位二进制计数器-硬件回顾 127
项目17-移位寄存器8 位二进制计数器-代码回顾 130
按位操作 132
项目17-代码回顾(续) 134
项目18-16 位二进制计数器 136
需要的元件 136
把元件连接起来 137
输入代码 138
代码和硬件回顾 139
小结 140
第7 章 LED 显示器 142
项目19-LED 点阵显示器-基本动画 142
需要的元件 142
把元件连接起来 143
输入代码 145
项目19-LED 点阵-基本动画-硬件回顾 147
项目19-LED 点阵-基本动画-代码回顾 150
项目20-LED 点阵显示器-滚动画面 154
输入代码 154
项目20-LED 点阵-滚动画面-代码回顾 155
项目21-LED 点阵显示器-滚动信息 158
需要的元件 159
把元件连接起来 159
输入代码 161
项目21-LED 点阵-滚动信息-硬件回顾 166
项目21-LED 点阵-滚动信息-代码回顾 169
项目22-LED 点阵显示器-乒乓球游戏 178
需要的元件 179
把元件连接起来 179
输入代码 180
项目22-LED 点阵显示器-乒乓球游戏-代码概述 181
小结 185
第8 章 液晶显示器 188
项目23-基本的LCD 控制 188
需要的元件 188
把元件连接起来 189
输入代码 190
项目23-基本的LCD 控制-代码回顾 193
项目23-基本的LCD 控制-硬件回顾 199
项目24-LCD 温度显示器 199
需要的元件 199
把元件连接起来 200
输入代码 201
项目24-LCD 温度显示器-代码概述 202
小结 206
第9 章 舵机 208
项目25-舵机控制 209
需要的元件 209
把元件连接起来 210
输入代码 210
项目25-舵机控制-代码回顾 211
项目25-舵机控制-硬件回顾 212
项目26-两个舵机控制系统 213
需要的元件 213
把元件连接起来 214
输入代码 214
项目26-两个舵机控制系统-代码回顾 216
项目27-操纵杆控制舵机 219
需要的元件 219
把元件连接起来 219
输入代码 221
项目27-操纵杆控制舵机-代码回顾 222
小结 223
第10 章 步进电机和机器人 225
项目28-基本步进电机控制 225
需要的元件 225
把元件连接起来 226
输入代码 228
项目28-基本步进电机控制-代码回顾 228
项目28-基本步进电机控制-硬件回顾 230
项目29-使用电机模板 232
需要的元件 232
把元件连接起来 232
输入代码 234
项目29-使用电机模板-代码回顾 235
项目29-使用电机模板-硬件回顾 237
项目30-巡线机器人 238
需要的元件 238
把元件连接起来 239
输入代码 242
项目30-巡线机器人-代码回顾 244
小结 249
第11 章 压力传感器 251
项目31-数字压力传感器 251
需要的元件 251
把元件连接起来 252
输入代码 253
项目31-数字压力传感器-代码回顾 256
I2C 总线 257
项目32-数字气压表 267
需要的元件 267
把元件连接起来 268
输入代码 270
项目32-数字气压表-代码回顾 276
小结 283
第12 章 触摸屏 285
项目33-基本的触摸屏 285
需要的元件 285
把元件连接起来 286
输入代码 287
项目33-基本的触摸屏-硬件回顾 289
项目33-基本的触摸屏-代码回顾 290
项目34-触摸屏键盘 293
需要的元件 293
把元件连接起来 294
输入代码 295
项目34-触摸屏键盘-代码回顾 298
项目35-触摸屏灯控制 300
需要的元件 300
把元件连接起来 301
输入代码 301
项目35-触摸屏灯控制-代码回顾 304
小结 306
第13 章 温度传感器 307
项目36-串口温度传感器 307
需要的元件 307
把元件连接起来 308
输入代码 309
项目36-串口温度传感器-代码回顾 310
项目37-单线数字温度传感器 312
需要的元件 312
把元件连接起来 312
输入代码 314
项目37-单线数字温度传感器-代码回顾 319
小结 321
第14 章 超声测距 323
项目38-简单的超声测距仪 323
需要的元件 323
把元件连接起来 324
输入代码 324
项目38-简单的超声测距-代码回顾 325
项目38-简单的超声测距-硬件回顾 327
项目39-超声测距显示仪 328
需要的元件 328
把元件连接起来 329
输入代码 331
项目39-超声测距显示仪-代码回顾 332
项目40-超声报警 336
需要的元件 336
把元件连接起来 337
输入代码 337
项目40-超声报警-代码回顾 339
项目41-超声电子音乐 342
输入代码 343
项目41-超声电子音乐-代码回顾 344
小结 345
第15 章 读写SD 卡 346
项目42-简单的SD 卡读写 346
需要的元件 346
把元件连接起来 347
输入代码 348
项目42-简单的SD 卡读写-代码回顾 350
项目43-用SD 卡记录温度数据 354
需要的元件 354
把元件连接起来 355
输入代码 356
项目43-用SD 卡记录温度数据-代码回顾 359
项目43-用SD 卡记录温度数据-硬件回顾 364
小结 366
第16 章 RFID 读取器 367
项目44-简单的RFID 读取器 367
需要的元件 368
把元件连接起来 368
输入代码 369
项目44-简单的RFID 读取器-代码回顾 370
项目44-简单的RFID 读取器-硬件回顾 370
项目45-门禁控制系统 371
需要的元件 372
把元件连接起来 372
输入代码 373
项目45-门禁控制系统-代码回顾 376
小结 382
第17 章 连接到Internet 384
项目46-以太网板 384
需要的元件 384
把元件连接起来 385
输入代码 385
你需要知道的网络知识 389
项目46-以太网板-代码回顾 390
项目47-Internet 天气显示 394
输入代码 397
项目47-Internet 天气显示-代码回顾 401
项目48-电子邮件提醒系统 405
输入代码 405
项目48-电子邮件提醒系统-代码回顾 409
项目49-微博机器人 415
输入代码 415
项目49-微博机器人-代码回顾 419
项目50-RSS 读取气象信息 423
输入代码 424
项目50-RSS 读取气象信息-代码回顾 429
小结 437
前言
我第一次接触Arduino是在2008年,当时我正在为云探测计划的温度传感器与计算机的连接方法发愁。我想实现一个气象论坛上的云探测想法,因为这是个实习性质的项目,所以我不想因项目失败而损失太多的钱。当时有许多解决方案,但是采用Arduino的方案对我来说有点特别,因为它不仅是容易使用、价格便宜的连接传感器的方法,而且它还可以用于其他很酷的事情。在博客、视频网站和论坛上有成千上万的用Arduino做得很炫的项目。看上去很有团队精神,每个人都试图帮助其他人。
显而易见,我可以从Arduino上得到很多乐趣。然而,我不想在网站上漫无目的地寻找需要的信息。我想要买一本关于Arduino的书籍,我想手边有些资料在工作中随时去翻阅。一番寻找后,我发现了一本书。但是,它太基础了,信息量小,几乎不能给我使用Arduino提供一点实际的帮助,而且我不喜欢那本书的讲授方式。我希望得到的是一本手册式的书来指导编程和学习电子知识,当我做一些东西时不想首先阅读一大串理论知识。这种简洁明了的书当时还不存在。
当我开始封装基于Arduino的"地球之光"项目工具的时候,为帮助使用这个工具,我写了一个小指导书指导其他人使用这个工具。这本小书后来非常流行,并且我从人们的提问中得到了几百条反馈意见,包括什么时候增加更多的项目或是否卖印刷版的指导手册。实际上,我已经想到了写一本初学者容易理解的书要采用这种项目讲授方式,即简单指导动手做的编写方式。这就是这本书的来源。
我写这本书假定读者之前从来没有编写过计算机程序,也没有电子知识,并且假定读者在实际动手用Arduino做一些事情前没有兴趣学习大量的理论知识。因此,当你使用这本书时就从做一些小项目开始,接下来你将要完成整整50个项目,直到你对Arduino开发精通。我相信学一项技术最好的方法是通过直接动手做些事情来学。
本书是这样编排的,第一个项目介绍一些关于Arduino编程和电子学知识的基本概念。接下来的项目再增加一点,每一个项目都建立在之前项目的基础上,当你完成50个项目时,你就可以有信心并且专业地做你自己的项目了。用新的技巧和知识去连接Arduino的外围元件,根据你的兴趣用Arduino做电子设计项目。
每一个项目开始就列出了项目元件需求单。我选择的都是通用元件,很容易买到。我也提供了一个电路图直观演示如何使用跳线和面包板连接Arduino和元件。为给这本书生成元件图和面包板电路图,我用了一款优秀的开源软件Fritzing。这个程序用逼真的方法演示面包板电路图及其他电路。读者可在http://fritzing.org查找这个软件。
当你连接电路之后,根据书中提供的代码,把它输入Arduino的开发环境(IDE)就可以上传到你的Arduino中,并使项目工作。很快就可以得到一个真正的项目运行结果。当项目工作并看到它的运行结果之后,我解释代码是如何工作的。硬件也通过这种方式向你解释它是如何工作的,以及如何正确地把它们连接到Arduino。之后为你一步一步地解释代码,因此你会非常清楚代码每一部分的作用。通过分解电路和代码,你就能理解整个项目,之后这些技巧和知识可用在后面的项目及今后你自己的项目中。
这种讲授方式非常容易动手操作。即使你对编程和电子设计一点经验也没有,你也可以非常容易地以这种方式理解相关概念。更重要的是,你不会因大量枯燥的理论而丧失兴趣。Arduino是强大、有趣、开源的产品,在这本书的帮助下,你会发现通过单片机使你自己的设备与环境互动是多么简单。
Mike McRoberts
书摘
序 言 一
我和郎咸蒙老师结识有一年多时间了,每次与他交流,或者阅读到他的微信公众号文章,我都能感受到工作带给他的无穷的力量和快乐。我相信,对于一位信息技术创客爱好者而言,不断探索未知,不断体验成功,不断勇于尝试,是其他任何事情都无法比拟的。
创客教育以其"分享、开源、协作、创新"等魅力越来越受到重视,作为创客教育内容的主要载体之一,Arduino逐步走进中小学课堂是必然趋势。Arduino相对低廉的价格和较高的性价比符合现阶段创客发展的需求,有一本适合零基础入门的操作手册,更是每一位教授者与学习者最迫切需要的。
这本书是几位信息技术创客同仁共同翻译出版的,他们的执着和对开源硬件新技术的研究热情感染着我,希望更多的优秀教师参与到信息技术创客的研究和普及中,希望更多的孩子在其中找到学习信息技术的乐趣。
山东省教育科学研究院
山东省创客教育联盟
赵亮