《Python树莓派开发从入门到精通》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python树莓派进行软件和硬件项目开发需要掌握的技术。全书共分为4篇15章,包括树莓派基础、树莓派使用Python、Linux命令、常用操作、常用服务、GPIO基础、简单硬件、高级硬件、控制电机、OpenCV应用、传感器、扩展板、Arduino使用,以及4个小型软件项目实战和智能小车硬件项目实战。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会树莓派开发的精髓,快速提高开发技能。本书列举了大量的小型实例、综合实例和部分项目案例;所附资源包中有实例源程序及项目源码等;本书的服务网站提供了模块库、案例库、题库、素材库、答疑服务等。
《Python树莓派开发从入门到精通》以入门为主、进阶为辅,提供了从Python树莓派开发入门到编程高手所必需的各项知识。
(1)主流技术,全面解析。本书内容丰富,涵盖Python树莓派开发的方方面面,包括树莓派基础、树莓派使用Python、Linux命令、常用操作和常用服务、PIO、GPS、控制电机、OpenCV、传感器、Arduino应用,以及智能小车硬件项目。一本书教你掌握Python树莓派开发领域的主流核心技术。
(2)循序渐进,实战讲述。本书引领读者按照基础入门核心框架项目实战循序渐进地学习,符合认知规律。
(3)边学边练,学以致用。你得到的不仅仅是一本纸书,而是全套的学习资源。120个应用实例 5个行业项目案例 136集Python零基础扫盲课,边学边练,在实践中提升技能。
(4)精彩栏目,贴心提醒。本书设置了很多注意说明技巧等小栏目,有利于读者在学习过程中更轻松地理解相关知识点及概念,并轻松地掌握个别技术的应用技巧。
(5)在线解答,高效学习。在线答疑QQ及技术支持网站,不定期进行在线直播课程。
在大数据、人工智能应用越来越普遍的今天,Python可以说是当今世界上热门、应用广泛的编程语言之一,在人工智能、爬虫、数据分析、游戏、自动化运维等方面,无处不见其身影。而树莓派作为流行的开发板之一,在其上可以使用Python等多种编程语言进行开发。翻开本书,通过树莓派使用Python开发软件和硬件的大门缓缓打开。
本书内容
本书提供了从Python树莓派入门到编程高手所必需的各类知识,共分为4篇。
第1篇:基础知识。本篇主要包括树莓派基础、树莓派使用Python、Linux命令、常用操作和常用服务等内容。通过本篇的学习,可以使读者快速掌握树莓派的基础知识,为以后编程奠定坚实的基础。
第2篇:核心技术。本篇介绍树莓派中GPIO相关基础知识,并使用部分简单和高级的硬件,后还将介绍常见控制电机的控制方法和OpenCV库在树莓派中的安装方法与简单应用。学习完本篇,即可控制一些常见的硬件,以此来实现一个简单的项目需求。
第3篇:高级应用。本篇介绍树莓派常用的各类传感器和扩展板,以及配合Arduino的使用方法。学完这一部分,可以利用各类传感器、扩展板和Arduino来实现一些较为复杂的项目。
第4篇:项目实战。本篇使用树莓派来完成一些常用的软件项目,如家居控制、智能音箱、Android TV和个人博客网站搭建。同时,也使用树莓派制作了类似智能小车的硬件项目。通过本篇的学习,可以使用树莓派研发一些高级的应用,并加深对软件和硬件项目的实践开发流程的理解。
本书特点
由浅入深,循序渐进:本书以初、中级程序员为对象,采用图文结合、循序渐进的编排方式,从树莓派每个硬件介绍和系统烧录,到树莓派的核心技术应用,后通过多个完整软件和硬件实战项目,对树莓派开发进行详细讲解,帮助读者快速掌握树莓派开发技术,全面提升开发经验。
实例典型,轻松易学:本书实例丰富,提供了120个应用实例,读者可边学边练。另外,为了便于读者阅读程序代码,快速学习编程技能,书中为重要代码提供了注释。
项目实战,积累经验:本书通过完整的实战项目,讲解实际项目的完整开发过程,带领读者亲身体验开发项目的全过程,积累项目经验。
精彩栏目,贴心提醒:本书根据学习需要使用了很多注意说明技巧等小栏目,可以让读者在学习过程中更轻松地理解相关知识点及概念,并轻松地掌握个别技术的应用技巧。
读者对象
初学编程的自学者、编程爱好者、大中专院校的老师和学生、相关培训机构的老师和学员、毕业设计的学生、初中级程序开发人员、程序测试及维护人员、参加实习的菜鸟程序员。
读者服务
本书配套的学习资源,读者可登录清华大学出版社网站,在对应图书页面下获取其下载方式。读者也可扫描图书封底的文泉云盘二维码,获取其下载方式。
致读者
感谢您购买本书,希望本书能成为您编程路上的领航者。
零门槛学编程,一切皆有可能。
祝读书快乐!
明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获全行业优秀畅销品种全国高校出版社优秀畅销书等奖项,多个品种长期位居同类图书销售排行榜的前列。
第1篇 基础知识
第1章 树莓派基础 2
1.1 树莓派简介 2
1.1.1 起源 2
1.1.2 介绍 3
1.1.3 系统 4
1.1.4 应用 4
1.2 烧录系统 4
1.2.1 电源 5
1.2.2 显示器 5
1.2.3 TF内存卡 6
1.2.4 键盘和鼠标 7
1.2.5 可选设备 7
1.2.6 安装系统 8
1.2.7 无显示器安装系统 9
1.3 小结 11
第2章 树莓派使用Python 12
2.1 树莓派使用 12
2.1.1 Raspberry Pi OS简介 12
2.1.2 使用LXDE 12
2.1.3 使用终端 14
2.1.4 使用SSH 14
2.1.5 使用VNC 15
2.1.6 中文输入法 17
2.2 安装Python 17
2.2.1 安装Python 18
2.2.2 Python解释器 19
2.2.3 使用Thonny 19
2.3 小结 20
第3章 Linux命令 21
3.1 系统管理 21
3.1.1 用户管理 21
3.1.2 进程和服务管理 22
3.1.3 系统重启和关机 26
3.2 文件管理 27
3.2.1 创建和删除 27
3.2.2 目录切换 28
3.2.3 权限设置 29
3.2.4 查找 30
3.3 软件管理 30
3.3.1 软件安装 31
3.3.2 软件升级 31
3.3.3 软件搜索 31
3.3.4 软件卸载 32
3.4 性能监控 32
3.4.1 使用命令查看 32
3.4.2 使用脚本查看 33
3.5 小结 35
第4章 常用操作 36
4.1 树莓派换源 36
4.1.1 查看系统版本 36
4.1.2 更换系统源 37
4.1.3 更换pip源 38
4.2 文件存储 38
4.2.1 FTP服务 39
4.2.2 文件共享 40
4.3 系统备份 43
4.3.1 全卡备份 43
4.3.2 压缩备份 44
4.4 小结 45
第5章 常用服务 46
5.1 远程监控 46
5.2 Web技术 48
5.2.1 nginx 48
5.2.2 内网穿透 49
5.2.3 Aria2 51
5.2.4 NTP 55
5.3 MariaDB 57
5.4 小结 60
第2篇 核心技术
第6章 GPIO基础 62
6.1 GPIO简介 62
6.1.1 GPIO定义 62
6.1.2 GPIO引脚布局 63
6.2 连接GPIO 66
6.2.1 直接连接 66
6.2.2 使用T形扩展板 67
6.2.3 使用面包板 67
6.3 使用RPi.GPIO模块 68
6.3.1 基本用法 68
6.3.2 模块的输入 70
6.3.3 脉冲宽度调制 72
6.4 控制GPIO输出 74
6.4.1 硬件连接 74
6.4.2 测试GPIO输出 75
6.5 检测GPIO输入 77
6.5.1 硬件连接 77
6.5.2 下拉电阻 78
6.5.3 上拉电阻 79
6.5.4 反应测试 81
6.6 拓展GPIO 83
6.6.1 SPI通信协议 83
6.6.2 I2C通信协议 88
6.6.3 串口通信协议 90
6.7 小结 90
第7章 简单硬件 91
7.1 LED 91
7.1.1 控制亮度 91
7.1.2 改变颜色 92
7.1.3 RGB-LED灯条 95
7.1.4 LED矩阵 98
7.1.5 使用OLED 102
7.2 蜂鸣器 103
7.2.1 有源蜂鸣器 104
7.2.2 无源蜂鸣器 105
7.3 实时时钟 108
7.4 小结 111
第8章 高级硬件 112
8.1 GPS 112
8.1.1 连接GPS模块 112
8.1.2 使用Python读取数据 113
8.2 供电设备 116
8.2.1 锂电池 116
8.2.2 不间断电源 117
8.2.3 太阳能电池板 118
8.3 数字键盘 119
8.4 指纹识别 123
8.5 麦克风阵列 124
8.6 小结 128
第9章 控制电机 129
9.1 直流电机 129
9.1.1 直流电机简介 129
9.1.2 驱动直流电机 130
9.1.3 控制方向 132
9.1.4 控制转速 133
9.2 伺服电机 135
9.2.1 伺服电机简介 135
9.2.2 控制伺服电机 136
9.2.3 控制多台伺服电机 137
9.3 步进电机 139
9.3.1 步进电机简介 139
9.3.2 单极步进电机 140
9.3.3 双极步进电机 142
9.4 小结 147
第10章 OpenCV应用 148
10.1 OpenCV基础 148
10.1.1 OpenCV简介 148
10.1.2 树莓派安装OpenCV 149
10.1.3 图像处理过程 156
10.2 使用各类摄像头 157
10.2.1 CSI摄像头 157
10.2.2 USB摄像头 160
10.3 图像基础操作 161
10.3.1 载入和显示图像 162
10.3.2 输出灰度图像 163
10.3.3 绘图 164
10.4 简单的图像识别 166
10.4.1 数字识别 166
10.4.2 英文识别 168
10.4.3 人脸识别 169
10.5 小 结 171
第3篇 高级应用
第11章 传感器 174
11.1 气体传感器 174
11.1.1 二氧化碳传感器 174
11.1.2 MQ系列传感器 176
11.2 温度、湿度和气压传感器 179
11.2.1 温度传感器 179
11.2.2 湿度传感器 181
11.2.3 气压传感器 183
11.3 电阻式传感器 185
11.3.1 热敏电阻 185
11.3.2 光敏电阻 187
11.4 声波传感器 189
11.4.1 声音传感器DO模块 189
11.4.2 声音传感器AO模块 191
11.4.3 超声波传感器 193
11.5 光传感器 196
11.5.1 光照传感器 196
11.5.2 红外传感器 198
11.5.3 紫外传感器 199
11.5.4 激光传感器 201
11.5.5 颜色传感器 203
11.5.6 火焰传感器 204
11.6 力传感器 208
11.6.1 压力传感器 208
11.6.2 震动传感器 211
11.6.3 电子罗盘传感器 213
11.6.4 角速度和加速度传感器 215
11.6.5 霍尔传感器 219
11.7 小结 221
第12章 扩展板 222
12.1 温控风扇 222
12.1.1 温控风扇简介 222
12.1.2 温控风扇使用方法 223
12.1.3 开机自启 223
12.2 电源管理 224
12.2.1 X735扩展板简介 224
12.2.2 X735使用方法 225
12.2.3 脚本安装 226
12.3 存储扩展 227
12.3.1 X872存储扩展板简介 227
12.3.2 X872和X735安装方法 228
12.4 Sense Hat 228
12.4.1 Sense Hat简介 228
12.4.2 控制LED 229
12.4.3 使用传感器 232
12.4.4 控制操纵杆 233
12.4.5 乒乓游戏 235
12.5 无线通信 236
12.5.1 无线通信简介 237
12.5.2 网络连接 238
12.5.3 拨打电话 240
12.5.4 收发短信 242
12.5.5 GPS定位 244
12.6 模数转换 246
12.6.1 模数转换扩展板简介 246
12.6.2 模拟信号转数字信号 248
12.6.3 数字信号转模拟信号 250
12.7 接口扩展 251
12.7.1 GPIO扩展 252
12.7.2 面包板扩展 252
12.7.3 USB扩展 253
12.7.4 串口扩展 254
12.8 以太网供电 257
12.8.1 POE扩展板简介 257
12.8.2 POE扩展板使用方法 257
12.9 继电器 258
12.9.1 继电器扩展板简介 258
12.9.2 继电器扩展板使用方法 259
12.10 小结 261
第13章 Arduino使用 262
13.1 Arduino基本情况 262
13.1.1 Arduino简介 262
13.1.2 Arduino的特点 262
13.1.3 Arduino版本 263
13.1.4 Arduino引脚 265
13.2 Arduino应用 266
13.2.1 IDE工具 266
13.2.2 点亮LED 268
13.2.3 Arduino语言 269
13.3 基础函数库 270
13.3.1 I/O函数 270
13.3.2 字符函数 273
13.3.3 数学库 278
13.4 进阶函数库 282
13.4.1 脉冲宽度调制 283
13.4.2 随机数 283
13.4.3 中断 284
13.4.4 串口通信 285
13.4.5 I2C通信 287
13.4.6 串行外设接口 290
13.5 与树莓派通信 292
13.5.1 树莓派安装Arduino IDE 292
13.5.2 通过USB进行通信 293
13.5.3 通过I2C进行通信 295
13.6 使用Python控制Arduino 297
13.6.1 使用PyFirmata简单控制Arduino 298
13.6.2 控制Arduino的数字输出 299
13.6.3 控制Arduino的PWM输出 300
13.6.4 读取Arduino的数字输入 301
13.6.5 读取Arduino的模拟输入 303
13.7 小结 304
第4篇 项目实战
第14章 项目实践 306
14.1 家居控制 306
14.1.1 Home Assistant安装 306
14.1.2 命令行基础操作 309
14.1.3 基础配置 312
14.1.4 接入设备 314
14.1.5 绑定微信小程序 316
14.1.6 安装Hass.io组件 317
14.2 智能音箱 319
14.2.1 wukong-robot安装 319
14.2.2 更新唤醒词 321
14.3 Android TV 325
14.3.1 Android TV简介 325
14.3.2 安装方法 326
14.4 个人博客网站 328
14.4.1 安装依赖 328
14.4.2 数据库配置 329
14.4.3 Gunicorn配置 331
14.4.4 Nginx配置 332
14.4.5 Supervisor配置 333
14.4.6 内网穿透 334
14.5 小结 334
第15章 智能小车 335
15.1 开发准备 335
15.1.1 需求分析 335
15.1.2 开发环境 335
15.1.3 硬件清单 336
15.1.4 项目预览 337
15.2 硬件安装 338
15.2.1 底盘 338
15.2.2 循迹模块 339
15.2.3 电池 341
15.2.4 主板 342
15.2.5 转接板 343
15.2.6 电压表 344
15.2.7 红外模块 345
15.2.8 超声波模块 345
15.2.9 面包板 347
15.2.10 云台 347
15.2.11 连接底层板和顶层板 348
15.2.12 接线 349
15.3 烧录镜像 350
15.4 控制实验 351
15.4.1 控制蜂鸣器 351
15.4.2 按键检测 353
15.4.3 实现基本运动 354
15.4.4 自动循迹 358
15.4.5 自动避障 361
15.4.6 超声单方向避障 365
15.4.7 超声多方向避障 368
15.4.8 红外控制 373
15.4.9 WIFI控制 377
15.5 小结 378