书籍详情
树莓派4与人工智能实战项目
作者:李伟斌 著
出版社:清华大学出版社
出版时间:2022-06-01
ISBN:9787302603252
定价:¥79.00
购买这本书可以去
内容简介
本书主要介绍树莓派不同类型的特性,以及树莓派入门所需要的基础知识;涵盖了树莓派GPIO 的不同操作方法,以及树莓派的I2C总线、SPI总线、UART串口、PWM脉宽调制等偏硬件操作的内容; 同时也为读者准备了一些树莓派上常见的服务类型的搭建和配置,包括树莓派推流服务器搭建的方法, 常见数据库MariaDB、PostgreSQL的安装配置操作,MQTT服务器的搭建配置,DHCP服务器的搭建 配置等。此外,还加入了一些比较有趣的实验,例如利用TensorFlow实现对象检测,使用OpenCV制 作一个树莓派扫描仪,或利用OpenCV实现换鼻子的实验,带领读者了解树莓派通过摄像头能够实现 的一些应用。本书为初学者全面入门了解树莓派提供了很好的切入点,使读者可以了解更多树莓派的使用方法 以及操作小技巧。同时,在整体的编程过程中使用了C语言、Python语言及Shell脚本语言等常见语言, 对于拥有此类语言编程经验的用户更友好。希望读者能够在这里找到自己喜欢的实验,并顺利入门树莓派!
作者简介
李伟斌(漂移菌 )目前就职伍艾信息科技(上海)有限公司,首席Linux技术架构师。 主要研究方向为嵌入式 Linux 操作系统的应用及研发。业余时间曾获取中美创客马拉松(上海站)一等奖, Intel IoT 物联网大赛二等奖, 上海国际创客大赛蘑菇云分赛首届脑洞大赛 脑洞大王奖, 上海谷歌Design Sprint Hackathon 优胜奖, Junction 2021 全球黑客大赛 Out of box奖。被朋友誉为树莓派超级爱好者及布道者, 并且兼漂移驴车项目联合创始人角色。
目录
第1章 树莓派简介 1
引言1
1.1 树莓派是什么? 1
1.2 树莓派周边配件 11
1.3 树莓派能做什么? 12
第2章 树莓派入门基础知识 21
2.1 系统选型 21
2.2 新系统下载及烧录 23
2.3 恢复卡制作的操作步骤 24
2.3.1 方法124
2.3.2 方法224
2.4 烧录系统 24
2.5 初始化系统 29
第3章 树莓派GPIO的使用 46
3.1 GPIO的概念及相关库的使用方法 46
3.2 树莓派上使用wiringPi库 47
3.3 如何利用wiringPi优雅地点亮一个
LED灯 51
3.3.1 硬件材料准备51
3.3.2 接线方式51
3.3.3 编写代码测试52
3.4 玩转流水灯和游侠灯 58
3.4.1 流水灯58
3.4.2 游侠灯59
第4章 树莓派中I2C功能的使用 61
4.1 I2C的概念 61
4.2 I2C实战小项目 62
4.2.1 接线方式62
4.2.2 启用I2C配置 63
目 录
IV 树莓派4 与人工智能实战项目
4.2.3 检测Slave设备状态 65
4.2.4 查询寄存器表并简单测试65
4.2.5 编写C语言测试代码 66
4.2.6 编写Python代码进行测试 68
4.2.7 关于Python中的I2C函数 69
4.3 使用I2C协议的其他应用 70
4.3.1 点亮LCD1602液晶屏显示树莓派
的IP地址 70
4.3.2 利用OLED展示树莓派磁盘状态
信息83
第5章 树莓派SPI介绍及应用实例 88
5.1 SPI协议简介 88
5.1.1 SPI协议概述 88
5.1.2 SPI的优缺点 88
5.1.3 采用主-从模式(Master-Slave)的
控制方式89
5.2 树莓派SPI概述 89
5.2.1 引脚和GPIO映射 89
5.2.2 关于SPI的速度 90
5.3 树莓派上启用SPI功能 90
5.3.1 通过raspi-config工具 91
5.3.2 通过编辑/boot/config.txt文件 93
5.3.3 通过图形界面93
5.4 树莓派SPI应用实例 95
5.4.1 检查SPI设备状态 95
5.4.2 准备SPI外设并接入树莓派 95
5.4.3 安装Python库文件 96
5.4.4 编写定制的测试代码并进行测试 97
5.5 让树莓派变身为一个环境检测站 101
5.5.1 BME280模块介绍 102
5.5.2 接线方式103
5.5.3 编写代码获取数据103
5.5.4 总结112
第6章 树莓派UART串口介绍及应用实例 113
6.1 UART简介 113
6.2 树莓派串口说明 114
6.3 在树莓派上配置启用UART 115
6.4 在树莓派上进行串口通信 120
6.4.1 使用Python 语言实现串口
通信 120
6.4.2 通过C语言实现串口通信 123
6.4.3 拓展实例124
6.5 关于树莓派串口别名及切换
硬件串口 126
6.5.1 串口别名126
6.5.2 更换串口端口127
6.6 总结 128
第7章 树莓派PWM介绍及应用实例 129
引言 129 7.1 PWM控制原理 129
目录 V
7.2 树莓派PWM通道信息 130
7.3 wiringPi库的PWM接口介绍 131
7.3.1 硬件PWM 131
7.3.2 软件PWM 132
7.3.3 软件PWM注意事项 133
7.4 PWM应用项目实战 134
7.4.1 呼吸灯效果134
7.4.2 舵机控制138
第8章 树莓派开源网络应用实例 144
引言 144
8.1 树莓派搭建RTMP流媒体服务器 145
8.1.1 安装Nginx及模块145
8.1.2 启用RTMP 148
8.1.3 客户端连接测试151
8.2 树莓派搭建Samba文件服务器 156
8.2.1 什么是Samba文件服务器 156
8.2.2 需要准备的设备156
8.2.3 安装配置Samba服务器 157
8.3 树莓派搭建NFS文件服务器 163
8.3.1 什么是NFS文件服务器 163
8.3.2 需要的设备163
8.3.3 安装配置NFS文件系统 163
8.4 树莓派搭建日志服务器 169
8.4.1 什么是日志服务器169
8.4.2 需要的硬件170
8.4.3 安装rsyslog服务 170
8.4.4 配置rsyslog作为服务器 170
8.4.5 创建新模板171
8.4.6 重启服务并测试172
8.5 树莓派搭建MariaDB数据库
服务器 175
8.5.1 什么是MariaDB 175
8.5.2 MariaDB 和 MySQL 的区别 175
8.5.3 安装MariaDB 176
8.5.4 配置MariaDB 176
8.5.5 创建一个数据库178
8.5.6 添加一张表179
8.5.7 插入几条记录180
8.6 树莓派搭建PostgreSQL数据
库服务器 182
8.6.1 什么是PostgreSQL数据库 182
8.6.2 安装PostgreSQL 182
8.6.3 配置PostgreSQL 182
8.6.4 创建数据库183
8.6.5 常见控制台命令184
8.6.6 基本SQL语句 185
8.7 树莓派搭建Mosquitto MQTT
服务器 186
8.7.1 什么是MQTT服务器 186
8.7.2 安装Mosquitto 服务器 187
8.7.3 检测服务器状态187
8.7.4 在树莓派上测试Mosquitto代理 187
8.7.5 多主机测试189
8.7.6 尝试使用Python的paho-mqtt库 190
8.8 树莓派搭建DHCP服务器 193
8.8.1 什么是DHCP服务器 193
8.8.2 测试环境193
8.8.3 配置1号主机DHCP服务 194
8.8.4 修改DHCP服务的配置 194
VI 树莓派4 与人工智能实战项目
8.8.5 重启服务以生效配置195
8.8.6 开启路由转发195
8.8.7 配置IPtables实现流量路由 196
8.8.8 注意事项196
8.9 总结 197
第9章 树莓派上利用TensorFlow实现对象检测 198
引言 198
9.1 软硬件环境介绍 198
9.1.1 硬件准备198
9.1.2 软件准备199
9.2 操作步骤 199
9.2.1 更新系统及软件仓库 199
9.2.2 创建TensorFlow的工作目录 199
9.2.3 安装TensorFlow的Python库和部分
依赖200
9.2.4 安装OpenCV视觉框架 200
9.2.5 编译安装Protobuf组件201
9.2.6 重启系统203
9.2.7 重新登录系统并设置TensorFlow
目录结构 203
9.2.8 下载TensorFlow模型 204
9.2.9 修改用户初始化配置文件204
9.2.10 利用protoc编译Protocol Buffer
文件 204
9.2.11 下载ssdlite_mobilenet_v2_coco
模型205
9.3 对象检测测试 205
9.3.1 在树莓派上启用摄像头205
9.3.2 下载检测脚本205
9.3.3 接入摄像头206
9.3.4 执行脚本并进行检测206
9.4 总结 208
第10章 树莓派扫描仪—树莓派+OpenCV 209
引言 209
10.1 原理 209
10.2 硬件准备 210
10.3 软件准备 211
10.3.1 软件包版本信息211
10.3.2 查看软件版本的方法211
10.4 配置环境 212
10.4.1 检查网络状态212
10.4.2 更新软件仓库并安装软件212
10.4.3 创建并激活虚拟环境 213
10.4.4 启用摄像头213
10.5 代码调试 215
10.6 应用拓展 219
10.7 总结 221
第11章 AI换鼻子—树莓派+OpenCV 222
引言 222 11.1 AI换鼻子的原理 223
目录 VII
11.2 硬件需求 223
11.3 软件需求 223
11.3.1 Raspbian操作系统 223
11.3.2 Python3 环境 224
11.3.3 virtualenv环境 225
11.3.4 dlib库 226
11.3.5 shape_predictor工具和get_frontal_
face_detector函数 226
11.3.6 预测模型库下载 228
11.4 操作步骤 228
11.4.1 烧录镜像,启动并完成初始化
配置228
11.4.2 启动树莓派232
11.4.3 接入摄像头236
11.4.4 系统初始化环境调试237
11.4.5 树莓派摄像头测试239
11.4.6 编写代码239
11.5 开挖脑洞,发散思维 262
11.6 总结 262
第12章 树莓派通过U盘启动系统 263
引言 263
12.1 硬件需求 263
12.2 前期准备 264
12.3 更新升级系统 264
12.4 更新bootloader 264
12.5 检查启动选项 265
12.6 无卡启动测试 268
12.7 制作USB启动盘 268
引言1
1.1 树莓派是什么? 1
1.2 树莓派周边配件 11
1.3 树莓派能做什么? 12
第2章 树莓派入门基础知识 21
2.1 系统选型 21
2.2 新系统下载及烧录 23
2.3 恢复卡制作的操作步骤 24
2.3.1 方法124
2.3.2 方法224
2.4 烧录系统 24
2.5 初始化系统 29
第3章 树莓派GPIO的使用 46
3.1 GPIO的概念及相关库的使用方法 46
3.2 树莓派上使用wiringPi库 47
3.3 如何利用wiringPi优雅地点亮一个
LED灯 51
3.3.1 硬件材料准备51
3.3.2 接线方式51
3.3.3 编写代码测试52
3.4 玩转流水灯和游侠灯 58
3.4.1 流水灯58
3.4.2 游侠灯59
第4章 树莓派中I2C功能的使用 61
4.1 I2C的概念 61
4.2 I2C实战小项目 62
4.2.1 接线方式62
4.2.2 启用I2C配置 63
目 录
IV 树莓派4 与人工智能实战项目
4.2.3 检测Slave设备状态 65
4.2.4 查询寄存器表并简单测试65
4.2.5 编写C语言测试代码 66
4.2.6 编写Python代码进行测试 68
4.2.7 关于Python中的I2C函数 69
4.3 使用I2C协议的其他应用 70
4.3.1 点亮LCD1602液晶屏显示树莓派
的IP地址 70
4.3.2 利用OLED展示树莓派磁盘状态
信息83
第5章 树莓派SPI介绍及应用实例 88
5.1 SPI协议简介 88
5.1.1 SPI协议概述 88
5.1.2 SPI的优缺点 88
5.1.3 采用主-从模式(Master-Slave)的
控制方式89
5.2 树莓派SPI概述 89
5.2.1 引脚和GPIO映射 89
5.2.2 关于SPI的速度 90
5.3 树莓派上启用SPI功能 90
5.3.1 通过raspi-config工具 91
5.3.2 通过编辑/boot/config.txt文件 93
5.3.3 通过图形界面93
5.4 树莓派SPI应用实例 95
5.4.1 检查SPI设备状态 95
5.4.2 准备SPI外设并接入树莓派 95
5.4.3 安装Python库文件 96
5.4.4 编写定制的测试代码并进行测试 97
5.5 让树莓派变身为一个环境检测站 101
5.5.1 BME280模块介绍 102
5.5.2 接线方式103
5.5.3 编写代码获取数据103
5.5.4 总结112
第6章 树莓派UART串口介绍及应用实例 113
6.1 UART简介 113
6.2 树莓派串口说明 114
6.3 在树莓派上配置启用UART 115
6.4 在树莓派上进行串口通信 120
6.4.1 使用Python 语言实现串口
通信 120
6.4.2 通过C语言实现串口通信 123
6.4.3 拓展实例124
6.5 关于树莓派串口别名及切换
硬件串口 126
6.5.1 串口别名126
6.5.2 更换串口端口127
6.6 总结 128
第7章 树莓派PWM介绍及应用实例 129
引言 129 7.1 PWM控制原理 129
目录 V
7.2 树莓派PWM通道信息 130
7.3 wiringPi库的PWM接口介绍 131
7.3.1 硬件PWM 131
7.3.2 软件PWM 132
7.3.3 软件PWM注意事项 133
7.4 PWM应用项目实战 134
7.4.1 呼吸灯效果134
7.4.2 舵机控制138
第8章 树莓派开源网络应用实例 144
引言 144
8.1 树莓派搭建RTMP流媒体服务器 145
8.1.1 安装Nginx及模块145
8.1.2 启用RTMP 148
8.1.3 客户端连接测试151
8.2 树莓派搭建Samba文件服务器 156
8.2.1 什么是Samba文件服务器 156
8.2.2 需要准备的设备156
8.2.3 安装配置Samba服务器 157
8.3 树莓派搭建NFS文件服务器 163
8.3.1 什么是NFS文件服务器 163
8.3.2 需要的设备163
8.3.3 安装配置NFS文件系统 163
8.4 树莓派搭建日志服务器 169
8.4.1 什么是日志服务器169
8.4.2 需要的硬件170
8.4.3 安装rsyslog服务 170
8.4.4 配置rsyslog作为服务器 170
8.4.5 创建新模板171
8.4.6 重启服务并测试172
8.5 树莓派搭建MariaDB数据库
服务器 175
8.5.1 什么是MariaDB 175
8.5.2 MariaDB 和 MySQL 的区别 175
8.5.3 安装MariaDB 176
8.5.4 配置MariaDB 176
8.5.5 创建一个数据库178
8.5.6 添加一张表179
8.5.7 插入几条记录180
8.6 树莓派搭建PostgreSQL数据
库服务器 182
8.6.1 什么是PostgreSQL数据库 182
8.6.2 安装PostgreSQL 182
8.6.3 配置PostgreSQL 182
8.6.4 创建数据库183
8.6.5 常见控制台命令184
8.6.6 基本SQL语句 185
8.7 树莓派搭建Mosquitto MQTT
服务器 186
8.7.1 什么是MQTT服务器 186
8.7.2 安装Mosquitto 服务器 187
8.7.3 检测服务器状态187
8.7.4 在树莓派上测试Mosquitto代理 187
8.7.5 多主机测试189
8.7.6 尝试使用Python的paho-mqtt库 190
8.8 树莓派搭建DHCP服务器 193
8.8.1 什么是DHCP服务器 193
8.8.2 测试环境193
8.8.3 配置1号主机DHCP服务 194
8.8.4 修改DHCP服务的配置 194
VI 树莓派4 与人工智能实战项目
8.8.5 重启服务以生效配置195
8.8.6 开启路由转发195
8.8.7 配置IPtables实现流量路由 196
8.8.8 注意事项196
8.9 总结 197
第9章 树莓派上利用TensorFlow实现对象检测 198
引言 198
9.1 软硬件环境介绍 198
9.1.1 硬件准备198
9.1.2 软件准备199
9.2 操作步骤 199
9.2.1 更新系统及软件仓库 199
9.2.2 创建TensorFlow的工作目录 199
9.2.3 安装TensorFlow的Python库和部分
依赖200
9.2.4 安装OpenCV视觉框架 200
9.2.5 编译安装Protobuf组件201
9.2.6 重启系统203
9.2.7 重新登录系统并设置TensorFlow
目录结构 203
9.2.8 下载TensorFlow模型 204
9.2.9 修改用户初始化配置文件204
9.2.10 利用protoc编译Protocol Buffer
文件 204
9.2.11 下载ssdlite_mobilenet_v2_coco
模型205
9.3 对象检测测试 205
9.3.1 在树莓派上启用摄像头205
9.3.2 下载检测脚本205
9.3.3 接入摄像头206
9.3.4 执行脚本并进行检测206
9.4 总结 208
第10章 树莓派扫描仪—树莓派+OpenCV 209
引言 209
10.1 原理 209
10.2 硬件准备 210
10.3 软件准备 211
10.3.1 软件包版本信息211
10.3.2 查看软件版本的方法211
10.4 配置环境 212
10.4.1 检查网络状态212
10.4.2 更新软件仓库并安装软件212
10.4.3 创建并激活虚拟环境 213
10.4.4 启用摄像头213
10.5 代码调试 215
10.6 应用拓展 219
10.7 总结 221
第11章 AI换鼻子—树莓派+OpenCV 222
引言 222 11.1 AI换鼻子的原理 223
目录 VII
11.2 硬件需求 223
11.3 软件需求 223
11.3.1 Raspbian操作系统 223
11.3.2 Python3 环境 224
11.3.3 virtualenv环境 225
11.3.4 dlib库 226
11.3.5 shape_predictor工具和get_frontal_
face_detector函数 226
11.3.6 预测模型库下载 228
11.4 操作步骤 228
11.4.1 烧录镜像,启动并完成初始化
配置228
11.4.2 启动树莓派232
11.4.3 接入摄像头236
11.4.4 系统初始化环境调试237
11.4.5 树莓派摄像头测试239
11.4.6 编写代码239
11.5 开挖脑洞,发散思维 262
11.6 总结 262
第12章 树莓派通过U盘启动系统 263
引言 263
12.1 硬件需求 263
12.2 前期准备 264
12.3 更新升级系统 264
12.4 更新bootloader 264
12.5 检查启动选项 265
12.6 无卡启动测试 268
12.7 制作USB启动盘 268
猜您喜欢