树莓派开发实战(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-10-07 21:41:41

点击下载

作者:[英]Simon Monk 蒙克

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

树莓派开发实战(第2版)

树莓派开发实战(第2版)试读:

内容提要

树莓派(Raspberry Pi)是一款基于Linux系统的、只有一张信用卡大小的卡片式计算机。研发树莓派的最初目的是通过低价硬件和自由软件来推动学校的基础计算机学科教育,但很快树莓派就得到计算机和硬件爱好者的青睐;他们用它学习编程,并创造出各种各样新奇的、风靡一时的软硬件应用。

本书由多产作家Simon Monk编写,是将内容进行全面升级之后的第2版,囊括了丰富的实践示例,详细讲解了树莓派的配置与管理、网络连接、操作系统及软件。另外,本书还介绍了使用Python进行树莓派开发的各项技巧,书中介绍了有关Python编程的基础知识、列表与字典、Python高级特性。同时,本书还介绍了有关机器视觉、硬件基础、控制硬件、电机、数字输入、传感器、显示设备、物联网及Arduino等相关知识。

本书适合程序员和计算机软、硬件爱好者,以及对树莓派感兴趣的读者阅读,也适合作为树莓派相关实践课程的指导用书。

致谢

与往常一样,我要感谢妻子Linda的耐心和支持。

我还要感谢技术审校者Duncan Amos敏锐的洞察力、幽默善良的品格以及杰出的建议,这些无疑对本书做出了巨大的贡献。

同时,我还要感谢O'Reilly团队的所有成员,尤其是我在剑桥的办公室遇到的那些人们,在我去贵公司参观的时候给予了我热情的款待,当然还要感谢Nan Reinhardt不辞劳苦的编辑工作。

第2版前言

自从2011年诞生以来,树莓派已经成为基于Linux的低成本电脑和嵌入式计算平台这两个领域中的重要角色。同时,也受到了教育工作者和业余爱好者们的一致好评。

自从本书第1版问世以来,树莓派的销售量已超过了几百万台,同时还出现了许多新型号的树莓派。某些型号,比如B+、A+和B+型树莓派2等,还对该设备的规范进行了改进,出现了具有4核处理器的树莓派2和树莓派计算模块,即可以把树莓派作为一个插件式电路板用作更大系统的零部件。

针对出现的各种新型树莓派以及Raspbian操作系统的各种变化和改进,本书第2版进行了全面的升级。

此次改版,本书新增加了两章,其中有一章是关于机器视觉的,另一章是介绍利用树莓派建立物联网项目的。

本书内容经过了精心编排,你既可以像阅读常规图书一样地进行线性阅读,也可以随机查阅各种示例。同时,你还可以通过目录或索引查找自己感兴趣的内容,然后进行跳跃式的阅读。如果你所阅读的内容涉及其他章节,那么会给出相应的提示,以便于你查阅有关内容。这与常见的菜谱不同,它们的做法是首先介绍一系列调味料,然后才会介绍烹饪方法。

树莓派的世界日新月异。因为树莓派有一个活跃的大型社区,所以新型的接口板和软件库会源源不断地涌现。本书除了提供大量特定接口板和软件的使用示例之外,还提供了相应的基础理论,以便帮助读者更透彻地理解如何利用树莓派生态系统中不断发展的各种新技术。

如你所料,本书提供了大量示例代码(大部分为Python程序)。这些程序全部都是开源的,并且可以从GitHub下载。你可以从本书网站(http://www.raspberrypicookbook.com)上面找到这些代码的下载链接。

对于大部分基于软件的示例而言,你所需要的只是一台树莓派而已。我建议你使用树莓派2或者树莓派3。对于某些需要读者自己动手制作与树莓派交互的硬件的示例来说,我会尽量使用现成的模块、免焊面包板和跳线,以避免焊接工作。

如果你希望将基于面包板的项目制作得更加经久耐用,我建议你使用布局与面包板一致但是面积只有其一半的原型板,这些原型板在Adafruit上面有售,因为基于原型板的设计能够轻松转换为焊接式的解决方案。

本书排版约定

本书使用了下列排版约定:

斜体用于指示新术语、URL、电子邮件地址、文件名和文件扩展名。

等宽字体(Constant width)

用于表示程序清单,以及在正文中引用的程序元素,例如变量、函数名、数据库、数据类型、环境变量、语句和关键字等。

等宽粗体(Constant width bold)

表示应该由用户输入的命令或其他文本。

等宽斜体(Constant width italic)

表示应该由用户输入的值或根据上下文确定的值替换的文本。该图标表示一个技巧、建议或一般性注释。 该图标表示一个警告或警示。 该图标提示你观看与本节内容相关的视频。

示例代码的用法

本书的补充材料(示例代码、练习等)都可以从http://www.raspberrypicookbook.com下载。

本书提供源代码的目的是帮你快速完成工作。一般情况下,你可以在自己的程序或文档中使用本书中的代码,而非复制书中很大一部分的代码,就不必取得我们的许可。例如,当你在编写程序时,用到了本书中的几个代码片段,这不必取得我们的许可。但若将O’reilly图书中的代码制作成光盘并进行出售或传播,则需获得我们的许可。引用示例代码或书中内容来解答问题无需许可。将书中很大一部分的示例代码用于你个人的产品文档,这需要我们的许可。

如果你引用了本书的内容并标明版权归属声明,我们对此表示感谢,但这不是必需的。版权归属声明通常包括:标题、作者、出版社和ISBN号,例如:“Raspberry Pi Cookbook,Second Edition , by Simon Monk(O’eilly). Copyright 2016 Simon Monk, 978-1-491-93910-9”。

如果你认为你对示例代码的使用已经超出上述范围,或者你对是否需要获得示例代码的授权还不清楚,请随时联系我们:permissions@oreilly.com。

Safari图书在线

Safari图书在线是一种按需数字化图书馆。它提供的专

业内容都来自科技和商业领域的世界顶级作者,这些内容同

时提供书籍和视频形式。

技术专家、软件开发人员、Web设计师、商业人士和创意专家等,在开展调研、解决问题、学习和认证培训时,都将Safari 图书在线视作获取资料的首选渠道。

对于组织团体、政府机构、教育机构和个人,Safari图书在线提供各种产品组合和灵活的定价策略。

订阅者可以通过一个功能完备的数据库检索系统访问O’Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology以及其他上百家出版社的上千本图书、培训视频和正式出版之前的书稿。如想了解更多关于Safari图书在线的内容,请在线访问。

联系我们

美国:

O’Reilly Media,Inc.

1005 Gravenstein Highway North

Sebastopol,CA 95472

中国:

北京市西城区西直门南大街2号成铭大厦C座807室(100035)

奥莱利技术咨询(北京)有限公司

作者简介

Simon Monk博士(英国普雷斯顿)拥有控制论和计算机科学本科学位以及软件工程博士学位。Simon在回归工业界之前,曾经从事多年的学术研究工作,并与人合作创立了移动软件公司Momote Ltd。

目前,Simon是一位职业作家,撰写包括树莓派和Arduino在内的各种开源硬件方面的作品,以及多部通用电子方面的图书。

若想获得Simon著作方面的更多信息,请访问http://www.simonmonk.org网站,或者在Twitter上面关注@simonmonk2。

封面简介

本书封面上面的动物为欧亚雀鹰(学名:Accipiter nisus),又称为北部雀鹰,或简称雀鹰。这种小型猛禽遍布于整个东半球。成年雄鸟上体羽毛呈暗灰色,下体有红褐色横斑。雌鸟及幼鸟通体呈棕色,并且下体有棕色条纹。雌鸟个体要比雄鸟大25%。

雀鹰专门捕食林地鸟,但是人们发现,有时它也会追捕城镇中的庭院鸟类。雄性雀鹰喜欢捕猎小型鸟类,例如山雀、雀和麻雀;雌性雀鹰则喜欢捕食鸠鸽类和鹑鸡类,并且能够猎杀体重达到或超过18盎司(500克)以上的鸟类。

欧亚雀鹰的繁育鸟巢长达60厘米(约2英尺),通常由树枝筑成。筑巢之后,雌鸟会产下4枚或5枚淡蓝色且带有棕色条纹的蛋。孵化成功与否取决于雌鸟是否能够维持一个较大的体重,雄鸟会为它的伴侣提供食物。孵化33天之后,雏鸟就会破壳而出,再过24到28天,它们就会长出羽毛。

幼鸟在第一年的成活率只有34%。之后,它们的成活率会提高两倍,成年雀鹰的年度成活率为69%。这些鸟类通常的寿命为4年。在死亡率方面,雄性幼鸟的死亡率一般高于雌性幼鸟的死亡率。尽管在第二次世界大战之后,雀鹰的数量急剧减少,但是它们仍然是欧洲大陆上最常见的猛禽。在播种前对种子施用有机氯杀虫剂能够导致雀鹰致残,甚至死亡。这些化学药物残留还会导致雀鹰产下易碎的鸟蛋,从而导致它们在孵化过程中被压碎。在禁用这些化学制品之后,雀鹰的数量已经有所恢复,因此被BirdLife International评价为无生存危机的物种。

封面图片来自Cassell的Natural History。第1章配置与管理1.0 引言

当你购买树莓派的时候,实际上只是购买了一块印制电路板,它甚至连电源和操作系统都没有。

在正式使用树莓派之前,需要先按照本章介绍的内容做好必要的设置。

由于树莓派采用的是标准USB接口的键盘和鼠标,大部分设置还是非常简单的,所以你只需重点关注树莓派特有的配置即可。1.1 选择树莓派型号面临问题

树莓派具有多种型号,你不知道哪一种适合自己。解决方案

从通用性的角度来看,你应当选择树莓派3或树莓派2B型。与单核的Pi Zero和A+型相比,树莓派3的内存容量提升4倍,并且具有4核处理器,所以对于大部分工作而言,它的表现更加出色。B型的树莓派3的一大特色是内置了Wi-Fi,所以你就无需使用外置的Wi-Fi适配器了。

反之,如果你想将树莓派嵌入到一个单用途项目中的话,那么A型树莓派或Pi Zero将是更好的选择,因为它们更便宜。进一步探讨

图1-1展示了Pi Zero、A+型和B型树莓派2。图1-1 Pi Zero(左)、A+型(中)和B型(右)树莓派2

如图1-1所示,A+型树莓派要比树莓派2更加小巧,但是它只有一个USB接口,而没有提供RJ45以太网接口。不过从外形上看,Pi Zero最为紧凑,因为它采用的mini-HDMI接口和Micro-USB OTG接口节约了大量空间。对于Pi Zero来说,要想连接键盘、屏幕和鼠标,必须提前准备好支持USB和HDMI接口的适配器,否则是无法连接标准外围设备的。

表1-1为我们总结了树莓派各个型号之间的差异。表1-1 不同型号的树莓派的比较型号内存容量USB接口数量以太网接口数量备注3B1GB4是内置Wi-Fi1(micro接Zero512MB否低成本口)2B1GB4是4核A+256MB1否B+512MB4是停产A256MB1否停产B rev 512MB2是停产2B rev 256MB2是停产1

如果你拥有的是已经停产的老款树莓派的话也没关系,因为它仍然非常有用。虽然性能方面不如最新的B型树莓派3,但是许多情况下,性能本身是无关紧要的。

在9.21节,我们将会介绍树莓派的计算模块,它是一种专门用于嵌入到其他产品内部的树莓派。参考资料

关于树莓派各种型号的详细介绍,请参考http://en.wikipedia.org/wiki/Raspberry_Pi。

价格低廉的Pi Zero是嵌入到各种电子项目的理想之选,有了它,你就不用担心开销问题了。关于该产品的介绍,请参考9.22节。1.2 封装树莓派面临问题

你希望给树莓派加一个外壳。解决方案

除非你的树莓派是作为套件中的一部分购买的,否则它是不带外壳的。这使得树莓派比较容易受伤,因为电路板外面有许多裸露的连接部件,所以把树莓派放到金属上面的时候,非常容易发生短路。

因此,为树莓派购买某种形式的保护装置不失为一项明智之举。如果你将来要用到树莓派的GPIO引脚的话,图1-2中的PiBow Coupé就是一个不错的选择,它不仅设计美观,而且非常实用。图1-2 安装在PiBow Coupé中的树莓派进一步探讨

除此之外,还有各种各样的保护装置供你选择,其中包括以下各类。● 简易的塑料壳,分为两个部分,可通过卡扣组装在一起。● VESA壁挂式保护壳(可以附着在显示器或TV的背面)。● 乐高样式的保护壳。● 3D打印的保护壳。● 激光切割而成的卡扣式亚克力保护壳。

保护壳种类繁多,你可以根据自己的喜好购买,与此同时,还必须考虑下面的注意事项。● 你需要用到GPIO接口吗?如果你打算为树莓派连接外部点子设

备的话,这个问题就显得非常重要了。● 散热效果如何?如果你打算让树莓派超频运行,或者经常用于播

放视频或玩游戏的话,这些情况下树莓派通常会产生大量热量,

所以散热就是需要重点考虑的问题了。

此外,你还能找到一些散热器套件,它们通常都会提供许多小巧的带有不干胶的散热器,可以放到树莓派的芯片上用以散热。当你对树莓派的要求比较苛刻,如播放大量视频的时候,这些部件将会派上大用场,但是通常情况下,这些散热器就如同车上的“飞状”条纹一样。参考资料

Adafruit上面也为树莓派提供了各种各样的保护壳,具体请访问http://bit.ly/1aDT3qm。

此外,你也可以到eBay上寻找其他树莓派商家提供的各式保护壳。1.3 选择电源面临问题

你需要为树莓派选择电源。解决方案

树莓派对电源的基本电气规格的要求为提供5V稳压直流电。

至于电源在电流大小方面的要求,这要取决于树莓派的具体型号以及其连接的外围设备。你最好采用一款能够轻松驱动树莓派的电源,因此电流一般不宜小于700mA。如果你在同一个卖家那里购买树莓派和电源的话,他通常能够告诉你某款电源是否与你的树莓派相匹配。

如果你打算使用无线上网卡或其他大功率的USB外设的话,那么最好选用能够提供1.5A甚至2A电流的电源。

此外需要注意的是,那些非常廉价的电源通常无法提供准确可靠的5V电压。进一步探讨

树莓派的电源和连接器其实与许多智能手机的充电器是完全一样的。只要这些充电器采用的是micro USB接口的话,那么其电压几乎都是5V的(但是仍需检验一下)。这样的话,唯一的问题就是这些充电器是否能够提供足够的电流。

如果它们无法提供足够的电流的话,那么就会发生下列问题。● 充电器会过热,甚至有可能引发火灾。● 充电器本身报废。● 高负荷运行时(比如当树莓派使用Wi-Fi网卡的时候),这会导致

电压下降,从而可能引起树莓派重启。

通常来说,我们需要检查电源的相关说明,看看是否至少能够提供700mA及以上的电流。如果电源只是标明了功率是多少W,而没有给出电流是多少mA,那么将瓦数除以5就是mA数。也就是说,一个5V 10W的电源能够提供2A(2000mA)的电流。

当我们使用一个最大电流为2A的电源的时候,我们用到的电力不会比使用700mA电源时的更多。因为树莓派只是按需消耗电流,而不是按照供电器的最大输出电流。

在图1-3中,我测量了B型树莓派的电流,并与B型树莓派2的电流进行了相应的比较。图1-3 树莓派在引导期间的电流消耗量

虽然新型的树莓派(A+、B+或者树莓派2)要比旧型号的树莓派更加节能,但是当处理器满负荷或者使用了大量外围设备的时候,它们的电流需求同样也不低。

从图1-3所示可以看到,电流很少会高于500mA。这是因为此时的处理器根本没有做太多的事情。当你开始播放HD视频的时候,电流就会显著提高。所以对于电源来说,其额定输出电流最好要高一些,以备不时之需。参考资料

你可以从http://www.pi-supply.com购买一个模块,以便在树莓派关机时可以自动切断电源。1.4 选择操作系统发行包面临问题

面对众多的树莓派操作系统发行包,你不知道应该选择哪一种。解决方案

问题的答案取决于你到底想要用树莓派做什么。

如果你想将树莓派作为普通计算机使用,或者用于电子项目中的话,那么你就可以选择树莓派的官方发行包:Raspbian。

如果你打算将树莓派作为媒体中心使用的话,也可以找到许多专门为此定制的发行包(参见4.1节)。

就本书而言,我们基本上以Raspbian发行包为主,但是这些代码和命令同样适用于所有基于Debian的发行包。进一步探讨

由于MicroSD卡不是很贵,所以你可以多准备几张存储卡,尽量多尝试几种发行包。如果你有此打算的话,最好把自己的文件存储在一个U盘上面,这样就无需给每个microSD卡复制这些文件了。

请注意,如果你打算按照本书中的例子对SD卡进行写操作的话,那么要求你的电脑具有SD卡插槽(许多笔记本都有),或者专门购置一台廉价的USB SD读卡器。参考资料

树莓派的官方网站提供了许多树莓派发行包,具体请访问http://www.raspberrypi.org/downloads。1.5 通过NOOBS刷写microSD卡面临问题

你想通过NOOBS(New Out of the Box Software)刷写microSD卡。解决方案

NOOBS是迄今为止为树莓派提供操作系统的最简便的方式。

从http://www.raspberrypi.org/downloads下载NOOBS压缩文件,解压,然后将其放到microSD卡中即可。为此,要求计算机装有SD卡插槽,或提供USB适配器和SD转microSD适配器。

你下载NOOBS压缩文件之后,将其解压缩,并将整个文件夹下面的内容复制到SD卡中。需要注意的是如果解压缩的文件夹名为NOOBS_v1_3_12或类似名称的话,那么你需要将该文件夹下面的内容复制到microSD卡的根目录下面,而不是直接复制这个文件夹。

将存有解压后的NOOBS文件的microSD卡插入树莓派中,然后启动树莓派。当它启动时,你将看到如图1-4所示的窗口。在此窗口中,选择Raspbian,并单击Install按钮。

如果你在A+上面使用NOOBS的话,你看到的备选列表会更短一些,因为只会显示适用于该精简平台的发行包。图1-4 NOOBS的开始界面

你将收到一条警告消息,指出该SD卡将被重写(这正是我们想要做的),然后,选择的发行包会安装到该SD卡上面,同时还会显示一个安装进度条以及与该发行包有关的帮助信息(见图1-5)。图1-5 NOOBS重写SD卡

文件复制过程一旦结束,你将收到镜像成功的消息。

届时,你可以按下回车键,此时树莓派就会重启,然后raspi_conig就会自动运行,这样你就可以配置新安装的操作系统了。

树莓派的系统一旦运行起来,你的首要任务就是连接互联网(见2.1节和2.5节),通过LXTerminal(见3.2节)打开命令行,然后输入下列命令将操作系统更新到最新版本。$ sudo apt-get update $ sudo apt-get upgrade

这个过程将需要一段时间。进一步探讨

为了能将NOOBS正确地安装到microSD卡上面,必须将它格式化为FAT32格式。通常情况下,市场上出售的SD和microSD卡都已经提前格式化为FAT32格式了。如果你打算使用的是一张旧卡,并且需要格式化成FAT32的话,那么只要利用操作系统自身的工具就可以完成此项任务。MicroSD存储卡的类型对安装于其上的操作系统的运行速度有非常大的影响,所以挑选的时候,应当尽量选择标有“class 10”的存储卡。参考资料

通过阅读https://www.rasp berrypi.org/help/noobs-setup/页面,不仅可以了解使用NOOBS安装操作系统的详细信息,同时还能找到更多类型的发行包。1.6 装配系统面临问题

树莓派所需的一切都已经准备好了,接下来需要将它们装配起来。解决方案

除非你打算把树莓派嵌入到项目内部,或者想将其用于媒体中心,否则的话,就需要为其安装键盘、鼠标,甚至Wi-Fi无线网卡,当然树莓派3除外。

图1-6展示的是一个典型的树莓派系统。图1-6 一个典型的树莓派系统进一步详述

树莓派几乎可以完美搭配所有类型的键盘和鼠标,无论是有线的,还是无线的。当然,无线蓝牙键盘和鼠标是个例外,它们无法用于树莓派。

如果你手头上的是老款树莓派,或者A型或A+型树莓派但是USB接口不够用的话,那么你还需购置USB集线器。参考资料

树莓派官方出品的快速入门指南见http://bit.ly/1ju8usM。1.7 连接DVI或VGA显示器面临问题

你的显示器没有HDMI连接器,但是你仍然想把它用在树莓派上面。解决方案

许多人都面临这个问题,不过,对于这些没有HDMI接口但是支持DVI或者VGA输入的显示器来说,你只要购买相应的适配器就可以解决这个问题了。

DVI适配器不仅用起来最为简单,同时也是最便宜的。如果你以“HDMI male to DVI female converter”作为关键词进行搜索的话,会找到许多低于$5的DVI适配器。进一步探讨

VGA适配器的用法相对来说要更复杂一些,因为它需要相应的电子设备将数字信号转换为模拟信号,所以你要留意一下是否提供了这些转接线。

官方的转换器名为Pi-View,任何销售树莓派的地方都能买到它。使用Pi-View的好处是它已经过了长时间的测试,并且非常适合用于树莓派。当然,在互联网上面还可以找到许多廉价的替代品,不过这些通常都不靠谱。参考资料

ELinux上面也介绍了许多挑选转换器的忠告,其地址为http://bit.ly/rpi-peripherals。1.8 使用复合视频显示器/TV面临问题

当文本显示在低分辨率的复合视频显示器上面的时候,它们是非常难以辨认的。所以,你需要调整树莓派的分辨率,以适应较小的屏幕。解决方案

树莓派提供了两种视频输出:HDMI和来自音频插孔的复合视频,后者需要专用的线缆。其中,HDMI的输出质量要更高一些。如果你打算使用复合视频作为主显示器信号的话,那么你可能需要重新斟酌一下。

如果你果真打算使用这种屏幕的话,比如确实需要一个小屏幕的话,那么你必须做出相应的调整,以使视频输出适合屏幕大小。为此,你必须修改/boot/conig.txt。你可以在树莓派上编辑该文件,具体可以在终端会话中利用下列命令完成这些操作。$ sudo nano /boot/config.txt

如果文字太小难以看清,而你又没有HDMI显示器的话,那么你可以将SD卡从树莓派上面取下来,将其插入计算机中。该文件位于SD卡的根目录下面,你可以通过计算机上面的文本编辑器来进行修改。

你需要了解自己屏幕的分辨率是多少。对于许多小屏幕来说,它们的分辨率通常是320×240像素。在这个文件中,你可以找到如下所示的两行内容。#framebuffer_width=1280#framebuffer_height=720

将以上两行前面的#去掉,并将这两个数字改为你显示器的宽度和高度。在下面的例子中,这两个数字已经被改为320和240。framebuffer_width=320framebuffer_height=240

保存文件,然后重新启动树莓派。你将会发现,屏幕上面的内容已经变得更加易于阅读了。你也许还会发现,屏幕周围出现了一个大黑边。要想调整黑边,可以参考1.9节。进一步探讨

除此之外,树莓派还可以使用许多廉价的CCTV监视器,这时它们看起来非常像仿古的游戏控制台(参见4.6节)。

不过,这些监视器的分辨率通常会很低。参考资料

如果你想阅读其他复合视频显示器的使用指南的话,可以访问Adafruit提供的有关介绍,地址为http://bit.ly/adafruit-learning。

另外,如果你使用的是HDMI视频输出的话,可以按照本书的1.7节和1.9节介绍的方法来调整图像。1.9 调整显示器中的图像尺寸面临问题

当你第一次将树莓派连接到显示器上面时,可能发现某些文本无法阅读,因为它们跑到屏幕外边去了,或者遇到窗口无法充满整个屏幕的问题。解决方案

如果遇到文本延伸到屏幕之外的问题,你可以通过raspi-config工具关闭overscan功能来加以解决。

为此,可以打开一个终端会话,然后通过下列命令来运行raspi-config工具。$ sudo raspi-config

然后,使用光标键滚动到Advanced选项中的Overscan处,并将其关闭(见图1-7)。图1-7 选中Overscan选项

如果你的问题是图片周围有大量黑边,那么可以通过编辑文件 /boot/conig.txt来减少黑边(甚至可以完全消除),具体命令如下所示。$ sudo nano /boot/config.txt

找到与overscan有关部分,并修改图1-8所示的4行内容。

要想让这4行内容起作用,首先得把每行前面的#符去掉。

之后,可以借助试错法,不断调整设置,直到窗口尽量充满整个显示器为止。需要注意的是这4个数字都应该是负数。在调整这些设置时,不妨将20作为它们的起始值。这样能够增大所用屏幕的面积。图1-8 调整overscan进一步探讨

每次修改分辨率之后,都得重启树莓派才能看到修改后的效果,所以整个过程非常烦人。幸运的是这种事情只需要进行一次就行了,并且大部分显示器和TV无需调整就能正常工作。参考资料

关于raspi-config工具的详细用法,请参考http://elinux.org/Rpi_raspi-config。1.10 优化性能面临问题

你感觉自己的树莓派运行得太慢了,所以,想通过超频来提速。解决方案

如果你使用的是4核处理器的树莓派2的话,你不会有太慢的感觉。但是,如果你使用的是单核心处理器的老版树莓派的话,感觉就像是老牛拉破车。

为了提高树莓派的运行速度,你可以使用超频方法。

当然,这会使树莓派的耗电量有所增加,同时也会使它变得更热(参考后面的讨论)。

这里使用的超频方法称为动态超频,因为它会自动检测树莓派的温度,并且一旦温度过高,时钟频率就会自动下调。

为了给树莓派超频,可以在终端输入下列命令来运行raspi_config工具。$ sudo raspi-config

在菜单中选中Overclock选项,这样系统就会弹出如图1-9所示的各种选择。图1-9 超频选项

你可以从中选择一个选项。如果你的树莓派开始变得不稳定,甚至挂机的话,那么说明需要选择一个更保守的选项,或者重新设为None以关闭超频功能。进一步探讨

利用超频方法,性能会得到明显改善。为了衡量改善程度,我在15摄氏度的室温环境下对B型树莓派修订版2做了一个实验。

我使用下面的Python代码作为测试程序。这段代码只针对处理器,而没有涉及计算机的其他方面,例如写SD卡、绘图等。不过如果你想测试树莓派的超频效果的话,那么该程序确实能够较好地反映出CPU的性能。import timedef factorial(n): if n == 0: return 1 else: return n * factorial(n-1)before_time = time.clock()for i in range(1, 10000): factorial(200)after_time = time.clock()print(after_time - before_time)

测试结果如表1-2所示。表1-2  超频效果 速度电流温度(摄氏度)700MHz15.8秒360mA271GHz10.5秒420mA30

如您所见,性能提升了33%,但是性能提升的代价是消耗更大的电流,同时带来更高的温度。

为了让树莓派全速运行,你最好提供一个通风良好的外壳。

除此之外,你还可以设法为树莓派提供水冷设备,不过说老实话,这样做非常不明智。参考资料

关于raspi-config工具的详细用法,请参考http://elinux.org/Rpi_raspi-config。1.11 修改密码面临问题

通常情况下,树莓派的默认密码为Raspberry,你想修改此密码。解决方案

你可以利用raspi-config工具来修改密码。在终端(见3.2节)中,你可以通过下列命令来运行raspi_config工具。$ sudo raspi-config

之后,在菜单中选择change_pass菜单项,这时将弹出如图1-10所示的提示内容。图1-10 修改密码

修改密码时,我们无需重启树莓派,所做修改就会立即生效。进一步探讨

你还可以在终端中利用passwd命令来修改密码,具体如下所示。$ passwdChanging password for pi.(current) UNIX password:Enter new UNIX password:Retype new UNIX password:passwd: password updated successfully参考资料

关于raspi-config工具的详细用法,请参考http://elinux.org/Rpi_raspi-config。1.12 让树莓派开机后直接进入窗口系统面临问题

每次重启树莓派之后,都不得不登录后以手工方式进入桌面系统。你希望这个过程实现自动化。解决方案

你可以使用raspi-config工具修改启动过程,让树莓派开机后自动登录并打开桌面系统。为此,可以在终端中通过raspi_config工具完成相应的设置,具体命令如下所示。$ sudo raspi-config

然后,依次选择Enable Boot to Desktop/Scratch和Desktop Log in as user pi选项,具体如图1-11所示。图1-11 自动启动进入桌面进一步探讨

修改好引导选项之后,系统会提示重新启动树莓派以使修改生效。

很明显,允许树莓派在启动后自动进入桌面环境,这会带来许多安全隐患。但是,树莓派通常只是用作个人电脑使用,而非多人共享,所以便利性会重于一切。参考资料

关于raspi-config工具的详细用法,请参考http://elinux.org/Rpi_raspi-config。1.13 关闭树莓派面临问题

你想关掉自己的树莓派。解决方案

单击桌面左上角的Raspberry菜单,将显示如图1-12所示的一些选项。图1-12 关闭树莓派

Shutdown

关闭树莓派。要想再次启动树莓派的话,需要拔掉电源,然后重新插上才行。

Reboot

重新启动树莓派。

Logout

注销,并显示登录提示符,以便输入登录凭证重新登录。

此外,你也可以在命令行输入下列命令来重启树莓派。

sudo reboot

在安装某些软件之后,通常会用到上面这条命令。当你重新启动时,会看到如图1-13所示的消息,它一方面展示了Linux系统的多用户特性,同时为所有连接到树莓派的用户提出了警示。图1-13 通过终端关闭树莓派进一步探讨

关闭树莓派时,不要简单粗暴地拔掉电源插头了事,而是最好采用上面介绍的关机方法,因为当你给树莓派断电的时候,可能它正在向microSD卡中写入数据。这样的话,就会导致文件受损而无法正常使用。

与大多数电脑的关机方法不同,树莓派的关机实际上并非切断电源。它只是进入了低功耗模式,而树莓派本来就用不了多少电的(但是树莓派自身硬件无法控制其电源)。参考资料

你可以从https://www.pi-supply.com/购买一款硬件设备,以实现树莓派关机的同时切断其电源。1.14 安装树莓派摄像头模块面临问题

你想使用树莓派的摄像头模块(见图1-14)。解决方案

树莓派摄像头模块(见图1-14)是通过排线连接到树莓派上面的。图1-14 树莓派摄像头模块

这个排线需要连到介于树莓派2的音频和HDMI接口之间的那个专用连接器上面。对于早先的B型树莓派来说,这个连接器位于以太网接口的后面。若要安装该模块,需要拉开连接器两边的扳手,使连接器处于解锁状态,然后将排线插入插槽,注意要让排线连接器的衬垫背对以太网接口。之后,按下两边的扳手,锁住排线(见图1-15)即可。图1-15 为B型树莓派安装摄像头模块

摄像头包装上面的说明文字指出它对静电敏感。

因此,在开始操作之前,需要先释放身上的静电,如触摸PC金属机箱等接地设备都可以消除静电。

安装好摄像头硬件之后,还需要进行必要的软件配置才能使用。其中,最简单的配置方法就是使用raspi_config。若要运行raspi-config,可以在终端会话中键入如下所示的命令。$ sudo raspi-config

这样你就能看到Enable Camera的选项了(见图1-16)。图1-16 更新后的raspi-conig配置工具

有两个分别用来照相和摄像之用的命令,它们分别是raspiStill和raspivid。

要想拍摄单张静态图像的话,可以使用raspiStill命令,具体用法如下所示。$ raspistill -o image1.jpg

预览屏幕会显示5秒左右,之后拍照,并将照片保存到当前目录下面的image1.jpg文件中。

为了录制视频,可以使用raspivid命令,具体如下所示。$ raspivid -o video.h264 -t 10000

上述命令后面的数字表示录像时间,单位是毫秒,就本例而言,录像时间是10秒。进一步探讨

无论是raspstill,还是raspivid命令,都提供了许多命令选项。无论其中哪个命令,如果只输入命令本身而不带任何参数的话,就会自动显示可用选项的帮助信息。

该摄像头模块能够提供高分辨率的摄像和录像功能。

下面是该摄像头的一些关键参数。● 500万像素传感器。● f/2定焦镜头。● 静态分辨率为1920像素×1080像素。● 视频为1080p,30帧/秒。

摄像头模块的一个替代方案是使用USB摄像头(请参考8.2节)。参考资料

关于命令raspstill和raspivid的详细介绍,请参考RaspiCam的说明文档(http://bit.ly/cam-doc)。1.15 使用蓝牙设备面临问题

我想在自己的树莓派上面使用蓝牙设备。解决方案

为树莓派安装USB蓝牙适配器,并安装相应的支持软件。

并非所有的蓝牙适配器都能与树莓派无缝兼容,但是大部分都是兼容的,为确保万一,购买时请选择那些声明能够兼容树莓派的适配器。图1-17中的树莓派配备了两个USB蓝牙适配器(最近的那个是摄像头)以及一个USB Wi-Fi适配器。图1-17 配备了USB蓝牙和Wi-Fi适配器的树莓派2

为了安装蓝牙的支持软件,可以使用如下所示的命令。$ sudo apt-get update$ sudo apt-get install bluetooth bluez-utils blueman bluez $ sudo usermod -G bluetooth -a pi

这些命令适用于所有树莓派支持的蓝牙适配器。

安装好必要的软件之后,就可以插入蓝牙适配器了,之后重启树莓派(参考1.13节)即可。

这时,你将会在Raspbian的Start菜单的Preferences部分发现一个新工具,名为Bluetooth Manager。打开这个工具,然后单击Search,你就可以找到附近的蓝牙设备了(见图1-18)。当然,附近的蓝牙设备必须设置成对其他设备可见的情况下,你才能找到它们。图1-18 Bluetooth Manager进一步探讨

通过Bluetooth Manager,你可以与其他蓝牙设备进行配对,给它们发送文件,以及将自己的树莓派设置成对其他蓝牙设备可见等。参考资料

关于兼容树莓派的适配器的清单,请参考http://elinux.org/Rpi_usb_bluetooth_adapters。第2章网络连接2.0 引言

树莓派在设计之初,便是要连接到互联网的。互联网通信是它的关键功能之一,这给其他各种用途铺平了道路,例如家庭自动化、Web服务、网络监控等。

树莓派既可以使用以太网线缆(这种情况至少要求是B型树莓派)联网,也可以使用USB Wi-Fi无线网卡连接网络。树莓派一旦连接到互联网上面,就意味着你可以通过其他计算机来远程连接树莓派。这对于本身难以接近,或者没有连接键盘、鼠标和显示器的树莓派来说,是非常有用的。

接下来,本章将详细介绍树莓派连接互联网以及通过网络远程控制它的各种方法。2.1 连接有线网络面临问题

你想通过有线网络将树莓派连接到互联网。解决方案

首先,如果你的树莓派的型号为A、A+或Zero的话,那么它们自身并没有提供RJ45以太网接口。这种情况下,最好使用USB无线网卡来连接互联网(见2.5节)。

如果你的树莓派是B型的,可以将以太网电缆插入RJ45接口,同时将线缆另一端接入家用路由器后方的空闲接口中即可。图2-1展示的是一款老版的树莓派1,它的网络LED就在音频接口旁边。对于树莓派2来说,这些LED位于以太网接口自身内部。

树莓派一旦连接到网络上面,它的网络LED就会立即开始闪烁。图2-1 连接树莓派到家用集线器进一步探讨

对于Raspbian系统来说,它被预配置为使用DHCP(Dynamic Host Configuration Protocol,DHCP)协议连接网络。只要你的网络支持DHCP协议,它就会自动为网络设备分配IP地址。

当你把树莓派连接到家用路由器上面的时候,如果树莓派的LED没有变亮的话,请检查是否已经将网线插入到集线器的上行链路RJ45接口中,或者换一根网线重新尝试。

如果LED闪烁,但是树莓派仍然无法使用浏览器上网的话,请通过网络管理控制台检查DHCP是否已经开启。为此,你可以查看如图2-2所示的有关选项。图2-2 为家用集线器启用DHCP协议参考资料

通过无线网络连接互联网的具体方法,请参考2.5节。2.2 查看自己的IP地址面临问题

你想知道自己树莓派的IP地址,以便与它进行通信,无论是将树莓派用作Web服务器,与其交换文件,还是利用SSH(见2.7节)或VNC(见2.8节)远程控制树莓派,你都需要知道它的IP地址。

一个IP地址由4部分数字组成,能够在网络中唯一地标示计算机的网络接口。该地址各部分数字之间用点号分隔。解决方案

要想获悉自己树莓派的IP地址,只需在终端窗口中输入下列命令即可。$ hostname -I192.168.1.16

上面看到的是树莓派在家庭网络中的本地IP地址。进一步探讨

一个树莓派可以拥有多个IP地址(例如每个网络连接分配一个IP地址)。所以,如果你的树莓派同时连接了有线网络和无线网络的话,那么它就会拥有2个IP地址。但是,通常情况下树莓派只会使用一种网络连接,要么使用有线连接,要么使用无线连接,而不是同时使用两种连接。要想查看所有的网络连接,可以使用ifconfig命令。$ sudo ifconfigeth0 Link encap:Ethernet HWaddr b8:27:eb:d5:f4:8f inet addr:192.168.1.16 Bcast:192.168.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1114 errors:0 dropped:1 overruns:0 frame:0 TX packets:1173 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:76957 (75.1 KiB) TX bytes:479753 (468.5 KiB)lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)wlan0 Link encap:Ethernet HWaddr 00:0f:53:a0:04:57 inet addr:192.168.1.13 Bcast:192.168.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:38 errors:0 dropped:0 overruns:0 frame:0 TX packets:28 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6661 (6.5 KiB) TX bytes:6377 (6.2 KiB)

通过观察ifconfig的返回结果,你不难发现,当前树莓派同时连接了有线网络(eth0)和无线网络(wlan0),其中前者的IP地址为192.168.1.16,后者的IP地址为192.168.1.13。其中,网络接口lo实际上是一个虚拟网络接口,计算机可以借助它跟自己通信。还有一种获悉自己IP地址的方法,那就是连接到家用集线器的管理控制台上,然后查看LAN页面中的IP表。其中,应该会有一个名为raspberrypi的设备,旁边就是它的IP地址。参考资料

在Wikipedia网站上,有关于IP地址的详尽说明,具体请参考http://bit.ly/13ZsgoY。2.3 配置静态IP地址面临问题

你想给自己的树莓派配置一个静态IP地址,这样该地址就不会发生变化了。解决方案

要给树莓派配置IP地址,无论它使用的是有线网络,还是无线网络,你都需要编辑配置文件 /etc/network/interfaces。

如果你想查看自己的/etc/network/interfaces文件,可以借助下列命令。$ more /etc/network/interfaces

该文件看起来应该如下所示。auto loiface lo inet loopbackiface eth0 inet dhcpallow-hotplug wlan0iface wlan0 inet manualwpa-roam /etc/wpa_supplicant/wpa_supplicant.confiface default inet dhcp

这相当于说,Raspbian会留意你的树莓派上的3个网络接口,每个接口前面都以单词iface开头。

Lo

本地环回接口,该接口可忽略。

eth0

一个使用以太网接口的网络连接。

wlan0

一个使用USB Wi-Fi无线网卡或树莓派 3内置的Wi-Fi网卡的网络接口。

对于树莓派上面的每个网络连接,它们都有不同的IP地址。就本例来说,你将为以太网接口指定一个静态的IP地址。如果你想把Wi-Fi接口的IP地址也设置成静态的,只需编辑接口文件中的相应条目即可。

要想编辑该文件,可以借助如下所示的命令。$ sudo nano /etc/network/interfaces

首先,要确定使用哪个IP地址。对这个IP地址的要求是:它应该是网络中其他机器尚未使用的地址,同时还要位于你的家用集线器的IP地址范围之内。就这里而言,我们将使用192.168.1.116。

编辑该文件内容,将单词dhcp改为static,并添加如下所示内容。 address 192.168.1.116 netmask 255.255.255.0 gateway 192.168.1.1

按照这里的要求修改文件后,静态IP地址192.168.1.116已经被分配给了接口eth0。auto loiface lo inet loopbackiface eth0 inet static address 192.168.1.116 netmask 255.255.255.0 gateway 192.168.1.1allow-hotplug wlan0iface wlan0 inet manualwpa-roam /etc/wpa_supplicant/wpa_supplicant.confiface default inet dhcp

对于大部分网络来说,网络掩码都应该设为255.255.255.0,同时将网关设置为家庭路由器本身的IP地址。这样的话,该IP地址就与你连接路由器的管理控制台所用地址完全一致了。

编辑保存该文件之后,请运行下面的命令来清空所有现存的DHCP配置项,然后重启树莓派,以便让所做修改生效。$ sudo rm /var/lib/dhcp/ *$ sudo reboot进一步探讨

内部IP地址通常都类似于192.168.1.116这样,对于每台电脑来说,只有最后一个数字会有所变化。内部IP地址的另一种常用格式是10.0.0.16。参考资料

在Wikipedia网站上,有关于IP地址的详尽说明,具体请参考http://bit.ly/13ZsgoY。2.4 为树莓派配置网络名称面临问题

你想给树莓派配置一个网络名称,这样,它的名字就不再是单调的“raspberrypi”了。解决方案

修改树莓派的网络名称其实非常简单,只需要修改两个文件就可以了。

首先,需要编辑/etc/hostname文件。为此,请打开终端窗口,并输入如下所示的命令。$ sudo nano /etc/hostname

然后,使用选好的名字替换掉“raspberrypi”即可。需要注意的是你选择的名称应该还是一个单词,不能含有任何标点符号和特殊字符(包括字符_)。

然后,使用编辑器打开文件/etc/hosts,具体命令如下所示。$ sudo nano /etc/hosts

该文件大致如下所示。127.0.0.1 localhost::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters127.0.1.1 raspberrypi

修改文件最后面的部分,将原名称(“raspberrypi”)改为新名称即可。

重启树莓派之后,如果从其他电脑通过网络观察其名称的话,应当会看到相应的变化。进一步探讨

修改树莓派的名称有时非常有用,特别是当你将多台树莓派连接到网络上面的时候。参考资料

关于修改树莓派的IP地址的方法,可以参考2.3节。2.5 配置无线网络连接面临问题

你想通过USB无线网卡将树莓派连接到互联网上。解决方案

如果你的Raspbian是最新版本的话,那么配置Wi-Fi的任务将易如反掌。你只需插入USB Wi-Fi无线网卡,然后在屏幕右上方单击Network图标即可(见图2-3)。之后,你会看到一个无线网络清单。你选择网络后,系统将提示你输入Pre Shared Key,即密码。

输入密码,稍等片刻,Network图标就会变为标准的Wi-Fi标志,说明无线网络已经连接成功。图2-3 连接Wi-Fi网络

如果你使用的是老版的Raspbian的话,那么就不得不借助Wi-Fi Config工具(桌面上可以找到它的快捷方式)来进行配置了。如果你的Raspbian不是最新版本的话,不妨将其更新一下(见1.4节)。

如果你使用的是树莓派3的话,那么实际上它已经内置了Wi-Fi网卡。

如果你使用的是老版树莓派,先在树莓派的USB接口上面安装一个兼容的USB无线网卡(大部分都是兼容的),然后就可以运行Wi-Fi配置工具(见图2-4)进行配置了。此外,你还可以在树莓派的开始菜单的Preferences部分找到Wi-Fi配置工具。然后,单击Scan按钮搜索接入点。双击你要连接的接入点(你的家用集线器的),并在PSK字段输入密码。

最后,单击连接按钮便可接入网络。图2-4 Wi-Fi配置——正在扫描网络进一步探讨

USB Wi-Fi无线网卡比较费电,因此如果遇到树莓派意外重启或无法正确重启的情况,那么很可能需要使用一个更大功率的电源。你可以使用一个能提供1.5A或更大电流的电源。

如果你还打算使用鼠标与键盘,可能会遇到USB接口不够的情况,这时,可以求助于USB集线器。请选择自带电源的集线器,因为它可以缓解树莓派电源的压力。

如果你打算将树莓派用于媒体中心(见4.1节),还有一个设置页面,可供你使用Wi-Fi将媒体中心连接网络。

此外,你还可以直接使用命令行来设置无线网络连接。为此,首先要编辑 /etc/ network/interfaces文件,具体命令如下所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载