目 录
第1章 树莓派全面介绍 1
1.1 树莓派项目 1
1.2 树莓派硬件 3
1.2.1 板载芯片 3
1.2.2 板载接口 5
1.2.3 专用拓展 7
1.3 点亮树莓派 9
1.4 树莓派软件 15
1.4.1 设置助手 15
1.4.2 桌面布局 18
1.4.3 浏览器及软件管理 19
1.4.4 文件管理器 21
1.4.5 编程套件 23
1.4.6 树莓派配置工具 26
第2章 树莓派软硬件开发入门 28
2.1 认识Scratch 29
2.1.1 “Hello World!”程序 30
2.1.2 流程 30
2.1.3 循环 32
2.1.4 变量和条件 33
2.2 使用Scratch完成一些小游戏 36
2.2.1 宇航员反应计时器 37
2.2.2 花样游泳 41
2.3 树莓派硬件入门 48
2.3.1 了解GPIO 48
2.3.2 常用电子元器件 49
2.4 使用Scratch控制硬件 51
2.4.1 控制发光二极管 51
2.4.2 控制蜂鸣器 54
2.4.3 控制按钮 55
第3章 树莓派软硬件开发进阶 57
3.1 树莓派玩转Python入门 57
3.1.1 超轻量开发环境:Thonny 57
3.1.2 Python IDLE和命令行 58
3.1.3 编写“Hello World!”程序 60
3.2 Python进阶 61
3.2.1 代码缩进和循环 61
3.2.2 条件和变量 64
3.2.3 “画”雪花 65
3.3 Python控制GPIO传感器 71
3.3.1 gpiozero库 71
3.3.2 gpiozero的输入和输出 73
3.3.3 模拟红绿灯 75
3.3.4 抢答器 77
3.4 Python与树莓派硬件的交互 80
3.4.1 Python与树莓派系统信息的交互 80
3.4.2 Python与发光二极管传感器的交互 81
3.4.3 Python与游戏操纵杆传感器的交互 85
3.4.4 Python与电子罗盘传感器的交互 88
第4章 机器人简单传感器 91
4.1 视觉传感器 91
4.1.1 简单提示:发光二极管 91
4.1.2 图像视频采集:摄像头 98
4.1.3 图像视频输出:显示器 101
4.2 声学传感器 106
4.2.1 简单提示音:蜂鸣器 106
4.2.2 播放声音和音乐:扬声器 107
4.2.3 超声波:距离传感器 108
4.3 电磁传感器 109
4.3.1 限制电路电流:电阻器 109
4.3.2 机器人的双脚:马达 111
4.3.3 角度微控制器:舵机 116
4.3.4 大型电器开关:继电器 117
4.3.5 测速计数:霍尔传感器 119
4.4 其他传感器 121
4.4.1 力学传感器:开关、体重、加速计和陀螺仪 121
4.4.2 热学传感器:人体感应器、温度传感器 126
4.4.3 红外传感器:光敏传感器、循迹传感器 128
第5章 树莓派人工智能传感器 131
5.1 Google AIY Voice Kit 131
5.1.1 组装配置 131
5.1.2 简单录音 133
5.1.3 语音识别与命令 134
5.2 谷歌语音套件 136
5.2.1 组装配置 136
5.2.2 人脸和物品检测引擎 137
5.2.3 使用代码演示人脸识别 139
5.3 Seeed ReSpeaker 140
5.3.1 硬件规格介绍 140
5.3.2 安装驱动 141
5.3.3 配置在线API 143
5.3.4 语音识别与命令 145
5.4 Pixy2 Cam 145
5.4.1 Pixy系列传感器介绍 145
5.4.2 连接到树莓派 146
5.4.3 颜色判定和巡线 147
5.4.4 Python接口调用 150
第6章 树莓派构建机器人 152
6.1 硬件规划 152
6.1.1 协议规划:深入gpiozero 152
6.1.2 协议规划:I2C、SPI 158
6.1.3 电路规划:FRITZING 162
6.2 软件规划 165
6.2.1 命令控制:SSH 165
6.2.2 电脑控制:gpiozero 169
6.2.3 手机控制:Blue Dot 172
6.3 机器人构建 175
6.3.1 远程控制机器人 175
6.3.2 循迹机器人 177
6.3.3 跟随/避障机器人 180
6.4 监测树莓派状态 181
6.4.1 命令行检测 181
6.4.2 苹果手机监控:PiHelper 184
6.4.3 安卓手机监控:RaspController 186
第7章 树莓派与产业机器人“语言”:ROS 190
7.1 机器人操作系统ROS 190
7.1.1 ROS是什么 190
7.1.2 ROS用来做什么 190
7.1.3 ROS版本的选择 191
7.1.4 在树莓派上安装Ubuntu 192
7.1.5 在Ubuntu上安装ROS 196
7.2 文件系统概览 197
7.2.1 安装ros-tutorials案例包 197
7.2.2 ROS软件包结构 197
7.3 ROS节点 200
7.3.1 首先启动内核roscore 200
7.3.2 启动节点rosnode 201
7.3.3 启动文件 203
7.4 ROS话题 205
7.4.1 rostopic命令 207
7.4.2 消息传递过程 209
7.5 ROS服务、参数和调试 211
7.5.1 服务rosservice 211
7.5.2 参数rosparam 214
7.5.3 打印ROS日志 216
第8章 树莓派集成机器人与人工智能 219
8.1 树莓派ROS传感器 219
8.1.1 配置宿主机和客户机 219
8.1.2 树莓派连接摄像头 221
8.1.3 树莓派连接激光雷达 223
8.1.4 树莓派连接3D摄像头 225
8.2 树莓派连接操纵手柄 226
8.2.1 硬件准备:PS3、PS4、XBOX 226
8.2.2 驱动安装和测试 227
8.2.3 代码编写与软件包编译 229
8.2.4 使用手柄控制小乌龟 231
8.3 手机控制ROS机器人 231
8.3.1 远程控制:ROS Control 232
8.3.2 人机界面:PocketBot for ROS 234
8.3.3 智能语音:ROS Teleop Controller 236
8.4 ROS人工智能 238
8.4.1 现实世界的人工智能 238
8.4.2 机器人视觉:OpenCV 239
8.4.3 机器人地图:SLAM 241
8.4.4 机器人导航:Navigation 242