第1章 Arduino入门 1
1.1什么是Arduino 1
1.2 Arduino简史 2
1.3安装Arduino 2
1.3.1在Mac OS X上安装 2
1.3.2在Windows上安装 2
1.3.3在Linux上安装 3
1.4测试Arduino 3
1.5 Arduino的硬件 4
1.5.1 Arduino的输入和输出 5
1.5.2上拉电阻 6
1.5.3 Arduino扩展板 7
1.6 Arduino IDE 8
1.7串行监视器 10
1.8 Arduino语言 10
1.8.1 setup()函数 11
1.8.2 loop()函数 11
1.8.3变量 11
1.9你的第一个Arduino项目 14
1.9.1面包板 14
1.9.2搭建电路 15
1.9.3对Arduino编程 15
1.10电路示意图 16
1.10.1 Fritzing 17
1.10.2电子符号 18
1.11电学 18
1.11.1 AC/DC 19
1.11.2欧姆定律 19
1.11.3焦耳定律 19
1.12总结 20
第2章 Kinect入门 21
2.1 Kinect简史 22
2.1.1破解Kinect 22
2.1.2官方架构 23
2.2 Kinect感应器 23
2.2.0 Kinect的摆放 24
2.3 Kinect的功能 25
2.3.1 RGB图像 25
2.3.2红外线图像 25
2.3.3深度图 25
2.3.4手势和骨骼跟踪 25
2.4 Kinect驱动程序框架 26
2.4.1 OpenKinect的Libfreenect驱动 26
2.4.2PrimeSense的OpenNI和NITE 26
2.4.3 Windows版微软Kinect 27
2.5 Kinect的原理 28
2.5.1结构光3D扫描 28
2.5.2光编码图像转换成深度图 29
2.6 Kinect替代设备:华硕Xtion PRO 30
2.7总结 30
第3章 Processing 31
3.1 Processing语言 32
3.2安装Processing 32
3.3 Processing IDE 33
3.4第一个Processing程序 33
3.4.1 Processing变量 34
3.4.2变量作用域 34
3.4.3 Processing程序结构 34
3.4.4 setup()函数 34
3.4.5 draw()函数 35
3.5 Processing库 36
3.6 Simple-OpenNI 37
3.6.1安装Simple-OpenNI 37
3.6.2在Linux上安装 39
3.7访问深度图和RGB图像 40
3.8第三维度 42
3.8.1 Processing的3D 42
3.8.2摄像机控制库 45
3.8.3 KinectOrbit例子 46
3.9 Kinect空间 48
3.10线性数组和2D数组 50
3.11点云着色 51
3.12 NITE函数 52
3.12.1手部跟踪 53
3.12.2骨骼跟踪 54
3.13总结 56
第4章 Arduino与Kinect的“Hello World” 57
4.1 Hello World的材料清单 57
4.2串行通信 58
4.2.0串行控制LED 59
4.3编写自己的通信协议 63
4.3.0串行控制LED 63
4.4 Kinect控制LED 65
4.5 Arduino的反馈 68
4.6总结 73
第5章 Kinect遥控 74
5.1体感遥控项目的材料清单 74
5.2改装遥控器 75
5.3把遥控器连接到Arduino 76
5.3.0组装扩展开发板 78
5.4电路测试 79
5.5 Kinect手部跟踪和手势识别 82
5.5.1库与设置 82
5.5.2 NITE回调函数 85
5.5.3 draw()循环与其他函数 87
5.5.4把Processing程序连接到Arduino 92
5.6总结 92
第6章 用Kinect操纵木偶 93
6.1木偶 94
6.1.1舵机 94
6.1.2建造舞台 97
6.1.3制作木偶 99
6.2搭建电路 100
6.2.1测试舵机 102
6.2.2设置舵机起始位置 105
6.3屏幕上的姿态跟踪 107
6.3.0 Simple-OpenNI事件 109
6.4角度计算 110
6.5网络通信 114
6.5.1在本地网络中通信 114
6.5.2在互联网上通信 115
6.6服务器程序:通过网络发送角度 116
6.7客户端程序:控制木偶 117
6.8最终的Arduino代码 121
6.9总结 124
第7章 心情照明 125
7.1RGB色域 126
7.2 ArduinoNano 127
7.3搭建电路 127
7.3.1电阻 128
7.3.2认识电阻的色环 129
7.3.3电路测试 130
7.4 XBee无线模块 132
7.5 Arduino编程 134
7.6 Lamp类 135
7.6.0面向对象编程 136
7.7用户控制程序 140
7.7.1变量声明 140
7.7.2 setup()函数 141
7.7.3 dra()函数 141
7.7.4用户控制 143
7.7.5数据存储与检索 146
7.7.6串行通信 148
7.7.7 Display函数 148
7.7.8 Simple-OpenNI回调 151
7.8总结 152
第8章 Kinect绘图机器人 153
8.1建造机器人 154
8.1.1第一部分 155
8.1.2第二部分 156
8.1.3第三部分 156
8.1.4底盘 157
8.2搭建电路 159
8.3电路测试 159
8.3.1 Processing的Firmata和Arduino库 159
8.3.2舵机测试 159
8.4 Robot仿真 161
8.4.1角度测量程序 162
8.4.2机器人仿真程序 164
8.5驱动机器人 167
8.6 Kinect桌面接口 169
8.6.0点云校准 170
8.7虚拟机器人模型 182
8.7.0平滑输入 184
8.8启动绘图机器人 187
8.9总结 188
第9章 Kinect遥控汽车 189
9.1电机和H桥 190
9.2改装汽车 191
9.3搭建电路 192
9.4电路测试 193
9.4.1函数 195
9.4.2 Arduino测试程序 200
9.5接近传感器 203
9.5.0函数 206
9.6 XBee和无线 208
9.7 Kinect遥控接口 209
9.7.1 setup()函数 211
9.7.2 draw()函数 212
9.7.3附加函数 214
9.8总结 219
第10章 生物识别站 220
10.1改装体重秤 221
10.1.1七段LCD 222
10.1.2破解LCD 222
10.2获得LCD信号 223
10.2.1读取LCD信号 225
10.2.2把信号发送到Processing 230
10.3 LCD信号解码 233
10.4使用重量数据 236
10.5生物特征识别 239
10.5.1导入并声明变量 239
10.5.2 setup()函数 240
10.5.3用户界面 242
10.5.4 dra()函数 243
10.5.5附加函数 244
10.6总结 258
第11章 3D建模接口 259
11.1接口 259
11.2 Arduino LilyPad 261
11.3弯曲传感器 261
11.4缝制电路 262
11.5电路测试 263
11.5.1 Arduino串行发射器 263
11.5.2 Processing手套数据接收器 264
11.6无线连接 265
11.6.1 LilyPad XBee 266
11.6.2 SoftwareSerial库 266
11.6.3无线Arduino代码 266
11.7实现建模接口 268
11.7.1 Glovelnterface类 268
11.7.2几何类 273
11.7.3主程序建模接口 276
11.8总结 285
第12章 转盘扫描仪 286
12.1原理 286
12.2建造转盘 289
12.2.0连接齿轮 289
12.3搭建电路 292
12.4 Arduino代码 293
12.5 Processing代码 296
12.5.1变量声明 296
12.5.2 setup()和draw()函数 298
12.5.3附加函数 300
12.6点云导出 307
12.7 exportly函数 308
12.8 Meshlab表面重建 309
12.9总结 312
第13章 Kinect驱动的Delta机器人 313
13.1项目介绍 314
13.2 Delta机器人 315
13.3建造Delta机器人 315
13.3.1腿部 315
13.3.2底盘 316
13.3.3受动器 317
13.3.4机器爪 318
13.3.5机器人上架 320
13.4搭建电路 321
13.5 Delta机器人仿真软件 323
13.5.1反向运动 323
13.5.2 DeltaRobot类 325
13.5.3 deltaLeg类 331
13.5.4用鼠标控制仿真Delta机器人 334
13.6用Kinect控制Delta机器人 336
13.6.1控制机器手 341
13.6.2把数据发送到Arduino 343
13.7 Arduino代码 345
13.8总结 348