内容特色:
Arduino编程涵盖了学习Arduino所需的各方面知识。更关键的是,Arduino编程解析了Arduino的编程语言,以及在根据设计需要添加程序库之后我们可以获得哪些额外的功能。同时贯穿整Arduino编程的大量实例对电子电路方面的知识也进行了讲解。
阅读Arduino编程,Arduino可以变成你的“画布”,而你所编写的程序可以成就你的数字杰作。Arduino编程非常适合创客,帮助他们创造出令人惊讶的应用程序,让日常任务智能化。并且Arduino编程也同样适用于对Arduino编程感兴趣的开发者。
阅读Arduino编程你将学到:
通过以太网、Wi-Fi、USB、Firmata的多种通信方式。
如何查找、导入和更新用户库,并学会创建自己的库。
探究专门为外设创建的特定设备库的用法。
掌握使用Arduino Due、Esplora、Yun和Robot板。
如何播放音频,控制LED、键盘、鼠标,以及实现更多功能的好方法。
适读人群:创客、对Arduino感兴趣的软硬件工程师,以及青少年和电子爱好者
编辑推荐:
快速精通Arduino编程的实战指南,深入透彻讲解Arduino的编程语言,快速掌握编程技能与作品实践操作。
原Arduino中国董事总经理陈愈容、创客布道师程晨、知名创客教师吴俊杰联合推荐。
丛书解读:
“创客+”丛书希望成为创客的“水果书”,水果美味又富有营养,缤纷的色彩又能激发无限创意。丛书通过甄选全球更好的作品与作译者,提供好玩又有趣的创客知识,激发大小创客们更多创造的灵感,玩出乐趣,创出梦想。
Arduino为我们开辟了一个新世界。无论是业余爱好者还是专业人员都能够利用Arduino系统创造出一些精彩复杂的设备来帮助他们完成一个个引人入胜的小玩意。按下按钮点亮一盏灯。这样的简单设备可以驱动3D打印。你可以把Arduino应用于很多设备中。
要开启这一切。Arduino需要使用一款编程软件来进行设计以帮助你完成程序。它们在与外界通信时会注意项目本身的逻辑性。为了提供更多的帮助。Arduino自带程序库。可以根据需求安装软件。也根据应用程序以及硬件需要添加程序。Arduino编程用实例对每个程序进行了详解。
Arduino编程介绍了Arduino的编程环境。你可能会用到的软件程序。以及在遇到各种不同的Arduino开发板时应该选用哪种程序库。Arduino可以变成你的“画布”。而你所编写的程序可以成就你的数字杰作。
关于Arduino编程以及相关技术的概述
Arduino编程涵盖了学习Arduino所需的各方面知识。介绍了目前市场上常见的Arduino开发板,解释了如何下载并运行软件以及如何编程。更关键的是,Arduino编程解析了Arduino的编程语言,以及在根据设计需要添加程序库之后我们可以获得哪些额外的功能。同时贯穿整Arduino编程的大量实例对电子电路方面的知识也进行了入门级的讲解。
Arduino编程的结构框架
Arduino编程为帮助想要学习Arduino编程的人提供了尽可能多的信息,Arduino编程分成四个部分。
第1部分,“Arduino的基本知识”(第1~3章)对Arduino进行了概述。包括它们的来源以及为什么需要去学习。介绍了Arduino的编程语言、C语言的入门知识以及电子方面的基本知识,也对编程中常用的组件部分进行了讲解。
第2部分,“标准程序库”(第4~17章)详细阐述了每种Arduino开发板可能用到的程序库,也就是说你可以根据不同的功能需要以及硬件支持选用不同的软件组件。每个程序库按章呈现,其使用方法会结合具体的实例进行解释,有助于理解其用途.
第3部分,“特殊设备程序库”(第18~23章)主要介绍特殊类型的Arduino开发板所用的程序库,可以将其加载到新的软件中与硬件设备连接或者完成指定任务。此外,每一个库中程序的使用都提供了相应的示例。
第4部分,“用户程序库和扩展板”(第24~26章)。这一部分是关于Arduino的进一步研究,说明了如何导入用户的程序库以及如何设计、分享自己的程序。介绍了如何将一个电路板加到你的板子中以增加一些功能,并形成自己的扩展板。
谁应该读Arduino编程
Arduino编程主要适用对象为创客。他们知道如何能够创造出令人惊讶的应用程序,如何使日常任务智能化。当然Arduino编程也同样适用于对Arduino编程感兴趣的开发者。
需要的工具
每一章都有示例。每一章的开头部分都准确地列出了学习该章所需要的工具。根据Arduino编程中的示例介绍。我们需要以下的硬件:
●计算机
●USB数据线以及微型USB数据线
●5V电源
●面包板和与其相适应的导线
●几种Arduino开发板:两个Arduino Uno、Arduino Due、Arduino Mega 2560、Arduino Esplora、Arduino Robot、Arduino各一个
●SainSmart LCD扩展板
●SainSmart以太网扩展板
●LM35温度传感器
●SD存储卡
●Adafruit ST7735 TFT接口板
●Adafruit MAX31855接口板
●K型热电偶丝
●Adafruit的SI1145 UV传感器板
●SainSmart的Wi-Fi无线扩展板
●DHT11湿度传感器
●HC-SR04超声波测距传感器
●HYX-S0009或者伺服电动机
●L293D
●5V双极步进电动机
●红绿蓝LED灯
●10kΩ电阻
●4.7kΩ电阻关于网站
书中的案例的源代码都可以从www.wiley.com/go/arduinosketches网站下载。
总结
Arduino开发是一个有趣的话题。它为人们打开一个拥有无数可能的新世界。Arduino不仅非常适合嵌入式开发的学习,也适用于将日常生活智能化,或者是用它做出一些夺人眼球的小玩意。在Arduino编程中你会看到许多关于如何制作一个简单设备的示例讲解,详细地从硬件原理图开始直到你能够组装设备并运行程序。
对每个程序的介绍以及对不同功能的解释能够帮助你获得更想要的运行效果。每个程序库中都提供了相应的示例,逐行显示的代码帮助你理解整个程序在做什么。希望在你启动新项目的时候,Arduino编程能够为你提供一些参考,帮助你玩得开心!
詹姆斯 A.兰布里奇 是一名软件顾问,专门从事嵌入式系统和代码优化。他在航空、国防、工业领域及电信行业有超过十余年的工作经验。他也是意法半导体公司和Amtel的研发顾问。工作之余他做过嵌入式系统工程师培训工作,帮助开发人员快速获得提升。或者做一些令他的同事爱不释手的小玩意。
詹姆斯在他六岁的时候就写了他人生的第1个程序,此后从未间断。他开始使用苹果IIs、ZX80s和ZX81s,随后开始使用BBC Micros和Amiga,到后来开始使用计算机进行工作与创作。
第1部分 Arduino的基本知识
第1章 Arduino的简介
1.1 Atmel AVR
1.2 Arduino 项目
1.3 ATmega
1.3.1 ATmega系列
1.3.2 ATtiny系列
1.3.3 其他系列
1.4 不同的Arduino
1.4.1 Arduino Uno
1.4.2 Arduino Leonardo
1.4.3 Arduino Ethernet
1.4.4 Arduino Mega 2560
1.4.5 Arduino Mini
1.4.6 Arduino Micro
1.4.7 Arduino Due
1.4.8 LilyPad Arduino
1.4.9 Arduino Pro
1.4.10 Arduino Robot
1.4.11 Arduino Esplora
1.4.12 Arduino Yún
1.4.13 Arduino Tre
1.4.14 Arduino Zero
1.4.15 你自己的Arduino
1.5 扩展板
1.5.1 什么是扩展板
1.5.2 不同的扩展板
1.5.3 Arduino电动机扩展板
1.5.4 Arduino无线SD扩展板
1.5.5 Arduino以太网扩展板
1.5.6 Arduino WiFi扩展板
1.5.7 Arduino GSM扩展板
1.5.8 你自己的扩展板
1.6 你能用Arduino做什么
1.7 你需要为本书准备什么
1.8 小结
第2章 Arduino编程
2.1 安装环境
2.1.1 下载软件
2.1.2 运行软件
2.1.3 使用自己的IDE
2.2 你的第一个程序
2.3 理解你的程序
2.4 编程基础
2.4.1 变量和数据类型
2.4.2 控制结构
2.4.3 函数
2.4.4 库
2.5 小结
第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.3.4 发光二极管
3.3.5 晶体管
3.4 面包板
3.5 输入和输出
3.6 连接发光二极管
3.6.1 计算
3.6.2 软件
3.6.3 硬件
3.6.4 接下来呢
3.7 小结
第2部分 标准程序库
第4章 Arduino语言
4.1 I/O函数
4.1.1 数字I/O
4.1.2 模拟I/O
4.1.3 生成音调
4.1.4 读取脉冲
4.2 时间函数
4.2.1 delay()
4.2.2 delayMicroseconds()
4.2.3 millis()
4.2.4 micros()
4.3 数学函数
4.3.1 min()
4.3.2 max()
4.3.3 constrain()
4.3.4 abs()
4.3.5 map()
4.3.6 pow()
4.3.7 sqrt()
4.3.8 random()
4.4 三角函数
4.4.1 sin()
4.4.2 cos()
4.4.3 tan()
4.4.4 常量
4.5 中断
4.5.1 attachInterrupt()
4.5.2 detachInterrupt()
4.5.3 noInterrupt()
4.5.4 interrupts()
4.6 小结
第5章 串口通信
5.1 串口通信的简介
5.2 UART通信
5.2.1 波特率
5.2.2 数据位
5.2.3 奇偶校验位
5.2.4 停止位
5.3 调试和输出
5.4 启动一个串行连接
5.5 写数据
5.5.1 发送文本
5.5.2 发送数据
5.6 读数据
5.6.1 开始通信
5.6.2 是否阻塞
5.6.3 读取一个字节
5.6.4 读取多个字节
5.6.5 数据预览
5.6.6 解析数据
5.6.7 清除
5.7 示例编程
5.8 软件串口
5.9 小结
第6章 EEPROM
6.1 EEPROM的简介
6.2 Arduino上的不同存储器
6.3 EEPROM库
6.3.1 读取和写入字节
6.3.2 读取和写入位
6.3.3 读取和写入字符串
6.3.4 读取和写入其他值
6.3.5 示例程序
6.4 准备EEPROM存储
6.5 扩展非易失性存储器
6.6 小结
第7章 SPI
7.1 SPI的简介
7.2 SPI总线
7.2.1 与RS232比较
7.2.2 配置
7.2.3 通信
7.3 Arduino SPI
7.4 SPI库
7.5 Arduino Due上的SPI
7.6 示例程序
7.6.1 硬件
7.6.2 程序
7.6.3 练习
7.7 小结
第8章 Wire
8.1 Wire的简介
8.2 连接I2C
8.3 I2C协议
8.3.1 地址
8.3.2 通信
8.4 进行通信
8.4.1 主机通信
8.4.2 从机通信
8.5 陷阱和缺陷
8.5.1 不同电压
8.5.2 总线速率
8.5.3 I2C扩展板
8.6 小结
第9章 Ethernet
9.1 以太网的简介
9.2 以太网
9.2.1 以太网电缆
9.2.2 交换机和集线器
9.2.3 以太网供电
9.3 TCP/IP
9.3.1 MAC地址
9.3.2 IP地址
9.3.3 DNS
9.3.4 端口
9.4 Arduino上的以太网
9.4.1 导入Ethernet库
9.4.2 开始构建以太网
9.5 Arduino作为客户端
9.5.1 发送和接收数据
9.5.2 示例程序
9.5.3 Arduino作为服务器
9.5.4 示例程序
9.6 小结
第10章 WiFi
10.1 引言
10.2 WiFi协议
10.2.1 拓扑
10.2.2 网络参数
10.3 Arduino WiFi
10.3.1 导入库
10.3.2 初始化
10.3.3 状态
10.3.4 扫描网络
10.3.5 连接和配置
10.3.6 无线客户端
10.3.7 无线服务器
10.4 示例应用
10.4.1 硬件
10.4.2 程序
10.4.3 练习
10.5 小结
第11章 LiquidCrystal
11.1 引言
11.2 LiquidCrystal库
11.2.1 写入文本
11.2.2 光标命令
11.2.3 文本方向
11.2.4 滚动
11.2.5 自定义文本
11.3 示例程序
11.3.1 硬件
11.3.2 软件
11.3.3 练习
11.4 小结
第12章 SD
12.1 引言
12.2 SD卡
12.2.1 容量
12.2.2 速率
12.3 在Arduino中使用SD卡
12.3.1 公认的SD卡
12.3.2 限制
12.4 SD库
12.4.1 导入库
12.4.2 连接SD卡
12.4.3 打开和关闭文件
12.4.4 读取和写入文件
12.4.5 文件操作
12.4.6 SD卡操作
12.4.7 高级用法
12.5 示例程序
12.6 小结
第13章 TFT
13.1 引言
13.2 技术
13.3 TFT库
13.3.1 初始化
13.3.2 屏幕准备
13.3.3 文本操作
13.3.4 基本图形
13.3.5 上色
13.3.6 图形图像
13.4 示例程序
13.4.1 硬件
13.4.2 程序
13.4.3 练习
13.5 小结
第14章 Servo
14.1 伺服电动机的简介
14.2 控制伺服电动机
14.2.1 连接伺服电动机
14.2.2 转动伺服电动机
14.2.3 断开
14.2.4 准确性与安全性
14.3 示例程序
14.3.1 电路图
14.3.2 程序
14.3.3 练习
14.4 小结
第15章 Stepper
15.1 电动机的简介
15.2 控制步进电动机
15.2.1 硬件
15.2.2 单极性与双极性步进电动机
15.3 Stepper库
15.4 示例项目
15.4.1 硬件
15.4.2 程序
15.5 小结
第16章 Firmata
16.1 Firmata的简介
16.2 Firmata库
16.2.1 发送消息
16.2.2 接收消息
16.2.3 回调
16.2.4 SysEx
16.3 示例程序
16.4 小结
第17章 GSM
17.1 全球移动通信系统(GSM)的简介
17.2 移动数据网络
17.2.1 GSM
17.2.2 3G
17.2.3 4G和未来
17.2.4 调制解调器
17.3 Arduino和GSM
17.4 Arduino GSM库
17.4.1 GSM类
17.4.2 SMS类
17.4.3 VoiceCall类
17.4.4 GPRS
17.4.5 Modem
17.5 应用示例
17.6 小结
第3部分 特殊设备程序库
第18章 Audio
18.1 音频的简介
18.2 数字语音文件
18.3 Arduino上的音乐
18.4 Arduino Due
18.4.1 数模转换器
18.4.2 数字音频到模拟音频
18.4.3 创建数字音频
18.4.4 存储数字音频
18.4.5 播放数字音频
18.5 示例程序
18.5.1 硬件
18.5.2 程序
18.5.3 练习
18.6 小结
第19章 Scheduler
19.1 调度器的简介
19.2 Arduino多任务
19.3 调度
19.3.1 多任务合作
19.3.2 非合作函数
19.4 示例程序
19.4.1 硬件
19.4.2 程序
19.4.3 练习
19.5 小结
第20章 USBHost
20.1 USBHost的简介
20.2 USB协议
20.3 USB设备
20.3.1 键盘
20.3.2 鼠标
20.3.3 集线器
20.4 Arduino Due
20.5 USBHost库
20.5.1 键盘
20.5.2 鼠标
20.6 示例程序
20.6.1 硬件
20.6.2 源代码
20.7 小结
第21章 Esplora
21.1 Esplora的简介
21.2 Arduino Esplora库
21.2.1 RGB LED
21.2.2 传感器
21.2.3 按键
21.2.4 蜂鸣器
21.2.5 TinkerKit
21.2.6 LCD模块
21.3 示例程序和练习
21.4 小结
第22章 Robot
22.1 Robot库的简介
22.2 Arduino机器人
22.3 Robot库
22.3.1 控制板
22.3.2 电动机板
22.4 示例程序和练习
22.5 小结
第23章 Bridge
23.1 Bridge库的简介
23.2 Bridge
23.2.1 Process
23.2.2 FileIO
23.2.3 YunServer
23.2.4 YunClient
23.3 示例应用程序
23.3.1 硬件
23.3.2 程序
23.3.3 练习
23.4 小结
第4部分用户程序库和扩展板
第24章 导入第三方库
24.1 库
24.1.1 查找库
24.1.2 导入一个库
24.1.3 使用扩展库
24.2 示例应用程序
24.3 练习
24.4 小结
第25章 创建你自己的扩展板
25.1 创建一个扩展板
25.1.1 想法
25.1.2 必备硬件
25.1.3 必备软件
25.2 你的第一个扩展板
25.2.1 第1步: 面包板
25.2.2 第2步: 原理图
25.2.3 第3步: PCB
25.3 小结
第26章 创建你自己的库
26.1 库
26.1.1 库基础
26.1.2 初级库
26.1.3 高级库
26.1.4 添加注释
26.1.5 添加示例
26.1.6 须知
26.1.7 编码风格
26.1.8 发布你的库
26.1.9 闭源库
26.2 示例库
26.2.1 库
26.2.2 示例
26.2.3 须知
26.2.4 收尾
26.3 小结