首页>参考读物>电子电工>电子工程

Arduino高级开发权威指南(原书第2版)
作者 : (美)Steven F. Barrett 著
译者 : 潘鑫磊 译
出版日期 : 2014-03-06
ISBN : 978-7-111-45246-1
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 278
开本 : 16
原书名 : Arduino Microcontroller Processing for Everyone
原出版社: Morgan & Claypool Publishers, Inc.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书内容整体分为两个部分。第一个部分讲解如何使用Arduino进行编程,并进一步开发嵌入式系统;第二部分则分别深入浅出讲解了Arduino控制器的串口通信,ADC,中断,定时等概念,便于读者深入理解Arduino的体系结构。

图书特色

迈向Arduino专业级开发阶段必读的一本书。
采用Arduino开发者中最新、最流行的Arduino UNO R3平台。
首本介绍基于Arduino进行复杂嵌入式系统建模与设计的书籍。

Arduino Microcontroller
Processing for Everyone! Second Edition
Arduino高级开发权威指南
(原书第2版)
[美] Steven F. Barrett 著 潘鑫磊 译

本书基于一个非常有趣的自动迷宫导航机器人制作项目,由浅入深地向读者介绍Arduino UNO R3开发平台以及ATmega328微控制器的底层知识。本书也涉及嵌入式系统开发的基础知识,包含帮助读者理解知识点的大量应用实例,是Arduino入门级用户进阶必不可少的一本参考书。

作者简介
Steven F. Barrett 博士分别于1979年在内布拉斯加州立大学(奥马哈)获得电机工程学士学位,1986年在爱达荷大学(莫斯科)获得电机工程硕士学位,1993年在得克萨斯州立大学奥斯汀分校获得博士学位。他是IEEE高级会员,研究方向涉及数字与模拟图像处理、计算机辅助激光手术和嵌入式控制系统。他是怀俄明州和科罗拉多州注册认证的专业工程师。他与Daniel Pack博士著有6本关于嵌入式微控制器和嵌入式系统方面的教材。他分别于2004年因为在教育方面的杰出成就而获得卡内基基金会授予的“怀俄明州年度最佳教授”,2008年获得NSPE(美国国家专业工程师学会)授予的专业工程师高等教育奖和高等教育优秀奖。

前:
Arduino为没有专业背景的读者学习单片机开发提供了一条新路径。读者在简单学习使用Arduino库函数的基础上,快速上手,培养学习兴趣,然后再上升到专业级开发。对于电子和计算机专业的学生,尤其是低年级的学生,在大学第一年就为他们建立软硬件相结合的系统开发理念对后期学习专业的嵌入式系统开发会大有帮助。本书可以帮助Arduino入门级爱好者在掌握Arduino开发的基础上迈向更专业的嵌入式系统开发。

潘鑫磊 资深创客,现供职于DFROBOT。他是国内最早一批Arduino爱好者,在嵌入式系统和硬件开发方面拥有非常丰富的经验。他开发的项目涉及Arduino硬件模块、互动控制产品、机器人等。

图书前言

本书将向大家介绍Arduino微控制器与Arduino的概念。由Massimo Banzi、David Cuartielles、Tom。Igoe、Gianluca Martino以及David Mellis等人组成的具有远见卓识的Arduino团队于2005年掀起了一场微控制器领域的革命,带来了开源硬件的概念。该团队以开放基于单片机硬件设计平台的所有设计细节的方式鼓励大家分享创新与创意。这种方式已经在软件开发环境中流行多年。
  本书适合从事不同行业的读者以及爱好者阅读。首先,延续Arduino的概念,本书适合那些在项目中需要一定硬件处理能力但却没有较深电子类专业背景的艺术从业人员,如设计系学生、艺术家以及摄影师等。其次,也适合为学校做研发或者做展览项目的初级、中高等院校学生。第三类主要人群就是针对那些在高级设计项目中需要控制单元,但却往往没有上过电气或者计算机工程课程,因而并没有基于微控制器应用背景的工程类学生。最后,这本书也为实践型科学家以及工程师提供了Atmel公司AVR系列微控制器的高阶内容。第2版已经根据最新的Arduino UNO R3处理器进行了更新,修改了一些新版Arduino开发环境的内容并添加了多个案例。
