第一部分 入门 3
第1章 你好Arduino 3
1.1 Arduino简史 4
1.2 Arduino硬件 4
1.2.1 Arduino Uno 5
1.2.2 Arduino Duemilanove 6
1.2.3 Arduino Ethernet 6
1.2.4 Arduino Mega 6
1.2.5另外几种Arduino电路板 7
1.2.6复制品的冲击 8
1.2.7获取一片Arduino 9
1.3设置你的工作环境 9
1.3.1 Arduino软件 9
1.3.2基本硬件安装 10
1.3.3你的Arduino工具箱 10
1.4做点什么 11
1.4.1第一个闪烁的LED 11
1.4.2使LED闪烁的程序 11
1.4.3把所有的东西连起来 12
1.4.4上传和测试 12
1.5熟悉IDE 13
1.5.1主编辑器 14
1.5.2串口监视器 15
1.5.3捕获错误 15
1.5.4流程 16
1.6 Arduino程序的结构 16
1.6.1setup子程序 17
1.6.2无限循环 17
1.7为代码编写注释 18
1.8小结 19
第2章 数字输入和输出 20
2.1准备开始 20
2.1.1面包板的使用 21
2.1.2电路图 21
2.1.3添加LED 22
2.1.4连接硬件 23
2.1.5使5个LED闪烁的程序 24
2.1.6烧写和测试 25
2.2获得控制权 25
2.2.1电路图 25
2.2.2连接 26
2.2.3认识中断 27
2.2.4通过按钮控制LED的程序 27
2.2.5烧写和测试 29
2.2.6使用break语句 29
2.2.7烧写和测试 30
2.3反应测试仪 30
2.3.1电路图 31
2.3.2连接 31
2.3.3测试反应速度的程序 32
2.3.4烧写和测试 34
2.4反应速度计:谁真正拥有最快的反应时间 34
2.4.1测定反应速度的程序 34
2.4.2烧写和测试 36
2.5小结 36
第3章 简单项目:输入和输出 38
3.1认识模拟电路 39
3.1.1模拟和数字有什么区别 39
3.1.2读取电位器 40
3.1.3连接硬件 41
3.1.4读取电位器的程序 41
3.1.5烧写和测试 42
3.2压电换能器 43
3.2.1电路图 44
3.2.2连接硬件 45
3.2.3用于测定压电换能器精出的程序 45
3.2.4烧写和测试 46
3.2.5添加一个扬声器的电路 47
3.2.6连接硬件 48
3.2.7产生一个音阶的程序 48
3.2.8烧写和测试 49
3.3制作一架五声音阶电子琴 49
3.3.1电路图 50
3.3.2连接硬件 51
3.3.3制作一架五声音阶电子琴的程序 51
3.3.4烧写和测试 52
3.4小结 53
第二部分将Arduino投入工作 57
第4章 扩展Arduino 57
4.1用库来扩展Arduino 57
4.2核心库 58
4.3标准库 58
4.3.1使用ArduinoTestSuite进行测试驱动型开发 59
4.3.2使用EEPROM存储数据 60
4.3.3使用SD卡存储更多数据 61
4.3.4连接到以太网 62
4.3.5使用Firmata进行串行数据通信 63
4.3.6使用LiquidCrystal库显示数据 64
4.3.7控制伺服电机 65
4.3.8转动步进电机 65
4.3.9与SPI外设通信 66
4.3.10通过双线接口进行数据通信 67
4.3.11通过SoftwareSerial库获得更多串口 68
4.4第三方库 70
4.5通过扩展板来扩展Arduino 71
4.5.1常用扩展板 71
4.5.2陷阱:它能用在我的Arduino上吗 73
4.6小结 74
第5章 运动中的Arduino 75
5.1认识直流电动机 76
5.1.1开始和停止 77
5.1.2启动和停止小型直流电机的程序 77
5.1.3连接硬件 78
5.1.4烧写和测试 80
5.2转速控制和反向旋转 80
5.2.1 PWM来救场 81
5.2.2用于电机控制的H桥 82
5.2.3 L293D双H桥驱动芯片 83
5.2.4连接硬件 84
5.2.5用L293D控制电动机的程序 85
5.2.6烧写和测试 86
5.2.7改变电动机的转速 86
5.2.8烧写和测试 87
5.3步进电机:每次进一步 88
5.3.1单极型还是双极型 88
5.3.2连接硬件 91
5.3.3步进电机库函数 93
5.3.4控制步进电机的程序 93
5.3.5烧写和测试 94
5.4尝试使用伺服电机 94
5.4.1控制伺服电机 95
5.4.2伺服电机的函数与方法 96
5.4.3控制伺服电机的程序 96
5.4.4连接硬件 97
5.4.5烧写和测试 98
5.5直流无刷电动机:小身材,大力量 98
5.5.1为什么要用无刷电机 98
5.5.2获得控制权 99
5.5.3控制无刷电机的程序 100
5.5.4连接硬件 101
5.5.5烧写和测试 102
5.5.6反向旋转 102
5.5.7反向旋转一个无刷电机的程序 103
5.5.8连接硬件 104
5.5.9烧写和测试 104
5.6用于更多电动机的电动机控制扩展板 104
5.7小结 105
第6章 目标检测 106
6.1使用超声波进行目标检测 106
6.1.1选择一款超声波传感器 107
6.1.2三线还是四线 108
6.1.3超声波目标检测的程序 108
6.1.4连接硬件 110
6.1.5烧写和测试 111
6.2红外测距 111
6.2.1红外和超声波配合使用 112
6.2.2夏普GP2D 12红外测距仪 112
6.2.3用于距离计算的非线性算法 112
6.2.4距离测定的程序 113
6.2.5连接硬件 115
6.2.6烧写和测试 115
6.3使用被动式红外进行运动侦测 115
6.3.1使用Parallax被动式红外传感器(PIR) 116
6.3.2红外运动侦测的程序 116
6.3.3连接硬件 118
6.3.4烧写和测试 119
6.4小结 119
第7章LCD显示器 120
7.1 LCD简介 120
7.2并行字符LCD:日立HD44780 123
7.2.1 4位还是8位 124
7.2.2库和函数 124
7.2.3电路图 125
7.2.4以4位模式连线 126
7.2.5写入日立HD44780的程序 128
7.2.6烧写和测试 128
7.3串行LCD气象站 129
7.3.1串行还是并行LCD 129
7.3.2 SerLCD库和函数 130
7.3.3 Maxim DS 18B20集成温度传感器 131
7.3.4 OneWire和DallasTemperahture库 131
7.3.5电路图 132
7.3.6将所有东西连接起来 132
7.3.7 LCD气象站的程序 134
7.3.8烧写和测试 135
7.4图形LCD:三星KS0108GLCD 135
7.4.1库和函数 136
7.4.2电路图 137
7.4.3将一切都连接起来 138
7.4.4在GLCD上绘图的程序 139
7.4.5烧写和测试 140
7.5小结 141
第8章 通信 142
8.1以太网 142
8.1.1 Ethemet库 143
8.1.2以太网扩展板与SD数据卡 145
8.2 Arduino Web服务器 145
8.2.1建立服务器 146
8.2.2建立Web服务器的程序 147
8.2.3烧写和测试 148
8.2.4故障排除 149
8.3与Twitter通信 149
8.3.1关于Twitter和令牌 149
8.3.2库和函数 150
8.3.3电路图和硬件连接 150
8.3.4 Twitter一键发推器的程序 150
8.3.5烧写和测试 152
8.4 Wi-Fi 152
8.4.1 Arduino WiFi扩展板 153
8.4.2 WiFi库和函数 154
8.4.3手势:无线加速度计 156
8.4.4连接硬件 156
8.4.5 Wi-Fi通信的程序 157
8.4.6烧写和测试 160
8.5蓝牙无线 160
8.5.1 ArduinoBT 161
8.5.2添加蓝牙 162
8.5.3建立一个蓝牙连接 162
8.5.4蓝牙通信的程序 163
8.6串行外设接口(SPI) 164
8.6.1 SPI库 164
8.6.2 SPI设备和数字电位器 165
8.6.3电路图和硬件连接 165
8.6.4 LED数字调光器的程序 167
8.7数据记录 168
8.7.1各种存储器 168
8.7.2 SD卡和SD库 169
8.7.3 SD卡传感器记录器的程序 170
8.8 Cosm 171
8.8.1注册一个账户并获得API密钥 171
8.8.2创建一个新的数据源 172
8.8.3 Cosm传感器记录程序 173
8.8.4烧写和测试 175
8.9小结 175
第9章 游戏开始 177
9.1任天堂Wii欢迎你 177
9.1.1 Wii Nunchuk 178
9.1.2连接Nunchuk 180
9.1.3与Wii通信 181
9.1.4测试Wii程序 190
9.2发布Xbox 190
9.2.1获得连接 191
9.2.2 USB Host库 191
9.2.3利用USB Host扩展板学习Xbox控制器 192
9.2.4 Xbox报告数据分组 194
9.2.5让我们启动它 196
9.2.6与代码接驳 196
9.2.7 Xboxhid.ino 198
9.2.8硬件连接和测试 201
9.3小结 202
第10章Arduino与iOS整合 204
10.1将你的设备连接到Arduino 205
10.1.1 Redpark串口线 205
10.1.2最终连接 206
10.2 iOS代码 206
10.2.1在Xcode中创建一个单视图应用程序 207
10.2.2编写代码 211
10.3引入Arduino 214
10.3.1利用ioS设备开关LED的程序 214
10.3.2测试这个程序 215
10.4用Xcode做更多事情 216
添加一个Slider控件 216
10.5滑动控制Arduino 220
10.5.1 Arduino滑块控制电路 221
10.5.2测试这个电路 221
10.6 将数据发送到iOS设备 222
10.6.1 Xcode编程 222
10.6.2 GP2D12红外距离传感器 226
10.6.3测试 227
10.7小结 228
第11章制作可穿戴设备 230
11.1 LilyPad简介 230
11.1.1 LilyPad附件 231
11.1.2导电缝纫线和布料 232
11.2制作一件转向标夹克 233
11.3制作一架可穿戴钢琴 236
11.4 Arduino Pro Mini 238
11.5制作一个智能耳机 238
11.6制作一件带指南针的夹克 241
11.7小结 244
第12章 添加扩展板 245
12.1扩展板基础 245
12.2 Adafruit电动机扩展板 246
12.2.1 AFMotor库 246
12.2.2使用电动机扩展板控制一个步进电机 248
12.2.3使用电动机扩展板控制直流电机 249
12.2.4获得一块电动机扩展板 252
12.3制作你自己的扩展板 252
12.3.1存储器 253
12.3.2电平转换器 253
12.3.3 SD卡插槽 254
12.3.4将SD卡连接到Arduino 254
12.3.5准备洞洞板 255
12.3.6测试扩展板 258
12.4小结 260
第13章 软件整合 261
13.1串行信道 262
13.2使用伺服电机进行人脸跟踪 262
13.2.1组装人脸跟踪的硬件 264
13.2.2人脸跟踪的代码 265
13.3利用Firmata制作一个均衡器 269
13.3.1在你的应用程序中使用Firmata 269
13.3.2在Processing中进行音频分析 270
13.3.3组装均衡器的硬件 271
13.3.4均衡器的代码 272
13.4利用Pure Data制作一个合成器 274
13.4.1组装合成器的硬件 275
13.4.2合成器的代码 276
13.5使用Python来监测温度 279
13.5.1Python中的串口库 279
13.5.2组装温度计的硬件 281
13.5.3用于监测温度的代码 281
13.6小结 283
附录A安装Arduino IDE 284
附录B编程基础 291
附录C软件库 305
附录D器件列表 309
附录E有用的链接 214