
本书对电子技术和编程的基础知识进行了深入浅出的讲解,降低了学习难度,使学习更有乐趣;既包含基础应用,又有前沿探索的内容,如物联网的知识等,使学习循序渐进;充分考虑了Arduino开源的特点,探讨了Arduino与中学实验、与乐高机器人等领域的融合,丰富了Arduino的应用;还引入了Arduino辅助设计软件Fritzing,完整呈现了创意、虚拟呈现、试验电路、产品实现的过程。
本书主要面向没有电子技术和编程基础知识的青少年。
先说两件事。
第一件事: 记得早些年,我看了一个电视节目,主持人问五六岁的孩子“你长大了想干什么?”孩子说:“我想当发明家,能够把水变成油,这样好多好多汽车只用加水就能跑了。 ”许多人交口称赞:“孩子真有想象力!”随着孩子年龄的增长,我们越来越难从他们口中听到类似的想法,以至于现在有不少声音质疑孩子们的想象力、创造力,进而质疑学校教育,似乎教育和孩子的创造力已经真的到了只能扼腕叹息的地步。
第二件事: 编者在上初中的时候开始对电子制作有了兴趣,也想办法拆了不少东西。后来偶然得到一本电子电路方面的书,此书跟大多数电子类的书一样,电阻、二极管、三极管等内容一应俱全、面面俱到。当时我只是个初中生,在看到“三极管特性曲线”的时候,就再也看不下去了。也就是说,那本书我就看了前面十几页。那个时候,学习几乎是学生唯一和必须完成的任务,我的爱好没有继续下去。后来进入大学,学习没有那么紧张了,想再玩一玩电子制作。这个时候,大家已经都在玩单片机了。由于完全没有单片机的基础,于是我求助电子专业的一位老师,他给了我一本《51单片机》让我先补点基础知识。那是一本32开的书,没多厚,书角已磨得不成样子,很有沧桑感,竟跟我最早的那本电子书有些神似。等我看的时候才发现,看书的感觉跟当年那么相似,满书都是什么地址、寄存器、指令……结果可想而知。
不知道有多少人像编者一样,有那么一个兴趣爱好,却始终在门口徘徊,慢慢地丢了、放了,没有了创造的欲望。我一直在想这是为什么。几年前开始接触Lego(乐高),再后来发现了Arduino,觉得似乎找到了答案,或者说找到部分答案。创造力不仅仅是“把水变成油”的奇想,还需要及时把它表现和物化出来。对于热爱创造的人来说,这种“成果”是激励他克服困难的强大动力。遗憾的是,很多时候,爱好者们要想实现其想法,必须积累太多的知识、技能之后才能有一点点成果,很多人坚持不到这一阶段。表现和物化的过程一定需要借助一些外部手段——工具。“工具”的好坏、易用程度,直接决定了其是否能够顺利地取得成果,“工欲善其事,必先利其器”就有这个意思。
我想,Arduino会是适合孩子们的“利器”。Arduino本身就不是为专业人员开发的,其设计之初的目的是让设计师和艺术家们能够快速地表达其创意。想一想,艺术家们懂得的电子知识应该不会比孩子们多很多。
这本书面向的对象是没有太多电子技术和计算机编程基础知识的青少年朋友,书中编者的话 用Arduino进行创造〖2〗〖2〗 〖1〗
的案例不见得精彩、高深,编写的程序也肯定没有那么精炼。仅靠这本书,读者不会成为Arduino高手,但是相信能帮读者迈出成为高手的第一步。
创造,不仅仅要有上天入地的奇想;创造,要先实现自己脑海中闪现的那一丁点儿的小火花!
本书主要由刘玉田负责构思和编写,部分章节与同事共同编写,具体为: 第3章与许勇进共同编写,第2章与崔艳丽共同编写,第4章与马丽娜共同编写,第5章与张瑞琳共同编写,第8章与何佳星共同编写,在此对他们表示感谢。
由于编者水平所限,书中难免存在疏漏与不足,恳请广大读者批评指正。
编者2014年3月
第1章Arduino简介1
1.1Arduino UNO硬件介绍1
1.2Arduino的开发环境5
1.3使用Arduino8
第2章Arduino入门14
2.1LED闪烁14
2.1.1Arduino编程基础14
2.1.2Blink程序拓展21
2.2按键开关控制LED25
2.2.1初步方案25
2.2.2问题分析28
2.3触摸开关控制LED31
2.4用红外接近开关控制LED35
第3章Arduino与Fritzing38
3.1初识Fritzing38
3.2面包板视图操作41
3.3原理视图操作44
3.4PCB视图操作48
3.4.1设计PCB板48
3.4.2焊接电路板51
第4章温控风扇项目54
4.1测量温度54
4.1.1测量温度并在串口监视器上显示54
4.1.2LED警示温度58
4.1.3程序简化61
4.1.4用闪烁频率警示温度63
4.2数码管显示温度65
4.2.1七段LED数码管65
4.2.24位数码管显示69
4.2.34位数码管显示温度电路改进75
4.3添加报警温度设定功能77
4.3.1电位器77
4.3.2电位器调整报警温度79
4.4风扇转起来83
4.4.1Arduino控制风扇83
4.4.2可以调速的风扇87
4.4.3摇杆控制电机转速和方向92
4.5会摇头的风扇94
4.5.1舵机94
4.5.2Servo library96
4.5.3连接多个舵机101
第5章太阳能板自动追日装置104
5.1检测光照强弱104
5.2判断光线方向108
5.3太阳能板方位控制111
5.3.1方位控制原理111
5.3.2电机控制模块制作113
5.4追日程序115
第6章网络浇花器119
6.1自动浇花器119
6.2XBee无线网络122
6.2.1使用XBee的硬件准备123
6.2.2XBee的配置124
6.2.3Arduino通过XBee与计算机无线通信128
6.2.4自动浇花器与计算机无线通信130
6.2.5两块Arduino通过XBee通信132
6.3将自动浇花器接入互联网134
6.3.1Ethernet扩展板和Ethernet库134
6.3.2让Arduino成为网络服务器140
6.4将Arduino接入物联网144
6.4.1Yeelink快速开始144
6.4.2上传土壤湿度传感器的数据149
6.4.3远程控制浇花水泵155
第7章Arduino与中学物理实验160
7.1测量单摆的周期160
7.2晶体和非晶体熔化实验163
7.2.1熔化实验简介163
7.2.2实验改进163
7.2.3数据处理167
7.2.4补充阅读169
第8章Arduino与Lego172
8.1Arduino与Lego结合172
8.2NXShield程序示例176
8.2.1NXT触碰和光电传感器使用示例177
8.2.2NXT电机和超声波传感器使用示例181
8.3循迹小车184
8.4NXShield控制舵机188
8.5扩展阅读——I2C和Wire库192
附录硬件推荐及说明195
参考文献201