本书主要内容
  为了满足这样一个广泛的读者群体,我们把这本书分为几个部分来满足不同读者的需求。第1章和第2章专门针对微控制器的入门级用户。第1章简单介绍Arduino的概念、Arduino UNO R3控制板,以及使用Atmel公司ATmega328控制器的UNO R3控制板的主要功能特性。第2章则为新手提供了编程简介,包括介绍Arduino的开发环境以及如何烧写程序。它也为熟练的开发工程师提供了一个精炼的回顾。
  第3章主要介绍嵌入式系统的设计过程。让你能以系统考量和循序渐进的方式轻松应对设计复杂系统的问题。
  第4~7章具体介绍了ATmega328微控制器的工程资料以及端口技术。这几章专门针对工程类专业学生以及实践型工程师。但即便是初学者,你也能通过较易理解的内容以及大量的样例有所斩获。
  第8章展示了富含不同技术水平的一系列应用样例。
致谢
  很多人参与了本书的创作。我要感谢来自Arduino设计团队中的Massimo Banzi,他为写作本书提供了大量技术支持以及鼓励。感谢Morgan & Claypool出版社的Joel Claypool多年来对我和Daniel Pack大量写作项目的支持。同时为我们提供了使用部分在本书中包含的Atmel公司AVR系列微控制器的背景资料的公布权限。我还想感谢位于美国科罗拉多州博尔德的SparkFun Electronics公司、Atmel公司,以及位于加利福尼亚州帕洛阿尔托的ImageCraft为我们在本书中提供的图片和数据资料。
  我想将这本书献给我的挚友及写作伙伴Dr. Daniel Pack,他曾因卓越的无人飞行器研发当选“sit this one out”。他大部分的作品来源于之前在Morgan&Claypool出版社的项目。在2000年的时候,Daniel建议我们一起写一本关于微控制器的书。我一直都想这么做,但是顾忌于很多其他人有类似的打算,所以迟迟没有提笔。在Daniel的鼓励下,我们共同合作创作了第一本书(之后又合作了6本)。我的挚友Daniel是一位好父亲也是个孝顺的儿子,同时他也是个好丈夫,一位具有极高的职业素养的杰出工程师。我将此书献给我的这位好朋友。我想我们将会有更多的合作。
  最后更感谢陪伴我多年的妻子Cindy。

Steve Barrett
怀俄明州拉勒米市
2012年4月

上架指导

计算机\嵌入式编程

封底文字

本书是Arduino开源硬件资深专家数年一线工作经验结晶。本书深入浅出地介绍了Arduino微控制器与Arduino的概念。本书适合那些在项目中需要一定硬件处理能力但却没有较深电子类专业背景的艺术从业人员,如设计系学生、艺术家以及摄影师等等。其次也适合为学校做研发或者做展览项目的初级、中高等院校学生。第三类主要人群就是针对那些在高级设计项目中需要控制单元,但却往往没有上过电气或者计算机工程课程,因而并没有基于微控制器应用背景的工程类学生。最后,这本书也为实践型科学家以及工程师提供了Atmel公司AVR系列微控制器的高阶内容。
本书主要内容:
·第1章和第2章简要介绍了Arduino的概念、Arduino UNO R3控制板,以及使用Atmel公司ATmega328控制器的UNO R3控制板的主要功能特性,同时为新手提供了编程简介,包括介绍Arduino的开发环境以及如何烧写程序。
·第3章主要介绍嵌入式系统的设计过程。让你能以系统考量并循序渐进的方式轻松应对设计复杂系统的问题。
·第4~7章具体介绍了ATmega328微控制器的工程资料以及端口技术,涉及串行数据通信子系统、模数转换器、中断子系统、定时器子系统。
·第8章展示了一系列应用样例,例如,自动风扇制冷系统、艺术灯光系统、飞行模拟器操控面板、潜水机器人、气象站等。

作者简介

(美)Steven F. Barrett 著:暂无简介

译者简介

潘鑫磊 译:暂无简介

图书目录

