新書推薦:
《
千万别喝南瓜汤(遵守规则绘本)
》
售價:HK$
44.7
《
大模型启示录
》
售價:HK$
112.0
《
东法西渐:19世纪前西方对中国法的记述与评价
》
售價:HK$
201.6
《
养育男孩:官方升级版
》
售價:HK$
50.4
《
小原流花道技法教程
》
售價:HK$
109.8
《
少女映像室 唯美人像摄影从入门到实战
》
售價:HK$
110.9
《
詹姆斯·伍德系列:不负责任的自我:论笑与小说(“美国图书评论奖”入围作品 当代重要文学批评家詹姆斯·伍德对“文学中的笑与喜剧”的精湛研究)
》
售價:HK$
87.4
《
武当内家散手
》
售價:HK$
50.4
編輯推薦:
(1)教你动手制作机器人!
(2)全面深入理解Arduino工作原理,灵活进行Arduino开发
(3)依循设计原则,按需设计使用Arduino软硬件
內容簡介:
《Arduino技术内幕》摒弃了大量基础知识,全面深入揭秘Arduino的内部工作原理。其中,它通过“LED闪灯”、“LED照明”、“数字钟”等示例作品由浅入深、由易而难介绍Arduino开发,并最后以一个“自动机器人”示例总结全书,不仅介绍了可用的软硬件及软硬件间的协作,阐述了软硬件的选取与设计,而且分析了项目管理包括文档化、团队工作与协作开发以及如何选择许可方式方面的内容。另外,读者还可从《Arduino技术内幕》了解设计原则与优秀的编程技巧、编程风格,学会动手设计实现优秀的Arduino作品。《Arduino技术内幕》适合所有Arduino用户学习参考。
關於作者:
Dale Wheat DPRG(Dallas Personal Robotics
Group,世界上最早的个人机器人俱乐部)两届主席,专门研究电子学和嵌入式系统并传授电子学、单片机和焊接技术方面的知识,多次在技术类杂志和业余爱好者喜闻乐见的杂志(包括Circuit
Cellar、MAKE和Elektor)上发表文章。另外,他还在个人网站dalewheat.com上销售自己设计和DIY的电子元件。全职写作之前,他曾作为计算机程序员和系统分析师为IBM、MCI和GTE(已并入Verizon)等公司提供咨询服务。另外,他还著有Building
Your Own Electronics Lab: A Guide to Setting Up Your Own Gadget
Workshop一书。
目錄 :
第1章 硬件
1.1 什么是Arduino
1.2 Arduino Uno
1.2.1 处理器
1.2.2 串口
1.2.3 电源
1.2.4 扩展插座
1.2.5 盾板
1.3 Arduino Mega 2560
1.4 之前的硬件
1.4.1 Arduino Serial
1.4.2 Arduino USB
1.4.3 Arduino Extreme
1.4.4 Arduino Nuova Generazione新一代
1.4.5 Arduino Diecimila
1.4.6 Arduino Duemilanove
1.4.7 Arduino Mega
1.5 谁在做Arduino
1.5.1 正式许可的产品
1.5.2 其他人
1.6 自己做Arduino
1.6.1 Arduino印刷电路板
1.6.2 面包板Arduino
1.7 小结
第2章 软件
2.1 主机和目标机
2.2 一步步来
2.2.1 第一步:写代码
2.2.2 第二步:编译代码
2.2.3 第三步:给芯片编程
2.2.4 第四步:测试和调试
2.2.5 第五步:重复
2.3 半自动化
2.4 更进一步
2.5 小结
第3章 Atmel AVR
3.1 起源
3.2 AVR芯片家族
3.3 若有疑问:芯片器件手册
3.4 芯片封装
3.4.1 双列直插DIP
3.4.2 表面安装器件SMD
3.4.3 多出来的引脚
3.5 管脚定义
3.6 AVR内核
3.6.1 时钟源
3.6.2 地址空间
3.6.3 指令集
3.7 片内外围设备
3.7.1 通用输入输出IO
3.7.2 外部中断
3.7.3 定时器计数器
3.7.4 USART
3.7.5 两线串行接口TWI,即I2C
3.7.6 模拟输入
3.8 小结
第4章 支持硬件
4.1 电路图
4.1.1 元件类型
4.1.2 元件编号
4.1.3 元件值
4.1.4 元件值误差
4.1.5 元件的其他参数
4.1.6 连接
4.2 给电路板供电
4.2.1 柱式电源插座
4.2.2 输入电源调节
4.2.3 稳压器
4.2.4 电源电路的演变
4.3 串口
4.4 处理器
4.4.1 功耗
4.4.2 IO驱动能力
4.4.3 -RESET信号
4.4.4 时间基准
4.4.5 去耦电容
4.4.6 闪灯
4.5 扩展空间
4.6 结构外形
4.7 通用串行总线USB:信号加电源
4.8 小结
第5章 Arduino软件
5.1 开源软件
5.2 多平台支持
5.3 Arduino的传承与发展
5.4 软件安装
5.5 实践
5.6 用户界面
5.6.1 File文件菜单
5.6.2 Edit编辑菜单和Edit关联菜单
5.6.3 Sketch程序菜单
5.6.4 Tools工具菜单
5.6.5 Help帮助菜单
5.7 小结
第6章 优化
6.1 可行性
6.2 压缩闪灯程序
6.2.1 闪烁是如何实现的
6.2.2 衡量节省空间的优化措施
6.2.3 代码分析
6.2.4 没有pinMode的生活
6.2.5 缩写和简语
6.2.6 二进制写法
6.2.7 深入分析
6.2.8 轻松翻转
6.2.9 进一步精简
6.2.10 更有效地“浪费时间”
6.2.11 更低级别的代码
6.3 用简单的串口通信来节省空间
6.3.1 “Hello, world!”做了什么
6.3.2 写配置寄存器
6.3.3 发送数据
6.3.4 一串字符
6.3.5 输出数字
6.4 节省SRAM
6.4.1 测量要用的SRAM
6.4.2 最小裸机
6.4.3 内存分区
6.4.4 变量的位置
6.4.5 使用恰当的数据类型
6.4.6 再探字符串
6.5 低功耗,还是高速度?
6.6 电子测量
6.6.1 用Arduino做测试仪器
6.6.2 尽可能快
6.6.3 让它慢下来
6.6.4 进一步降低功耗
6.7 小结
第7章 硬件加软件
7.1 可用的外围设备
7.1.1 串口
7.1.2 通用数字输入输出
7.1.3 定时器和计数器
7.1.4 脉宽调制PWM输出
7.1.5 模拟输入
7.1.6 外部中断
7.1.7 中断手册
7.2 小结
第8章 示例作品
8.1 不只是闪烁的LED:从简单开始
8.1.1 足够慢
8.1.2 基本完成优化的六通道调光器
8.1.3 变暗了
8.2 闪烁LED的其他用处
8.2.1 红外遥控
8.2.2 TV-B-Gone
8.3 许多闪烁的LED
8.3.1 一个直接驱动的例子
8.3.2 用LED驱动器直接驱动
8.3.3 多路复用技术
8.4 数字钟
8.4.1 精度
8.4.2 用户界面
8.4.3 其他功能
8.5 小结
第9章 项目管理
9.1 文档
9.1.1 源代码注释
9.1.2 空格
9.1.3 按你的意思编程,按你的代码解释
9.1.4 自动文档编制
9.1.5 写给你的“读者”看
9.1.6 硬件文档
9.1.7 再进一步
9.2 团队工作和协同开发
9.2.1 博客
9.2.2 论坛
9.2.3 维基
9.2.4 修订控制系统
9.2.5 关于修订版号和版本号的说明
9.2.6 放作品的网站
9.3 选择许可方式
9.3.1 专利和商标
9.3.2 版权
9.3.3 开源
9.3.4 公共域
9.4 小结
第10章 硬件设计
10.1 了解硬件
10.1.1 必须要有的东西
10.1.2 想要有的东西
10.2 红外接近传感器
10.2.1 一个简易原型
10.2.2 一些简单的改进
10.2.3 印制电路板
10.2.4 PCB布局技术
10.2.5 第一次尝试
10.2.6 更小的版本
10.2.7 连接
10.3 自己定制的Arduino
10.3.1 兼容现有Arduino和盾板
10.3.2 电源的可能选择
10.3.3 处理器选择
10.3.4 还有什么?
10.4 设计用的软件
10.4.1 CadSoft EAGLE
10.4.2 EAGLE 贴士
10.5 小结
第11章 软件设计
11.1 Arduino高级话题
11.1.1 写Arduino库
11.1.2 备选内核
11.2 不用Arduino
11.2.1 再探Bare Metal
11.2.2 其他开发环境
11.3 小结
第12章 组网
12.1 点对点组网
12.1.1 通过串口交谈
12.1.2 Arduino间的对话
12.2 MIDI:乐器数字接口
12.3 互联网
12.4 小结
第13章 更多示例作品
13.1 一个自动机器人
13.2 电源
13.3 动作控制
13.4 传感器
13.4.1 光敏传感器
13.4.2 接触传感器
13.4.3 非接触传感器
13.4.4 声音传感器
13.4.5 指示器、控制器和其他形式的通信
13.5 控制系统
13.5.1 开环系统
13.5.2 闭环系统
13.6 示例机器人作品
13.6.1 一个练习机器人
13.6.2 下一个机器人
13.6.3 你的终极机器人
13.7 小结
內容試閱 :
让我们来彻底了解Arduino吧。Arduino看上去就是一个简单的机器,其实不然。为了让它易学易用,很多人付出了艰巨的努力。然而,人们在好心好意地简化Arduino操作的同时,却会将它一些内在的潜能掩盖起来。事实上,在它简单的外表下,还有很多很多可以挖掘的东西。
确实如此。
这正是一本关于Arduino工作原理的书。Arduino有效地体现了一些经过多年演化的设计理念,假使你深入理解了其所涉及的复杂技术,就可以改动或重新编排Arduino的“内部元素”以满足自己特定的设计需求。
目标读者
本书适合各个层次的Arduino用户阅读参考,无论跃跃欲试的新手,还是经验丰富的专家都能从中获益。也许你已经知道Arduino是什么,明白它能做什么,也许你已经有了一块Arduino电路板,或者能从某处弄一块来试试。对于阅读本书来说,你无需有这些基础,只要你对Arduino和它内部秘密有浓厚的兴趣就足够了。
Arduino的入门介绍已经随处可见了,本书就不在那些非常基础的事情上过多着墨了。本书深入探讨了很多内容,因此也希望能伴你在深入研究Arduino的路上走得更远。我可不想让你一学会如何让LED闪烁就再也用不上这本书了。
关于本书
本书不打算正儿八经地教你学基础电子学,不过,假如你求知若渴又聪颖好学,也许可以从本书的示例作品和练习中获得大量有用的电子学基础知识。我们认真准备了这些示例,并进行了严格的技术审校,确保它们都体现了正确的设计原则。
本书也不是程序设计的入门书。读者应该会用编辑器编辑源代码,并按照简单的指示完成指定的操作。当然,天性好奇的你会从书中那些力求清晰的代码中不知不觉学到编程技巧和风格。
我们知道,任何一个章节都没办法事无巨细地彻底说清楚某个问题,所以我们既给出了实用的信息,也列出了参考文献,供你查找详细资料。Arduino和其他任何复杂的系统一样,是不断发展着的。正如赫拉克利特在2500多年前说过的,“人不能两次踏进同一条河流”,因为河水一直在流动。这话在当年是正确的,现在依然正确无误,尤其对于正在快速演变的Arduino来说更是如此。因此,罗列过多细节并不合适。
注意,本书绝不是没有头绪地胡乱堆叠技术资料。Arduino光鲜闪亮的外表下面,层层叠叠隐藏着对复杂设计难题的复杂解决方案。本书的根本目的,就是以富有意义、易于理解的顺序一层层拨开这些迷雾。
最后,本书也并非只是随意选择一些毫无关联的Arduino项目。书中的项目和练习都是围绕说明和强调那些重要的设计理念精心编写的,而且由易而难,逐步深化,帮助你尽情探索Arduino及各种可能性。
本书内容
现在来简单看一下本书的内容,看看我们究竟能深入探索到什么程度。我们在各种技术资料中做了充分的权衡取舍,以使每一章都能独立成篇。
按照本书的章节顺序阅读当然好,不过按照兴趣跳跃阅读也没问题。书中的内容还是很丰富的,各章基本上遵循由一般到具体的原则编排,要是跳来跳去发现一下子读不明白了,可以往前翻几章,确保获得足够的基础知识后再继续往后阅读。
第1章 硬件
看看有哪些Arduino模型,大致了解它们的内部工作原理。
第2章 软件
Arduino开发的每一个层次上都会用到各种软件,本章全面概览一下这些软件。
第3章 Atmel AVR
Arduino的“大脑”也大有名堂。了解它能做什么、不能做什么,是一个项目成功的
关键。
第4章 支持硬件
电路板上其他元件也起着重要的作用,了解它们能做什么、不能做什么,有助于做出更好的作品。
第5章 Arduino软件
利用Arduino提供的自由软件可以方便快捷地开始工作。它看上去很简单,但其实不然。
第6章 优化
简单写就的代码总是可以做很多优化。本章将告诉你如何做优化,以及如何用精确的测量技术来验证优化。
第7章 硬件和软件的结合
硬件和软件的协作,尤其是充分协作时,可以实现惊艳的结果。仔细研究AVR片上的外围设备,可以用较少的代码实现更多的功能。通过例子,本章详细解释了通用IO端口、USART(串口)、计数器、定时器、PWM输出和模拟输入,还介绍了如何使用中断来实现硬件软件之间的有效协作。
第8章 示例作品
LED闪烁?真的?本章先展示如何通过权限控制LED闪烁,然后做一个更复杂的作品:数字钟。
第9章 项目管理
处理一些开发过程中的事情,比如文档、协作和许可等。
第10章 硬件设计
非常全面地介绍了设计Arduino兼容或部分兼容的硬件所需的各种知识,包括电源供应、处理器选择和shield接口设计,也介绍了一些硬件设计自动化工具。
第11章 软件设计
不光使用代码草图,还要根据具体情况决定如何设计和使用软件。本章讨论了另外一些开发环境、库的开发和文档,以及PC端的应用程序。基于本章的知识,你甚至可以开发自己的软件工具。
第12章 组网
理论上,对Arduino进行组网非常简单,就好像只需要决定和谁连接、连上了要传输什么内容就可以了。不过,实际上没有这么简单。本章介绍如何利用Arduino内置的通信能力实现与各种设备的通信。当然,加上一些专门的硬件可以扩展网络的通信能力,甚至加上一些不太贵的硬件就有可能做出一个简单的Web服务器。
第13章 其他示例
由一系列独立项目有机组合做一个小型自动机器人的例子。需要用到本章之前所有的知识才能完成这个大作品。
小结
本书致力于探索和描述Arduino体系结构的内部工作机制,为Arduino用户提供参考。掌握这些知识有助于更快更好地开发Arduino作品。本书也希望能点燃读者对嵌入式系统设计的兴趣,激发读者今后开发出更好的作品。
祝大家好运,学习开心!