
内容简介
本书是对树莓派开发的内容进行全面升级之后的第 3 版,囊括丰富的实践示例,详细讲解树莓派的配置与管理、网络连接、操作系统及软件,以及使用Python进行树莓派开发的各项技巧,包括有关Python编程的基础知识、列表与字典、Python高级特性。同时,本书还涉及机器视觉、硬件基础、控制硬件、电机、数字输入、传感器、显示设备、音频设备、物联网、家庭自动化、Arduino等内容。
本书适合程序员、计算机软硬件爱好者,以及对树莓派感兴趣的读者阅读,也适合作为树莓派相关实践课程的指导书。
作者简介
西蒙·蒙克博士(Dr. Simon Monk)已经撰写了很多关于电子学和开源硬件的图书,他还为MonkMakes公司设计产品,这是他与妻子Linda共同经营的一家公司。同时,他还是移动软件公司Momote Ltd.的联合创始人,并拥有软件工程博士学位以及控制论和计算机科学的学士学位。
目录
第3版前言1第1章配置与管理5
1.0引言5
1.1选择树莓派型号5
1.2装配系统8
1.3封装树莓派10
1.4选择电源11
1.5选择操作系统13
1.6 通过NOOBS刷写microSD卡14
1.7在不借助NOOBS的情况下安装操作系统17
1.8使用PiBakery配置和刷写SD卡18
1.9使用PiBakery配置headless模式的树莓派20
1.10从真正的硬盘或U盘启动22
1.11连接DVI或VGA显示器24
1.12使用复合视频显示器/电视24
1.13调整显示器中的图像尺寸26
1.14优化性能27
1.15修改密码29
1.16关闭树莓派30
1.17为树莓派安装摄像头模块32
1.18使用蓝牙设备34
第2章网络连接36
2.0引言36
2.1连接有线网络36
2.2 查看自己的IP地址37
2.3 配置静态IP地址39
2.4 为树莓派配置网络名称42
2.5 配置无线网络连接44
2.6 使用控制台线联网46
2.7 利用SSH远程控制树莓派48
2.8 利用VNC远程控制树莓派50
2.9 利用RDP远程控制树莓派52
2.10 在Mac网络中实现文件共享53
2.11 将树莓派用作网络附接存储系统55
2.12 网络打印58
第3章操作系统60
3.0 引言60
3.1 通过图形界面处理文件60
3.2将文件复制到U盘中61
3.3 启动一个终端会话63
3.4 利用终端浏览文件系统64
3.5 复制文件或文件夹66
3.6 重命名文件和文件夹67
3.7 编辑文件68
3.8 查看文件内容70
3.9 在不借助编辑器的情况下创建文件70
3.10 创建目录71
3.11 删除文件或目录71
3.12 以超级用户权限执行任务72
3.13 理解文件权限73
3.14 修改文件的权限75
3.15 修改文件的属主76
3.16 屏幕截图76
3.17 利用apt-get安装软件77
3.18 删除利用apt-get安装的软件78
3.19 利用Pip安装Python库79
3.20 通过命令行获取文件79
3.21 利用Git获取源代码80
3.22获取本书的随附代码82
3.23 在系统启动时自动运行程序或脚本85
3.24 让程序或脚本作为服务自动运行85
3.25 定期自动运行程序或脚本87
3.26 搜索功能88
3.27 使用命令行历史记录功能89
3.28监视处理器活动90
3.29文件压缩92
3.30列出已连接的USB设备93
3.31将输出从命令行重定向到文件93
3.32连接文件94
3.33使用管道94
3.34不将输出结果显示到终端95
3.35在后台运行程序96
3.36创建命令别名96
3.37设置日期和时间97
3.38查看SD卡剩余存储空间98
3.39检查操作系统版本98
3.40更新Raspbian操作系统99
第4章软件101
4.0 引言101
4.1 搭建媒体中心101
4.2 安装办公软件102
4.3 打造网络摄像头服务器103
4.4 运行老式游戏控制台模拟器105
4.5 运行树莓派版Minecraft107
4.6 树莓派无线电发射器107
4.7编辑位图109
4.8编辑矢量图110
4.9 互联网广播111
第5章Python入门113
5.0 引言113
5.1 在Python2和Python3之间做出选择113
5.2使用Mu编辑Python程序114
5.3 使用Python控制台117
5.4 利用终端运行Python程序118
5.5 为值(变量)命名119
5.6 显示输出结果120
5.7 读取用户的输入120
5.8 算术运算121
5.9 创建字符串122
5.10 连接(合并)字符串122
5.11 将数字转换为字符串123
5.12 将字符串转换为数字124
5.13 确定字符串的长度125
5.14 确定某字符串在另一个字符串中的位置125
5.15 截取部分字符串126
5.16 使用字符串替换另一个字符串中的内容127
5.17 字符串的大小写转换127
5.18 根据条件运行命令128
5.19 值的比较129
5.20 逻辑运算符130
5.21 将指令重复执行特定次数131
5.22 重复执行指令直到特定条件改变为止132
5.23 跳出循环语句132
5.24 定义Python函数133
第6章Python中的列表与字典135
6.0 引言135
6.1 创建列表135
6.2 访问列表元素136
6.3 确定列表长度136
6.4 为列表添加元素137
6.5 删除列表元素138
6.6 通过解析字符串创建列表139
6.7 遍历列表139
6.8 枚举列表140
6.9 列表排序141
6.10 分割列表142
6.11 将函数应用于列表142
6.12 创建字典143
6.13 访问字典144
6.14 删除字典元素145
6.15 遍历字典146
第7章Python高级特性147
7.0引言147
7.1 格式化数字147
7.2 格式化时间和日期148
7.3 返回多个值149
7.4 定义类150
7.5 定义方法151
7.6 继承152
7.7 向文件中写入内容153
7.8 读文件154
7.9 序列化155
7.10 异常处理156
7.11 使用模块157
7.12 随机数158
7.13 利用Python发送Web请求160
7.14 Python的命令行参数160
7.15 从Python运行Linux命令161
7.16 从Python发送电子邮件162
7.17 利用Python编写简单Web服务器163
7.18 让Python无所事事164
7.19 同时进行多件事情165
7.20 将Python应用于树莓派版Minecraft166
7.21解析JSON168
7.22创建用户界面169
7.23使用正则表达式在文本中搜索171
7.24使用正则表达式来验证数据输入173
7.25使用正则表达式抓取网页174
第8章机器视觉176
8.0引言176
8.1 安装SimpleCV176
8.2 为机器视觉配置USB摄像头177
8.3 将树莓派的摄像头模块用于机器视觉179
8.4 数硬币179
8.5 人脸检测182
8.6 运动检测184
8.7 光学字符识别186
第9章硬件基础187
9.0 引言187
9.1 GPIO连接器使用说明187
9.2 使用GPIO接口时树莓派的安全保护189
9.3 配置I2C190
9.4使用I2C工具191
9.5 配置SPI193
9.6 安装PySerial以便通过Python访问串口194
9.7安装Minicom以检测串口194
9.8 使用带有跳线的面包板195
9.9 使用树莓派的排线连接面包板196
9.10 使用树莓派Squid198
9.11 使用RaspberrySquid按钮199
9.12 利用两个电阻器将5V信号转换为3.3V200
9.13 利用电平转换模块将5V信号转换为3.3V201
9.14 利用电池为树莓派供电202
9.15 利用锂电池为树莓派供电203
9.16 SenseHAT入门指南204
9.17 ExplorerHATPro入门指南205
9.18 RasPiRobotBoard入门指南207
9.19 使用PiPlate原型板208
9.20 制作树莓派扩展板211
9.21 树莓派Zero与W型树莓派Zero213
第10章控制硬件215
10.0引言215
10.1 连接LED215
10.2 让GPIO引脚进入安全状态218
10.3 控制LED的亮度218
10.4 利用晶体管开关大功率直流设备220
10.5 使用继电器控制大功率设备的开关222
10.6 控制高压交流设备224
10.7用Android手机和蓝牙控制硬件225
10.8 编写用于控制开关的用户界面228
10.9 编写控制LED和电机的PWM功率的用户界面229
10.10 改变RGBLED的颜色230
10.11 将模拟仪表用作显示器232
第11章电机235
11.0 引言235
11.1 控制伺服电机235
11.2 精确控制伺服电机239
11.3 精确控制多台伺服电机241
11.4 控制直流电机的速度243
11.5 控制直流电机的方向244
11.6 使用单极步进电机247
11.7 使用双极步进电机251
11.8 利用步进电机HAT驱动双极步进电机252
11.9 使用RasPiRobotBoard驱动双极步进电机253
11.10 打造一款简单的机器人小车255
第12章数字输入258
12.0引言258
12.1 连接按钮开关258
12.2 通过按钮开关切换开关状态261
12.3 使用双位拨动开关或滑动开关262
12.4 使用三位拨动开关263
12.5 按钮去抖265
12.6 使用外部上拉电阻器267
12.7 使用旋转(正交)编码器268
12.8 使用数字键盘271
12.9 检测移动273
12.10 为树莓派添加GPS模块275
12.11 拦截按键278
12.12 拦截鼠标移动279
12.13 使用实时时钟模块280
12.14为树莓派提供重启按钮283
第13章传感器286
13.0引言286
13.1使用电阻式传感器286
13.2测量亮度289
13.3利用热敏电阻器测量温度290
13.4检测甲烷292
13.5测量二氧化碳浓度294
13.6测量电压296
13.7为测量而降低电压298
13.8使用电阻式传感器与ADC300
13.9使用ADC测量温度301
13.10测量树莓派的CPU温度303
13.11利用SenseHAT测量温度、湿度和气压304
13.12利用数字传感器测量温度306
13.13利用MMA8452Q模块测量加速度308
13.14使用SenseHAT检测磁北312
13.15使用SenseHAT的惯性管理单元313
13.16利用簧片开关检测磁场314
13.17利用SenseHAT感应磁场315
13.18测量距离316
13.19使用飞行时间传感器测量距离318
13.20电容式触摸传感技术320
13.21用RFID读写器读取智能卡322
13.22显示传感器的值325
13.23利用USB闪存驱动器记录日志326
第14章显示设备328
14.0引言328
14.1 使用四位LED显示设备328
14.2 在I2CLED矩阵上面显示消息330
14.3 使用SenseHATLED矩阵显示器332
14.4在AlphanumericLCDHAT上显示消息333
14.5使用OLED图形显示器335
14.6 使用可寻址的RGBLED灯条337
14.7使用PimoroniUnicornHAT340
14.8使用ePaper显示屏341
第15章音频设备343
15.0引言343
15.1连接一个扬声器343
15.2控制声音的输出位置345
15.3通过命令行播放声音346
15.4通过Python程序播放声音346
15.5使用USB麦克风347
15.6播放蜂鸣声349
第16章物联网352
16.0引言352
16.1 使用Web接口控制GPIO输出352
16.2 在网页上显示传感器读数356
16.3Node-RED入门358
16.4使用IFTTT发送电子邮件及其他通知361
16.5 利用ThingSpeak发送推文364
16.6 CheerLights366
16.7向ThingSpeak发送传感器数据368
16.8 使用Dweet和IFTTT响应推文370
第17章家庭自动化373
17.0引言373
17.1通过Mosquitto将树莓派打造成MQTT代理373
17.2组合使用Node-RED与MQTT服务器376
17.3刷写SonoffWi-Fi智能开关,使其适用于MQTT380
17.4配置SonoffWi-Fi智能开关385
17.5通过MQTT使用Sonoff网络开关387
17.6利用Node-RED制作Sonoff闪烁开关389
17.7Node-REDDashboard扩展391
17.8基于Node-RED的预定事件394
17.9通过WemosD1发布MQTT消息395
17.10在Node-RED中使用WemosD1398
第18章Arduino与树莓派400
18.0 引言400
18.1 通过树莓派对Arduino进行编程401
18.2 利用SerialMonitor与Arduino进行通信402
18.3 配置PyFirmata以便通过树莓派来控制Arduino404
18.4通过树莓派对Arduino的数字输出进行写操作406
18.5 使用PyFirmata与TTL串口407
18.6 使用PyFirmata读取Arduino的数字输入409
18.7 利用PyFirmata读取Arduino的模拟输入411
18.8 模拟输出(PWM)与PyFirmata412
18.9 利用PyFirmata控制伺服电机414
18.10 在树莓派上使用小型Arduino415
18.11使用支持Wi-Fi的小型Arduino兼容系统(ESP8266)416
附录A配件与供应商419
附录B树莓派引脚426
······
最后修改:2026 年 01 月 23 日
© 允许规范转载
