具体描述
Arduino是当今世界上最流行的开源硬件,具有价格低廉、便捷灵活、容易上手等特点,在机器人、艺术、科学实验等领域受到了广泛关注。
《动手玩转Arduino》精心整合了65个Arduino作品,而且其难易程度依次递增,旨在让读者以感性的方式,来掌握更多的Arduino知识和经验。通过这65个动手实践,读者除了学到基础的电子学概念、巩固已有的Arduino知识之外,还将学会如何创建功能更为强大复杂的Arduino作品。
《动手玩转Arduino》适合对Arduino感兴趣的硬件DIY爱好者、电子爱好者阅读,也非常适合学生进行电子制作使用。
作者简介
目录信息
1.1 可能性是无限的
1.2 数字的力量
1.3 元件和附件
1.4 所需的软件
1.4.1 Mac OS X
1.4.2 Windows XP及后续版本
1.4.3 Ubuntu Linux 9.04及后续版本
1.5 安全
1.6 展望
第2章 探索Arduino板和IDE
2.1 Arduino板
2.2 看一下Arduino IDE
2.2.1 命令区
2.2.2 文字区
2.2.3 消息窗口区
2.3 在IDE里创建第一个程序
2.3.1 注释
2.3.2 setup函数
2.3.3 控制硬件
2.3.4 loop函数
2.3.5 检查程序
2.3.6 上传和运行程序
2.3.7 修改程序
2.4 展望
第3章 第一步
3.1 规划作品
3.2 关于电
3.2.1 电流
3.2.2 电压
3.2.3 功率
3.3 电子元件
3.3.1 电阻
3.3.2 发光二极管
3.3.3 面包板
3.4 作品1:做出闪烁的LED波
3.4.1 算法
3.4.2 元件
3.4.3 程序
3.4.4 电路
3.4.5 运行程序
3.5 使用变量
3.6 作品2:用for循环做重复动作
3.7 用脉冲宽度调制变化LED的亮度
3.8 作品3:演示PWM
3.9 更多的电子元件
3.9.1 晶体管
3.9.2 整流二极管
3.9.3 继电器
3.10 高压电路
3.11 展望
第4章 构建模块
4.1 使用电路图
4.1.1 识别元件
4.1.2 电路图中的线
4.1.3 剖析电路图
4.2 电容
4.2.1 测量电容的容量
4.2.2 读电容值
4.2.3 电容的分类
4.2.4 数字输入
4.3 作品4:演示数字输入
4.3.1 算法
4.3.2 元件
4.3.3 电路图
4.3.4 程序
4.3.5 修改程序
4.3.6 理解程序
4.3.7 用#define定义常数
4.3.8 读数字输入引脚
4.3.9 用if做决策
4.3.10 用if-then-else做更多的决策
4.4 布尔变量
4.4.1 逻辑运算符
4.4.2 做两个或更多的比较
4.5 作品5:控制交通
4.5.1 目标
4.5.2 算法
4.5.3 元件
4.5.4 电路图
4.5.5 程序
4.5.6 运行程序
4.6 模拟与数字信号的对比
4.7 作品6:做一个单节电池测试仪
4.7.1 目标
4.7.2 算法
4.7.3 元件
4.7.4 电路图
4.7.5 程序
4.8 用Arduino做算术
4.8.1 浮点变量
4.8.2 数值的比较运算符
4.9 用参考电压改进模拟测量精度
4.9.1 用外部参考电压
4.9.2 使用内部参考电压
4.10 可变电阻
4.11 压电蜂鸣器
4.12 作品7:试试压电蜂鸣器
4.13 作品8:做一个易读的温度计
4.13.1 目标
4.13.2 元件
4.13.3 电路图
4.13.4 程序
4.13.5 程序创新
4.14 展望
第5章 使用函数
5.1 作品9:创建一个函数来反复执行
5.2 作品10:创建一个能设置闪烁次数的函数
5.3 创建一个返回值的函数
5.4 作品11:做一个闪烁表示温度的快读温度计
5.4.1 元件
5.4.2 电路图
5.4.3 程序
5.5 在串口监视器中显示Arduino传来的数据
5.6 作品12:在串口监视器显示温度
5.7 用while语句做循环
5.8 从串口监视器发送数据到Arduino
5.9 作品13:把一个数乘以2
5.10 long变量
5.11 作品14:使用long变量
5.12 展望
第6章 数字、变量和算术
6.1 产生随机数
6.2 作品15:做一个电子骰子
6.2.1 元件
6.2.2 电路图
6.2.3 程序
6.2.4 修改程序
6.3 二进制快速入门
6.4 用移位寄存器扩展数字输出
6.5 作品16:做一个LED二进制显示器
6.5.1 元件
6.5.2 连接74HC595
6.5.3 程序
6.6 作品17:做一个二进制测验游戏
6.6.1 算法
6.6.2 程序
6.7 数组
6.7.1 定义数组
6.7.2 访问数组单元
6.7.3 读写数组
6.8 7段数码管
6.9 作品18:做单个数字的显示
6.9.1 元件
6.9.2 电路
6.9.3 程序
6.9.4 显示两位数字
6.10 作品19:控制两个7段数码管
6.10.1 元件
6.10.2 电路图
6.10.3 取模
6.11 作品20:做一个数字温度计
6.11.1 硬件
6.11.2 程序
6.12 LED矩阵显示模块
6.12.1 LED矩阵电路图
6.12.2 连线
6.13 位运算
6.13.1 按位与运算
6.13.2 按位或运算
6.13.3 按位异或运算
6.13.4 按位取反(非)运算
6.13.5 按位左移和右移
6.14 作品21:做一个LED矩阵
6.15 作品22:在LED矩阵上创建图像
6.16 作品23:在LED矩阵上显示图像
6.17 作品24:在LED矩阵上显示动画
6.18 展望
第7章 液晶显示器
7.1 字符LCD模块
7.1.1 在程序中使用字符LCD
7.1.2 显示文字
7.1.3 显示数字变量的值
7.2 作品25:定义定制字符
7.3 图形LCD模块
7.3.1 连接图形LCD
7.3.2 使用LCD
7.3.3 控制显示器
7.4 作品26:文本显示的效果
7.4.1 作出更复杂的显示效果
7.5 作品27:做一个温度历史监视器
7.5.1 算法
7.5.2 硬件
7.5.3 程序
7.5.4 结果
7.5.5 修改程序
7.6 展望
第8章 扩展Arduino
8.1 盾板
8.2 原型盾板
8.3 作品28:做一块8个LED的定制盾板
8.3.1 元件
8.3.2 电路图
8.3.3 原型盾板的布局
8.3.4 设计
8.3.5 焊元件
8.3.6 修改定制盾板
8.4 用库扩展程序
8.5 microSD内存卡
8.6 作品29:向内存卡写数据
8.7 作品30:做一个温度记录仪
8.7.1 硬件
8.7.2 程序
8.8 用millis()和micros()做定时
8.9 作品31:做一个秒表
8.9.1 元件
8.9.2 电路图
8.9.3 程序
8.10 中断
8.10.1 中断模式
8.10.2 配置中断
8.10.3 启用或禁止中断
8.11 作品32:使用中断
8.12 展望
第9章 数字键盘
9.1 使用数字键盘
9.1.1 小键盘接线
9.1.2 给小键盘编程
9.1.3 测试程序
9.2 用switch-case做决策
9.3 作品33:做一个小键盘控制的锁
9.3.1 程序
9.3.2 工作原理
9.3.3 测试程序
9.4 展望
第10章 用触摸屏获得用户输入
10.1 触摸屏
10.2 作品34:触摸屏上的定位
10.2.1 硬件
10.2.2 程序
10.2.3 测试程序
10.2.4 触摸屏上的坐标
10.3 作品35:做一个两区域触摸开关
10.3.1 程序
10.3.2 工作原理
10.3.3 测试程序
10.4 作品36:做一个三区域触摸开关
10.4.1 触摸屏坐标系
10.4.2 程序
10.4.3 工作原理
10.5 展望
第11章 认识Arduino系列
11.1 作品37:在面包板上做自己的Arduino
11.1.1 元件
11.1.2 电路图
11.1.3 运行测试程序
11.2 众多的Arduino板
11.2.1 Arduino Uno
11.2.2 Freetronics Eleven
11.2.3 Freeduino
11.2.4 Boarduino
11.2.5 Arduino Nano
11.2.6 Arduino LilyPad
11.2.7 Arduino Mega 2560
11.2.8 Freetronics的EtherMega
11.2.9 Arduino Due
11.3 展望
第12章 电机和运动
12.1 用伺服电机做轻量动作
12.1.1 选择伺服电机
12.1.2 连接伺服电机
12.1.3 使伺服电机工作
12.2 作品38:做一个指针式的温度计
12.2.1 元件
12.2.2 电路图
12.2.3 程序
12.3 使用电动机
12.4 作品39:控制电机
12.4.1 元件
12.4.2 电路图
12.4.3 程序
12.5 作品40:搭建并控制一个坦克机器人
12.5.1 元件
12.5.2 电路图
12.5.3 程序
12.6 碰撞检测
12.7 作品41:用微动开关检测坦克底盘的碰撞
12.7.1 电路图
12.7.2 程序
12.8 红外距离传感器
12.8.1 连线
12.8.2 测试红外距离传感器
12.9 作品42:用红外距离传感器检测坦克底盘的碰撞
12.10 超声波距离传感器
12.10.1 连接超声波传感器
12.10.2 使用超声波传感器
12.10.3 测试超声波距离传感器
12.11 作品43:用超声波距离传感器检测坦克底盘的碰撞
12.12 展望
第13章 用Arduino接GPS
13.1 什么是GPS
13.2 测试GPS盾板
13.3 作品44:做一个简易GPS接收机
13.3.1 元件
13.3.2 程序
13.3.3 在LCD上显示位置
13.4 作品45:做一个精确的基于GPS的钟
13.4.1 元件
13.4.2 程序
13.5 作品46:随时间变化记录物体移动的位置
13.5.1 元件
13.5.2 程序
13.5.3 在地图上显示位置
13.6 展望
第14章 无线数据通信
14.1 使用低成本无线模块
14.2 作品47:做一个无线遥控器
14.2.1 发射机电路的元件
14.2.2 发射机电路图
14.2.3 接收机电路的元件
14.2.4 接收机的电路图
14.2.5 发射机程序
14.2.6 接收机程序
14.3 用XBee无线数据模块来实现更大的范围和更快的速度
14.4 作品48:用XBee发送数据
14.4.1 程序
14.4.2 设置计算机来接收数据
14.5 作品49:做一个遥测温度计
14.5.1 元件
14.5.2 布局
14.5.3 程序
14.5.4 运作
14.6 展望
第15章 红外遥控
15.1 什么是红外
15.2 准备红外器件
15.2.1 红外接收器
15.2.2 遥控器
15.2.3 测试程序
15.2.4 测量连接
15.3 作品50:做一个红外遥控的Arduino
15.3.1 元件
15.3.2 程序
15.3.3 扩展程序
15.4 作品51:做一辆红外遥控的坦克
15.4.1 元件
15.4.2 程序
15.5 展望
第16章 读RFID标签
16.1 在RFID卡内部
16.2 测试硬件
16.2.1 电路图
16.2.2 测试电路图
16.3 作品52:做一个简易RFID控制系统
16.3.1 程序
16.3.2 工作原理
16.4 在Arduino内置的EEPROM里保存数据
16.5 作品53:做一个能记住上次动作的RFID控制器
16.5.1 程序
16.5.2 工作原理
16.6 展望
第17章 数据总线
17.1 I2C总线
17.2 作品54:使用外部的EEPROM
17.2.1 元件
17.2.2 电路图
17.2.3 程序
17.2.4 结果
17.3 作品55:使用端口扩展集成电路
17.3.1 元件
17.3.2 电路图
17.3.3 程序
17.4 SPI总线
17.4.1 引脚连接
17.4.2 实现SPI
17.4.3 向SPI器件发送数据
17.5 作品56:使用数字变阻器
17.5.1 元件
17.5.2 电路图
17.5.3 程序
17.6 展望
第18章 真实时钟
18.1 连接RTC模块
18.2 作品57:用RTC来得到和显示时间
18.2.1 元件
18.2.2 程序
18.2.3 工作原理
18.3 作品58:做一个简易数字钟
18.3.1 元件
18.3.2 程序
18.3.3 工作原理和结果
18.4 作品59:做一个RFID打卡机
18.4.1 元件
18.4.2 程序
18.4.3 工作原理
18.5 展望
第19章 互联网
19.1 需要什么
19.2 作品60:做一个远程监控站
19.2.1 元件
19.2.2 程序
19.2.3 查找错误
19.2.4 工作原理
19.3 作品61:做一个Arduino推特机
19.3.1 元件
19.3.2 程序
19.4 从Web控制Arduino
19.5 作品62:建立对Arduino的遥控
19.5.1 元件
19.5.2 程序
19.5.3 远程控制你的Arduino
19.6 展望
第20章 手机通信
20.1 硬件
20.1.1 准备电源盾板
20.1.2 硬件配置和测试
20.1.3 改变工作频率
20.2 作品63:做一个Arduino拨号器
20.2.1 元件
20.2.2 电路图
20.2.3 程序
20.2.4 工作原理
20.3 作品64:做一个Arduino短信机
20.3.1 程序
20.3.2 工作原理
20.4 作品65:建立一个短信遥控装置
20.4.1 元件
20.4.2 电路图
20.4.3 程序
20.4.4 工作原理
20.5 展望
· · · · · · (收起)
读后感
用户评价
我个人认为这本书最独特的一点,在于它所营造出来的那种鼓励“折腾”和“失败中学习”的氛围。阅读过程中,我明显感觉到作者并不是在向我灌输一个“标准答案”,而是在邀请我一起探索可能性。在某些实验的收尾部分,作者会留下一些开放性的问题,比如“如果你想让这个系统增加一个语音提示功能,你会如何修改现有代码?”或者“尝试更换一个不同规格的电机,你会遇到哪些新的电源管理问题?”这种设置极大地激发了我的主动思考能力。它教会我,硬件编程的乐趣往往在于解决那些“意料之外”的问题,而不是机械地重复既有的步骤。这种引导式的学习方式,让我对未来的自我学习充满了信心,因为我知道,即便离开了这本书的指导,我已经掌握了面对新模块、新挑战时应该采取的分析和解决问题的通用方法论。这本书带给我的,不是一堆固定的知识点,而是一套可以迁移的、解决实际问题的思维框架。
这本书的内容深度和广度,给我的震撼是出乎意料的。我原以为它会停留在一些基础的LED闪烁和按键读取层面,毕竟市面上很多入门书籍都止步于此,显得有些“浅尝辄止”。然而,深入阅读后发现,作者对各个核心模块的讲解,都建立在一个非常扎实的基础理论之上,但又巧妙地避免了过度陷入晦涩的数学推导。它真正做到了“授人以渔”,例如在讲解模拟信号处理时,它没有直接抛出一个复杂的公式,而是通过一个生活化的例子——比如用光敏电阻测量环境光强度的变化——来阐述采样率和分辨率的概念。更重要的是,它引导我们思考“为什么”要这样做,而不是仅仅告诉你“怎么做”。我特别欣赏作者在讲解到特定库函数时,会同时展示其底层的逻辑,这使得我不仅学会了调用,更理解了调用的原理。对于一个渴望从“操作者”转变为“设计者”的读者来说,这种深层次的讲解是极其宝贵的,它为我后续进行更复杂的项目迭代打下了坚实的知识地基。
在实战项目的选择和设计上,这本书展现出了一种非常贴近现代生活和未来趋势的眼光。它没有沉溺于那些陈旧的、早已被淘汰的项目案例中,而是紧密结合了物联网(IoT)和智能家居的概念。我记得其中有一个项目是制作一个基于网络的温湿度监控系统,这个项目不仅包含了基础的硬件控制,还涉及到了如何与云端服务器进行数据交互。对于我这样一个主要在本地环境学习的读者来说,这无疑是一次视野的拓展。作者在讲解网络通信部分时,步骤分解得非常清晰,从Socket编程的基础概念到具体的数据包封装与解包,每一个环节都给予了足够的篇幅。我最满意的是,即便是涉及到网络部分这种相对“高级”的知识点,它依然保持了极高的可操作性,让我这个非计算机专业背景的人也能顺利地跑通整个流程。这让我在完成项目后,不仅仅是获得了一个“会动的玩具”,而是真正有了一项可以展示和实际应用的成果。
与其他技术书籍相比,这本书在代码组织和规范性上,体现出了极高的专业素养,这点对于养成良好的编程习惯至关重要。我经常发现很多教程给出的代码片段混乱无序,注释缺失或者命名随意,让人在复制粘贴后根本无从下手进行修改和调试。而这本书里的所有示例代码,都仿佛是经过了严格的代码审查一般。变量命名清晰易懂,函数被合理地模块化,并且几乎每一段关键逻辑都有详尽的行内注释。即便是对于初学者来说,也能很快理解“这段代码的目的是什么,它是如何实现的”。更贴心的是,书中还专门辟出了一章来讨论“如何调试你的Arduino程序”,里面详细列举了串口监视器的妙用,以及如何利用`Serial.print()`进行分段排查错误。这种对“工程实践”层面的重视,让这本书的价值远远超出了单纯的“教程”范畴,更像是一本系统性的“工程师入门手册”。
这本书的排版真是让人眼前一亮,它不是那种传统的技术书籍常见的枯燥乏味的设计。封面色彩的搭配和内页的字体选择都透露着一种活力和亲和力,这对于一个初次接触硬件编程的“小白”来说,简直是福音。我记得我以前尝试看一些电子制作的书,光是看着那些密密麻麻的原理图和代码块,头皮就开始发麻。但这本书不一样,它采用了大量的图文并茂的方式来解释复杂的概念。比如,当它介绍到如何连接一个传感器时,不仅仅有文字描述,旁边会配上清晰的实物接线图,甚至连引脚的颜色和方向都标注得一清二楚。这种细致入微的呈现方式,极大地降低了我的畏难情绪。我感觉自己就像是跟着一位经验丰富的老师傅在身边手把手教学,每一步操作都有明确的视觉引导。特别是对于那些需要动手实践的章节,作者似乎完全站在读者的角度考虑,预判了我们在操作中可能遇到的所有困惑点,并在关键节点加入了“小贴士”或“常见错误排查”的部分。这种注重用户体验的设计理念,让整个学习过程充满了探索的乐趣,而不是单纯的知识灌输。
书里有大量 arduino 应用作品,更想看介绍 arduino 工作原理的书
我的第一本arduino,刚刚看完第一遍,只是了解了一下代码的原理,所有的实验第二次阅读的时候再开始做。内容紧凑,涉及的arduino应用的方方面面,从简单的点亮led,到复杂点儿的与计算机网络的交互,都列举了实际的代码和相关的电路图,适合有编程基础的同学来看。总之一句话,仔细看目录,你就知道到底值不值得购买了。(Ps:有点儿不适合天朝的国情,推特功能与手机的交互就不能实现了,悲剧啊)
基于市场现有的Arduino板子,延伸扩展在面包板上,来实现预定的功能.11章分输,之前介绍浅显易入门。
书里有大量 arduino 应用作品,更想看介绍 arduino 工作原理的书
Teleduino!!! || Arduino Workshop: a hands-on introduction with 65 projects