微信扫码下载

内容简介

  《Python树莓派编程》将向你展示如何在你新买的、35美元的计算机上通过编程实现一个网络机器人、气象站或是媒体服务器等功能。你将会通过一些简单的实例和有趣的项目学到如何在树莓派上通过Python进行编程。《Python树莓派编程》适合于那些想要在诸如树莓派这样有趣的平台上学习Python并且在学习过程中掌握一些电子技能的读者。虽然我们并不要求有编程基础或者Linux技能,但是如果接触过Linux的话将会有很大帮助。

目录

译者序
前 言
第1章 树莓派简介1
1.1 树莓派的历史2
1.2 探索树莓派5
1.2.1 SD卡5
1.2.2 电源6
1.2.3 HDMI接口6
1.2.4 以太网口和USB接口6
1.2.5 音频和RCA视频插孔7
1.2.6 GPIO引脚7
1.2.7 片上系统7
1.2.8 树莓派同相似设备之间的对比8
1.3 树莓派的硬件需求8
1.3.1 通电8
1.3.2 添加显示器9
1.3.3 添加USB集线器9
1.3.4 使用USB无线网络适配器10
1.4 树莓派操作系统11
1.4.1 格式化SD卡11
1.4.2 使用NOOBS11
1.5 连接外围设备12
1.6 配置树莓派12
1.7 关闭树莓派14
1.8 总结14
第2章 轻松掌握Linux15
2.1 开始使用树莓派的Linux16
2.1.1 Linux文件和文件系统17
2.1.2 root用户与sudo18
2.2 命令18
2.3 练习:在Linux文件系统内进行导航22
2.4 Linux中的shell23
2.5 包管理器24
2.6 文本编辑器25
2.6.1 vim、emacs与nano26
2.6.2 Leafpad29
2.7 总结30
第3章 Python介绍31
3.1 脚本语言与程序设计语言31
3.2 Python语言的理念33
3.3 Python入门34
3.3.1 通过IDLE运行Python34
3.3.2 通过终端运行Python37
3.3.3 通过脚本运行Python37
3.3.4 探究Python的数据类型38
3.4 利用Python进行编程44
3.4.1 if测试45
3.4.2 循环47
3.4.3 函数48
3.4.4 对象和面向对象编程49
3.5 总结50
第4章 电子知识大科普51
4.1 基本电路常识52
4.2 开发所需要的工具53
4.2.1 螺丝刀54
4.2.2 钳子和剥线钳54
4.2.3 钢丝钳55
4.2.4 锉刀55
4.2.5 放大镜灯55
4.2.6 热胶枪56
4.2.7 各类胶水56
4.2.8 万用表56
4.2.9 电源57
4.2.10 实验板57
4.2.11 插线板58
4.2.12 电烙铁59
4.3 一般的安全规则60
4.3.1 认真对待温度60
4.3.2 认真对待锋利的物体60
4.3.3 带安全镜61
4.3.4 准备好灭火器61
4.3.5 在手边放置一个急救包61
4.3.6 在通风的环境下工作62
4.4 整理好你的工作环境62
4.5 福利:焊接技术63
4.6 总结64
第5章 网络机器人65
5.1 机器人礼仪66
5.2 网络的连接67
5.2.1 网络通信协议67
5.2.2 网页格式68
5.2.3 请求举例68
5.3 网络机器人的概念69
5.4 解析网页70
5.5 利用Python模块编码71
5.5.1 使用Mechanize模块71
5.5.2 用BeautifulSoup解析72
5.5.3 利用urllib库下载72
5.6 决定下载的内容73
5.6.1 选择起点73
5.6.2 存储文件74
5.7 编写Python网络机器人74
5.7.1 读取一个字符串并提取所有链接75
5.7.2 寻找并下载文件75
5.7.3 测试网络机器人76
5.7.4 创建目录并实例化一个列表77
5.8 最终代码79
5.9 总结80
第6章 气象站81
6.1 零件购物清单82
6.2 使用I2C协议83
6.3 使用风速计84
6.3.1 构造风速计85
6.3.2 将风速计与树莓派连接87
6.3.3 根据风速纠正的每秒转数88
6.4 连接数字指南针90
6.5 连接温度/湿度传感器92
6.6 连接气压计94
6.7 连接所有部件95
6.8 最终代码97
6.9 总结98
第7章 媒体服务器99
7.1 零件购物清单99
7.2 使用NTFS格式的硬盘100
7.3 安装Samba102
7.3.1 配置Samba103
7.3.2 Linux权限设置105
7.3.3 修复单引号错误106
7.3.4 重新启动Samba服务106
7.4 与Linux/OSX连接107
7.5 Python在哪108
7.6 总结109
第8章 家庭安防系统110
8.1 用于安防的狗111
8.2 用于安防的树莓派111
8.3 使用传感器网络112
8.3.1 了解下拉电阻112
8.3.2 零件购物清单113
8.3.3 以无线方式连接你的家庭网络113
8.3.4 访问GPIO引脚116
8.3.5 设置运动传感器118
8.3.6 设置磁簧开关119
8.3.7 设置压力开关121
8.3.8 连接磁传感器121
8.3.9 设置树莓派的摄像机122
8.3.10 利用树莓派发送短信123
8.3.11 实现回调124
8.4 连接所有的部件124
8.5 最终代码125
8.6 总结126
第9章 猫玩具127
9.1 零件购物清单127
9.2 玩具背后的设计理念128
9.3 创建和使用随机数129
9.4 使用GPIO库130
9.5 控制舵机132
9.6 构建舵机结构134
9.7 构建激光结构135
9.8 将激光连接到舵机上137
9.9 连接运动传感器138
9.10 连接所有的部件140
9.11 最终代码142
9.12 总结143
第10章 无线电遥控飞机144
10.1 零件购物清单145
10.2 将GPS接收器连接至树莓派146
10.3 设置日志文件148
10.4 格式化KML文件149
10.5 使用线程和对象150
10.6 设置自启动152
10.7 连接所有部件153
10.8 最终代码156
10.8.1 飞机飞行程序157
10.8.2 KML转换程序157
10.9 总结158
第11章 气象气球159
11.1 零件购物清单160
11.2 设置GPS接收器160
11.3 存储GPS数据162
11.4 安装PiFM163
11.5 安装festival164
11.6 安装FFMPEG164
11.7 准备树莓派165
11.8 使用线程和对象166
11.9 连接所有部件167
11.10 观察照片结果169
11.11 最终代码170
11.12 总结171
第12章 潜水器172
12.1 零件购物清单173
12.2 访问树莓派的GPIO引脚174
12.3 安装树莓派摄像头模

