基础篇 1
第一章 概述 1
1.1 创客的发展 1
1.2 机器人创客 2
1.2.1 中国机器人创客联盟 3
1.2.2 DFRobot——创客机器人的造物梦工厂 3
1.2.3 奥松机器人 4
1.2.4 秀创客——创客教育网 5
1.3 机器人创客DIY部件 6
1.3.1 典型控制器 6
1.3.2 典型传感器 6
1.3.3 典型驱动器 6
1.3.4 典型通信模块 6
1.3.5 机器人视觉和语音模块 6
1.3.6 Adafruit——开源电子硬件制造商 7
1.4 机器人简介 7
1.5 本章小结 8
第二章 创客必备软件 9
2.1 Arduino IDE 9
2.2 Processing 9
2.3 Autodesk Circuits 11
2.4 Fritzing 11
2.5 Scratch 12
2.6 Scratch for Arduino 12
2.7 APP Inventor 14
2.8 123D Design 14
2.9 Kodu 15
2.10 Stencyl 15
2.11 机器人调试助手 16
2.12 Python语言 16
2.13 本章小结 16
Arduino篇 18
第三章 Arduino介绍 18
3.1 Arduino开发板 18
3.1.1 Arduino UNO 18
3.1.2 Arduino Leonardo 19
3.1.3 Arduino Mega 2560 21
3.1.4 英特尔?Galileo开发板和英特尔?Edison开发板 22
3.1.5 Arduino Due 24
3.2 Arduino扩展板 25
3.3 Arduino开发环境 27
3.3.1 Arduino IDE介绍 27
3.3.2 ArduBlock -Arduino的图形开发环境 30
3.3.3 Arduino使用外部库 31
3.4 Processing介绍 35
3.5 Arduino和Processing的交互 38
3.6 本章小结 39
第四章 Arduino基本函数 40
4.1 数字I/O口的操作函数 40
4.1.1 pinMode(pin,mode) 40
4.1.2 digitalWrite(pin, value) 40
4.1.3 digitalRead(pin) 41
4.2 模拟I/O口的操作函数 41
4.2.1 analogReference(type) 41
4.2.2 analogRead(pin) 41
4.2.3 analogWrite(pin, value) 41
4.3 高级I/O 42
4.3.1 shiftOut(dataPin,clockPin,bitOrder, val) 42
4.3.2 pulseIn(pin, state,timeout) 43
4.4 中断函数 43
4.5 延时函数 44
4.6 串口通信函数 45
4.7 数学函数 45
4.8 EEPROM函数 45
4.9 Arduino SPI 46
4.10 Arduino I2C 51
4.11 本章小结 53
第五章 Arduino典型电机控制 54
5.1 舵机控制 54
5.1.1 舵机简介 54
5.1.2 舵机控制函数库 55
5.1.3 实例:实现摇头电扇 56
5.2 直流减速电机 58
5.2.1 直流电机简介 58
5.2.2 H桥驱动电路 58
5.2.3 PW M信号控制调速 59
5.2.4 常用直流电机驱动芯片 59
5.2.5 实例:实现圆圈运动 60
5.2.6 实例:实现螺旋运动 62
5.3 步进电机 64
5.3.1 步进电机简介 64
5.3.2 常用步进电机驱动芯片 65
5.3.3 实例:实现步进正反转运动 66
5.4 本章小结 70
第六章 Arduino典型传感器使用 71
6.1 超声波测距传感器 71
6.1.1 工作原理 71
6.1.2 超声波测距传感器 72
6.1.3 编程实现 73
6.1.4 实例:超声波避障 75
6.2 红外光电传感器 78
6.2.1 工作原理 78
6.2.2 编程实现 79
6.2.3 实例:红外循迹和避障 82
6.3 温度传感器 85
6.3.1 模拟温度传感器 85
6.3.2 数字温度传感器 88
6.3.3 实例:使用DHT库读取温湿度 91
6.4 光敏传感器 94
6.5 魔术光杯 95
6.6 手势识别传感器 97
6.7 颜色传感器 100
6.7.1 颜色传感器介绍 100
6.7.2 颜色识别过程 101
6.8 九轴姿态检测传感器 104
6.9 本章小结 111
第七章 Arduino无线通信 112
7.1 蓝牙传输 112
7.1.1 蓝牙技术简介 112
7.1.2 蓝牙模块的使用 112
7.1.3 实例:Android手机与Arduino开发板蓝牙通信 114
7.2 无线数传 116
7.2.1 无线数传模块nRF24 L01 116
7.2.2 实例:nRF24L01模块点对点通信 118
7.3 Wi-Fi无线模块 126
7.3.1 Wi-Fi技术简介 126
7.3.2 串口W i-Fi模块 127
7.3.3 实例:串口W i-Fi模块和计算机之间通信 128
7.4 本章小结 131
第八章 Arduino Wi-Fi视频智能小车循迹避障机器人 132
8.1 概述 132
8.2 硬件部分的选择 133
8.3 组装 136
8.4 软件部分的实现 137
8.5 本章小结 142
树莓派篇 144
第九章 树莓派介绍 144
9.1 树莓派版本 144
9.2 树莓派接口 146
9.3 树莓派软件源 148
9.4 本章小结 150
第十章 树莓派基础软件操作 151
10.1 操作系统的安装 151
10.2 无线网络连接 156
10.3 远程控制 157
10.3.1 远程控制台控制 157
10.3.2 远程图形化控制 159
10.4 中文配置及输入法安装 160
10.5 使用Scratch 162
10.6 树莓派配置 163
10.7 安装GPIO库 164
10.8 本章小结 165
第十一章 Python编程 166
11.1 Python简介 166
11.2 安装Python 167
11.3 Python程序编辑和运行 169
11.4 Python变量和数据类型 170
11.5 Python基本语法 174
11.6 Python基本控制结构 176
11.7 Python函数 180
11.8 Python异常处理 188
11.9 Python自定义类 191
11.10 Python操作文件 199
11.11 Python多线程 199
11.12 Python GUI编程 202
11.13 本章小结 204
第十二章 树莓派典型传感器使用 205
12.1 超声波传感器测量距离 205
12.2 DHT11数字温湿度传感器测量温湿度 207
12.3 红外避障传感器 210
12.4 模拟量——ADC测量光线 211
12.5 使用开关模块 215
12.6 使用USB接口摄像头 216
12.7 CSI接口摄像头 218
12.7.1 通过CSI摄像头模块拍照 219
12.7.2 通过CSI摄像头模块拍摄视频 221
12.8 3D手势识别传感器——I2C接口 223
12.9 本章小结 225
第十三章 树莓派典型控制器使用 226
13.1 直流减速电机控制 226
13.2 舵机控制 229
13.2.1 PWM控制 229
13.2.2 Servoblaster控制 231
13.3 步进电机 233
13.4 LED交通信号灯模块 236
13.5 使用继电器控制大功率设备 237
13.6 本章小结 239
第十四章 树莓派机器视觉 240
14.1 安装SimpleCV 240
14.2 SimpleCV使用USB摄像头 242
14.3 在SimpleCV中使用Pi Camera 243
14.4 数硬币 246
14.5 人脸检测 247
14.6 动态图像采集 248
14.7 运动检测 249
14.8 本章小结 250
第十五章 树莓派语音处理 251
15.1 树莓派播放语音 251
15.1.1 树莓派播放声音的硬件 251
15.1.2 Omxplayer播放器 252
15.1.3 Rhythmbox播放器 253
15.1.4 Volumio、RuneAudio和OSMC播放系统 256
15.2 使用USB话筒 260
15.3 利用树莓派打造语音天气播报 263
15.4 利用树莓派打造聊天机器人 267
15.4.1 图灵机器人实现智能对话 267
15.4.2 百度语音识别 269
15.4.3 文字转语音——eSpeak 273
15.4.4 实现聊天机器人 273
15.5 本章小结 275
第十六章 树莓派综合应用 276
16.1 概述 276
16.2 结构设计分析 278
16.2.1 总体设计 278
16.2.2 通信方式 279
16.2.3 控制方式 281
16.2.4 树莓派扩展板 283
16.3 实现过程 285
16.3.1 小车机器人行走控制 285
16.3.2 机械臂控制 287
16.3.3 树莓派蓝牙通信 291
16.3.4 树莓派Wi-Fi热点设置 292
16.3.5 VNC Server设置 293
16.4 树莓派典型应用:叮当机器人 295
16.5 本章小结 297
第十七章 Arduino与树莓派 298
17.1 Arduino与树莓派 298
17.2 在树莓派系统建立Arduino编程环境 299
17.3 在树莓派系统使用Py Firmata来控制Arduino 300
17.4 使用树莓派控制Arduino的输出 302
17.4.1 使用Py Firmata控制Arduino数字引脚 302
17.4.2 使用PyFirmata控制Arduino输出PWM信号 303
17.4.3 使用PyFirmata控制Arduino伺服电机 303
17.5 读取Arduino的输入 304
17.5.1 使用PyFirmata读取Arduino数字输入 305
17.5.2 使用PyFirmata读取Arduino模拟输入 306
17.6 通过12C实现树莓派和Arduino之间的通信 307
17.7 AlaMode板与树莓派 309
17.7.1 使用AlaMode接口板 310
17.7.2 利用PyFirmata访问AlaMode板 310
17.8 本章小结 311
参考文献 312