原书前言 关于作者 关于技术审校者 第1章 机器人学导论 1 1.1 机器人学基础 1 1.1.1 Linux操作系统和机器人学 2 1.1.2 传感器和GPIO 3 1.1.3 运动和控制 3 1.2 树莓派和Arduino 4 1.3 项目概览 5 1.3.1 机器人 5 1.3.2 物料清单 5 1.4 小结 10 第2章 树莓派简介 11 2.1 下载并安装Raspbian 11 2.1.1 附带OpenCV的Raspbian 12 2.1.2 “困难”方法 12 2.1.3 “简单”方法 14 2.2 连接树莓派 15 2.3 配置树莓派 16 2.3.1 使用raspi-config 16 2.3.2 用户 21 2.3.3 连接到无线网络 22 2.4 转入无头模式 22 2.4.1 远程访问 23 2.5 小结 27 第3章 Python入门教程 28 3.1 Python概述 29 3.2 下载并安装Python 29 3.3 Python工具 30 3.3.1 Pythonshell 30 3.3.2 Python编辑器 31 3.3.3 Python之禅 33 3.4 编写和运行Python程序 34 3.4.1 HelloWorld 34 3.4.2 基本结构 34 3.4.3 运行程序 36 3.5 Python编程 36 3.5.1 变量 37 3.5.2 数据类型 37 3.5.3 关于变量的后一个提示 45 3.5.4 控制结构 45 3.5.5 函数 49 3.5.6 通过模块添加功能 51 3.5.7 类 55 3.5.8 样式 61 3.6 小结 62 第4章 树莓派GPIO 63 4.1 树莓派GPIO介绍 63 4.1.1 引脚编号 64 4.1.2 连接到树莓派 65 4.1.3 树莓派GPIO的局限性 66 4.1.4 使用Python访问GPIO 66 4.1.5 简单输出 67 4.1.6 简单输入 71 4.2 小结 78 第5章 树莓派和Arduino 79 5.1 树莓派GPIO回顾 79 5.1.1 实时或近实时处理 80 5.1.2 模拟输入 80 5.1.3 模拟输出 80 5.2 Arduino来救场 81 5.3 使用Arduino 82 5.3.1 安装Arduino IDE 82 5.3.2 连接Arduino 83 5.3.3 Arduino编程 84 5.3.4 草图 88 5.4 Arduino编程语言 91 5.4.1 包含其他文件 92 5.4.2 变量和数据类型 92 5.4.3 控制结构 95 5.4.4 使用引脚 100 5.4.5 对象和类 103 5.4.6 串口 103 5.4.7 Arduino和树莓派相互通信 105 5.5 Pinguino 112 5.5.1 设置电路 112 5.6 小结 115 第6章 驱动电动机 116 6.1 电动机和控制器 116 6.1.1 电动机类型 117 6.1.2 电动机特性 118 6.1.3 电动机控制器 119 6.2 使用电动机控制器 120 6.2.1 Adafruit直流和步进电动机控制器HAT 120 6.2.2 L298N通用电动机控制器 134 6.3 小结 141 第7章 组装机器人 143 7.1 组装底盘 143 7.1.1 选择材质 144 7.1.2 Whippersnapper 144 7.2 安装电子设备 147 7.3 布线 151 7.4 安装传感器 153 7.5 成品机器人 155 7.5.1 让机器人动起来 155 7.6 小结 164 第8章 红外传感器 165 8.1 红外传感器介绍 165 8.1.1 红外传感器的类型 165 8.2 使用红外传感器 168 8.2.1 连接红外传感器 168 8.2.2 安装红外传感器 170 8.2.3 代码 171 8.3 了解PID控制 178 8.3.1 闭环控制 179 8.3.2 PID控制器的实现 180 8.4 小结 183 第9章 OpenCV 184 9.1 计算机视觉 184 9.1.1 OpenCV介绍 185 9.1.2 选择摄像头 187 9.1.3 安装摄像头 188 9.2 OpenCV基础知识 189 9.2.1 处理图像 190 9.2.2 图像采集 190 9.2.3 图像变换 196 9.2.4 处理颜色 198 9.2.5 斑点和斑点检测 201 9.3 追球机器人 206 9.4 小结 212 第10章 总结 214 10.1 机器人的类型 214 10.2 工具 215 10.2.1 软件 215 10.2.2 硬件 219 10.3 小结 221