前言/序言

  Preface 前  言  在2006年,当EbenUpton和其他树莓派基金会的创办人看到大学计算机专业学生的编程状况时,他们感到无比沮丧。在美国,计算机专业的编程课程被缩减为“CS101:如何使用Word程序”和“CS203:优化你的Facebook主页”。他们意识到,不是所有人在上大学之前都学过编程。因此,他们酝酿了一个计划——打造一种小型廉价的计算机,使孩子们可以更加方便地学习编程,就如同昔日的Amiga、Spectrum和Commodore64。随后,他们便开发了一块以ARM处理器为核心的开发板,配有512MB内存并具有视频处理功能的GPU,集成了如USB键盘、鼠标、HDMI输出端口等接口。为了使其更易于编程,他们将Python设定为其主要的编程语言——一种强大且易学的脚本语言。这样,树莓派就诞生了。  多年以前,我在CommodoreVIC20上用BASIC语言编写了我的第一个程序。当时的计算机内存只有5KB,比现如今很多的微处理器的计算能力都要弱,但我仍编写出了一个很有趣的游戏,并利用盒式磁带保存程序的进度。在之后的几年里,我先后使用过不同的计算平台,从Windows3.1到MacintoshOS8,再到几个Linux系统。然而,树莓派的出现为陈旧的计算环境注入了一股新的气息,我为之激动不已。一方面是因为它具有小巧而便宜的特点,另一方面则是因为它易与外界进行交互——这对于那些感兴趣设计物质世界的人而言,是一种莫大的福音。所以当我听到它的发售消息之后,就同亿万的爱好者、黑客和工程师一样,立即对树莓派进行了预订并迫切期盼着它的到来。之后,我便开始用它构建一些东西并一发不可收拾了。  如果你买了树莓派但不知道如何开始,那这《Python树莓派编程》适合你。  如果你买了树莓派但不确定用它做什么,那这《Python树莓派编程》适合你。  如果你正犹豫是否要买树莓派,并思索着:“为什么我要买呢?我又做不出什么很酷的东西”,那毫无疑问,这《Python树莓派编程》更适合你。  这不是一本关于Python语言的教材,也不是一本详细探索树莓派的书。它以一种轻松的方式将你引向这台微型计算机。我希望你读完《Python树莓派编程》后,在进行创新的同时也能清楚地意识到树莓派所能做的一切。  你可以按照《Python树莓派编程》的进度完成各种项目,也可以自由选择一些自己感兴趣的项目。在实践的过程中,我希望你能熟悉Python语言和树莓派(它们能让你走得更远),创建自己的项目,或许还能帮助其他同样对此感兴趣的人。总之,我希望你会喜欢《Python树莓派编程》及书中的项目。因为写作《Python树莓派编程》真的是一种非凡的体验!  好好享受这《Python树莓派编程》吧!  致谢写一《Python树莓派编程》可能是一个人的工作,但绝对少不了别人的帮助。很多人都为这个项目做出了大量贡献,在此,我向他们致以最诚挚的谢意。感谢Kevin保证整件事情顺利进行,感谢AnneMarie理清我想说明的事情,感谢RogerLeBlanc使得这《Python树莓派编程》看起来像是我知道我在做什么。感谢作为技术指导的Chaim。确保了我写下的东西和实际的执行效果一致。并且感谢Michelle,最初能够注意到我。  最后,特别感谢Becky和Reed。这是献给你们的。  TheTranslator抯Words 译 者 序  近年来,随着物联网、可穿戴设备、智能硬件、工业4.0、互联网+等新技术、新概念的出现,涌现出了大量的创客及创客空间。在2015年两会上,李克强总理在政府工作报告中指出要把“大众创业、万众创新”打造成推动中国经济继续前行的“双引擎”之一。  树莓派自问世以来,就以出色的性价比受到众多计算机发烧友和创客的追捧。2016年2月,推出了最新版的树莓派3B型,其搭载了1.2GHz的64位四核处理器(ARMCortex-A531.2GHz64-bitquad-coreARMv8CPU)。在大大提高了处理能力的同时,还增加了802.11b/g/n无线网卡和低功耗蓝牙4.1适配器等无线通信功能。另外,Linux不再独享树莓派。2015年,微软公司在推出Windows10IoTCore之初,树莓派作为ARM平台的代表,首先被支持。  Python语言是一种面向对象的、解释型计算机程序设计语言。自问世以来,Python以其简洁、易学、可扩展性以及丰富的库资源等优势,日益受到设计者的青睐。一些国际知名大学已经采用Python语言讲授程序设计课程,譬如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论。另外,众多开源的科学计算软件包都提供了Python语言的调用接口,譬如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK等等。  《Python树莓派编程》的作者沃尔弗拉姆·多纳特(WolframDonat)是一名经验丰富的计算机工程师,他以工程的视角诠释了一个个工程项目的实现。《Python树莓派编程》有别于其他编程语言类图书,在介绍完基本的软硬件平台后,通过网络机器人、气象站、媒体服务器、家庭安防系统、猫玩具、无线电遥控飞机、气象气球、潜水艇等8个工程项目,介绍了网络通信协议、文件存储、传感器、执行部件等基础知识的编程方法。使读者真正理解了“通过做来学习”的先进理念。在突出实践能力培养的同时,又在每个项目中针对嵌入式系统的各个功能模块给出了相应的基础知识的介绍。另外,原书作者还非常重视工程习惯的培养,在实践过程中给出了一般的安全规则。以译者20多年嵌入式系统教学、工程经验来看,《Python树莓派编程》十分适合作为本科、高职高专各专业的创新课程教材。  《Python树莓派编程》由北京工业大学计算机学院的部分教师翻译,其中简介和第1~4章由韩德强翻译,第5~7章由王众翻译,第7、8章由杨淇善翻译,第9章由吴有仙翻译,第10、11章由张丽艳翻译,第12~14章由王宗侠翻译,《Python树莓派编程》的审校由韩德强完成。  在《Python树莓派编程》的翻译过程中得到了机械工业出版社华章公司的张国强、缪杰两位编辑的大力支持,在此对二位表示由衷的感谢!  限于译者的水平,翻译中难免有错误或不妥之处,真诚希望各位读者批评指正。  韩德强2016年8月于北京工业大学

其他推荐