前言
第1章 入门  1
1.1 概述  1
1.2 入门  1
1.3 Arduino UNO R3  3
1.4 案例:自主迷宫导航机器人  5
1.4.1 结构图  6
1.4.2 UML活动图  7
1.4.3 Arduino UNO R3系统  7
1.5 Arduino开源原理图  7
1.6 其他基于Arduino的硬件平台  9
1.7 扩展Arduino平台的硬件功能特性  9
1.8 Arduino软件  10
1.9 Arduino UNO R3/ATmega328芯片硬件功能  10
1.9.1 内存单元  12
1.9.2 端口系统  12
1.9.3 内部系统  13
1.10 应用:Arduino设备套件  16
1.11 小结  17
1.12 参考文献  17
1.13 本章习题  17
第2章 编程  18
2.1 概述  18
2.2 编程大图  18
2.3 解析程序  20
2.3.1 注释  21
2.3.2 包含文件  21
2.3.3 函数  22
2.3.4 程序常量  24
2.3.5 中断处理器定义  24
2.3.6 变量  24
2.3.7 主程序  25
2.4 基本的编程概念  25
2.4.1 运算符  25
2.4.2 编程结构  29
2.4.3 决策处理  30
2.5 Arduino开发环境  32
2.5.1 背景  33
2.5.2 Arduino开发环境简介  33
2.5.3 速写本概念  34
2.5.4 Arduino软件、库以及Arduino语言参考资料  34
2.6 应用1:机器人红外距离传感器  36
2.7 应用2:艺术照明系统  39
2.8 小结  39
2.9 参考文献  40
2.10 本章习题  40
第3章 嵌入式系统设计  41
3.1 什么是嵌入式系统  41
3.2 嵌入式系统设计流程  42
3.2.1 项目说明  42
3.2.2 背景研究  42
3.2.3 前期设计  43
3.2.4 设计  43
3.2.5 实现原型  45
3.2.6 初步测试  45
3.2.7 完整并准确的文档记录  46
3.3 案例:Blinky 602A自主迷宫导航机器人系统设计  46
3.4 应用:Blinky 602A机器人的控制算法  51
3.5 小结  57
3.6 参考文献  58
3.7 本章习题  58
第4章 串行数据通信子系统  59
4.1 概述  59
4.2 串行通信  59
4.3 串行通信术语  60
4.4 串行USART  62
4.5 串行系统运行以及使用Arduino开发环境功能编程  65
4.6 串行系统运行以及在C开发环境中的编程  68
4.7 SPI在Arduino开发环境中编程  71
4.8 SPI在C开发环境中编程  72
4.9 两线串行接口——TWI  73
4.10 应用1:SD/MMC卡模块通过USART扩展  73
4.11 应用2:通过ISP对ArduinoUNO R3控制板的ATmega328芯片编程  76
4.12 小结  78
4.13 参考文献  78
4.14 本章习题  78
第5章 模数转换器  79
5.1 概述  79
5.2 采样、量化和编码  80
5.3 模数转换过程  83
5.3.1 换能器接口设计电路  83
5.3.2 运算放大器  85
5.4 模数转换技术  88
5.5 Atmel公司的ATmega328芯片ADC系统  89
5.5.1 框架图  89
5.5.2 寄存器  90
5.6 使用Arduino开发环境为模数转换功能编程  92
5.7 使用C开发环境为模数转换功能编程  92
5.8 实例:ADC雨量计指示灯  93
5.8.1 ADC雨量计指示灯(使用Arduino开发环境)  94
5.8.2 ADC雨量计指示灯(使用C开发环境)  97
5.8.3 ADC雨量计指示灯(基于Arduino开发环境的C编程混合优化)  102
5.9 一位模数转换(阈值检测器)  103
5.10 数模转换器(DAC)  105
5.10.1 数模转换器(使用Arduino开发环境)  106
5.10.2 数模转换器(外接转换器)  106
5.11 应用:艺术作品照明系统——优化  107
5.12 小结  109
5.13 参考文献  110
5.14 本章习题  111
第6章 中断子系统  112
6.1 概述  112
6.2 ATmega328中断系统  113
6.3 中断编程  113
6.4 基于C语言及Arduino开发环境的中断编程  114
6.4.1 外部中断编程  114
6.4.2 内部中断编程  117
6.5 前台处理和后台处理  121
6.6 中断例程  121
6.6.1 C语言中的实时时钟  121
6.6.2 Arduino开发环境中的实时时钟  123
6.6.3 用C语言中断驱动的USART  125
6.7 小结  134
6.8 参考文献  134
6.9 本章习题  134
第7章 定时器子系统  136
7.1 概述  136
7.2 有关定时器的术语  136
7.2.1 频率  137
7.2.2 周期  137
7.2.3 占空比  137
7.3 定时器系统概述  138
7.4 应用  139
7.4.1 输入捕捉——测量外部定时事件  140
7.4.2 计数事件  140
7.4.3 输出比较——对外部设备接口产生定时信号  141
7.4.4 工业实施案例研究(PWM)  141
7.5 Atmel公司的ATmega328控制器上的定时器系统概述  142
7.6 Timer 0系统  143
7.6.1 运行模式  144
7.6.2 Timer 0寄存器  146
7.7 Timer 1  148
7.7.1 Timer 1寄存器  149
7.8 Timer 2  151
7.9 利用Arduino开发环境中内置的时钟功能在Arduino UNO R3控制板上编程  154
7.10 用C语言编写定时器系统  154
7.10.1 C语言中的精确延时  154
7.10.2 C语言中的PWM  156
7.10.3 在C语言中输入捕获模式  157
7.11 基于C语言的伺服电机控制的PWM系统  158
7.12 小结  162
7.13 参考文献  162
7.14 本章习题  163
第8章 Atmel AVR系列微控制器运行参数和接口  164
8.1 概述  164
8.2 运行参数  165
8.3 电池供电  167
8.3.1 嵌入式系统电压和电流消耗规格  167
8.3.2 电池特性  167
8.4 输入设备  168
8.4.1 开关  168
8.4.2 开关接口电路中的上拉电阻  169
8.4.3 开关去抖动  169
8.4.4 键盘  170
8.4.5 传感器  174
8.4.6 LM34温度传感器案例  176
8.5 输出设备  176
8.5.1 发光二极管  176
8.5.2 七段码LED显示  176
8.5.3 代码样例  178
8.5.4 三态LED指示灯  179
8.5.5 点阵屏  180
8.5.6 使用C编程液晶字符显示屏(LCD)  182
8.5.7 使用Arduino开发环境编程液晶字符显示屏(LCD)  188
8.5.8 大功率直流设备  189
8.6 直流电磁阀控制  189
8.7 直流电机速度和方向控制  190
8.7.1 直流电机运行参数  191
8.7.2 H桥方向控制  191
8.7.3 伺服电机接口  192
8.7.4 步进电机控制  192
8.7.5 交流设备  198
8.8 驱动其他设备  199
8.8.1 报警器、蜂鸣器  199
8.8.2 振动电机  199
8.9 扩展实例1:自动风扇制冷系统  200
8.10 扩展实例2:艺术灯光系统  207
8.11 扩展实例3:飞行模拟器操控面板  211
8.12 扩展实例4:潜水机器人  231
8.12.1 需求  233
8.12.2 结构图  233
8.12.3 电路图  234
8.12.4 UML活动图  234
8.12.5 微控制器程序  235
8.12.6 项目衍生  237
8.13 扩展实例5:气象站  237
8.13.1 需求  237
8.13.2 结构图  238
8.13.3 电路图  238
8.13.4 UML活动图  240
8.13.5 微控制器程序  241
8.14 小结  248
8.15 参考文献  248
8.16 本章习题  249
附录A ATmega328寄存器
设置  252
附录B ATmega328头文件  256

教学资源推荐
作者: (美)Albert Malvino David J. Bates 著
作者: [美]纽伯尔德·理查德(Newbold Richard) 著
作者: 周元钧 编著
参考读物推荐
作者: [美]兰迪·班克罗夫特(Randy Bancroft) 著
作者: 刘歧,赵文杰 编著 武爱敏 审校
作者: (美)Michael Parker Suhel Dhanani 著
作者: 周庆国 郑灵翔 康筱彬 刘同山 编著