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

978-7-115-44720-3
作者: 【英】Simon Monk(蒙克)
译者: 韩波
编辑: 胡俊英

图书目录:

详情

在本书中,有许多与树莓派相关内容的示例,包括如何配置和使用树莓派;如何使用Python编程语言;如何用树莓派连接传感器、显示器和电机等设备。本书还包括一章介绍如何让树莓派与Arduino开发板一起工作的内容。除了包含大量的接口板和软件实例的介绍,本书还涵盖了基础理论的介绍,这样可以使读者更好地理解如何使用树莓派微系统开发中出现的新技术。

图书摘要

版权信息

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

ISBN:978-7-115-44720-3

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

• 著    [英]Simon Monk

  译    韩 波

  责任编辑 胡俊英

• 人民邮电出版社出版发行  北京市丰台区成寿寺路11号

  邮编 100164  电子邮件 315@ptpress.com.cn

  网址 http://www.ptpress.com.cn

• 读者服务热线:(010)81055410

  反盗版热线:(010)81055315


Copyright© 2016 by O’Reilly Media, Inc.

Simplified Chinese Edition, jointly published by O’Reilly Media, Inc. and Posts & Telecom Press, 2017. Authorized translation of the English edition, 2016 O’Reilly Media, Inc., the owner of all rights to publish and sell the same.

All rights reserved including the rights of reproduction in whole or in part in any form.

本书中文简体版由O’Reilly Media, Inc.授权人民邮电出版社出版。未经出版者书面许可,对本书的任何部分不得以任何方式复制或抄袭。

版权所有,侵权必究。


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

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

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


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

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

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


自从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图书在线是一种按需数字化图书馆。它提供的专业内容都来自科技和商业领域的世界顶级作者,这些内容同时提供书籍和视频形式。

技术专家、软件开发人员、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。


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

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

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

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

从通用性的角度来看,你应当选择树莓派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接口数量

以太网接口数量

备注

3B

1GB

4

内置Wi-Fi

Zero

512MB

1(micro接口)

低成本

2B

1GB

4

4核

A+

256MB

1

B+

512MB

4

停产

A

256MB

1

停产

B rev 2

512MB

2

停产

B rev 1

256MB

2

停产

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

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

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

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

你希望给树莓派加一个外壳。

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

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

图1-2 安装在PiBow Coupé中的树莓派

除此之外,还有各种各样的保护装置供你选择,其中包括以下各类。

保护壳种类繁多,你可以根据自己的喜好购买,与此同时,还必须考虑下面的注意事项。

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

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

此外,你也可以到eBay上寻找其他树莓派商家提供的各式保护壳。

你需要为树莓派选择电源。

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

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

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

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

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

如果它们无法提供足够的电流的话,那么就会发生下列问题。

通常来说,我们需要检查电源的相关说明,看看是否至少能够提供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购买一个模块,以便在树莓派关机时可以自动切断电源。

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

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

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

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

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

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

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

树莓派的官方网站提供了许多树莓派发行包,具体请访问http://www.raspberrypi.org/downloads

你想通过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安装操作系统的详细信息,同时还能找到更多类型的发行包。

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

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

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

图1-6 一个典型的树莓派系统

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

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

树莓派官方出品的快速入门指南见http://bit.ly/1ju8usM

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

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

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

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

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

ELinux上面也介绍了许多挑选转换器的忠告,其地址为http://bit.ly/rpi-peripherals

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

树莓派提供了两种视频输出: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=320
framebuffer_height=240

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

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

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

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

另外,如果你使用的是HDMI视频输出的话,可以按照本书的1.7节和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

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

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

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

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

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

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

$ sudo raspi-config

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

图1-9 超频选项

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

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

我使用下面的Python代码作为测试程序。这段代码只针对处理器,而没有涉及计算机的其他方面,例如写SD卡、绘图等。不过如果你想测试树莓派的超频效果的话,那么该程序确实能够较好地反映出CPU的性能。

import time

def 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  超频效果 

速度

电流

温度(摄氏度)

700MHz

15.8秒

360mA

27

1GHz

10.5秒

420mA

30

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

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

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

关于raspi-config工具的详细用法,请参考http://elinux.org/Rpi_raspi-config

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

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

$ sudo raspi-config

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

图1-10 修改密码

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

你还可以在终端中利用passwd命令来修改密码,具体如下所示。

$ passwd
Changing 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

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

你可以使用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

你想关掉自己的树莓派。

单击桌面左上角的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 树莓派摄像头模块

这个排线需要连到介于树莓派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命令,都提供了许多命令选项。无论其中哪个命令,如果只输入命令本身而不带任何参数的话,就会自动显示可用选项的帮助信息。

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

下面是该摄像头的一些关键参数。

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

关于命令raspstill和raspivid的详细介绍,请参考RaspiCam的说明文档(http://bit.ly/cam-doc)。

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

为树莓派安装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


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

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

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

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

首先,如果你的树莓派的型号为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节。

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

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

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

$ hostname -I
192.168.1.16

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

一个树莓派可以拥有多个IP地址(例如每个网络连接分配一个IP地址)。所以,如果你的树莓派同时连接了有线网络和无线网络的话,那么它就会拥有2个IP地址。但是,通常情况下树莓派只会使用一种网络连接,要么使用有线连接,要么使用无线连接,而不是同时使用两种连接。要想查看所有的网络连接,可以使用ifconfig命令。

$ sudo ifconfig

eth0      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

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

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

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

$ more /etc/network/interfaces

该文件看起来应该如下所示。

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface 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 lo

iface lo inet loopback
iface eth0 inet static
    address 192.168.1.116
    netmask 255.255.255.0
    gateway 192.168.1.1

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface 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

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

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

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

$ sudo nano /etc/hostname

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

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

$ sudo nano /etc/hosts

该文件大致如下所示。

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi

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

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

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

关于修改树莓派的IP地址的方法,可以参考2.3节。

你想通过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文件,具体命令如下所示。

$ sudo nano /etc/network/interfaces

然后,在文件中找到与wlan0接口有关的部分,并将其修改为:

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

第一行内容的作用是规定当USB Wi-Fi无线网卡插入后,Wi-Fi连接将自动启动。第二行内容的作用是规定让树莓派通过DHCP协议来分配IP地址。如果你想要使用静态IP地址,那么可以将单词dhcp换为static,并添加2.3节中介绍的分配静态IP地址所需的相关内容。

最后一行用来规定客户端文件的位置。实际上,这个文件包含了无线网络的SSID(网络名称)和PSK(密码)。所以,接下来就要编辑这个文件了,具体命令如下所示。

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

修改文件时,只要根据你的无线网络设置ssid和pskfoobar便可。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
         ssid="My-Network-Name"
         psk="My-password"
         proto=RSN
         key_mgmt=WPA-PSK
         pairwise=TKIP
         auth_alg=OPEN
}

为了让对文件所做的修改生效,需要重新启动树莓派。

关于有线连接的介绍,请参考2.1节。如果需要了解兼容树莓派的Wi-Fi网卡的清单,请访问http://elinux.org/Rpi_verifiedperipherals。关于配置有线网络的详细内容,请参考2.1节。

虽然没有网络连接可用,但是,你仍然希望能够从另一台计算机远程访问树莓派。

使用控制台线来连接树莓派。

如果你打算以无外设的方式来使用树莓派的话,即不用键盘、鼠标或显示器,那么控制台线将是不二之选。控制台线的外观如图2-5所示,可以从Adafruit(https://www.adafruit.com/)网站购买。

控制台线的连接方式如下。

1.将红色(5V)导线连接到GPIO接口左边缘上的5V引脚。

2.将黑色(GND)导线连接至上面用到的5V引脚左边的GND引脚上面。

3.将白色导线(RX)连接至树莓派的GPIO 14(TXD)引脚上,它位于黑色导线左边。

4.将绿色导线(RX)连接到树莓派上白色导线左边的15号引脚(RXD)上面。

如果你使用了不同的导线,电线颜色可能会有所不同,所以务必查看导线的相关文档,否则,可能会对树莓派造成损害。

图2-5 控制台线

需要注意的是USB线也能为红色导线提供5V电压,对于树莓派自身来说,这就够了;但是,如果连接了很多外设的话,就无法满足要求了。

如果使用的是Windows或者Mac OS X系统,那么你还需为USB线安装相应的驱动程序。对于Windows系统来说,相应的驱动程序的下载地址为http://bit.ly/1hAX6Mw;对于Mac OS Mac OS X系统来说,相应的驱动程序下载地址为http://bit.ly/18oycat。一般情况下,Linux用户无需为这些线缆安装任何驱动程序。

要想从Mac OS X上连接树莓派,你需要打开终端,并输入如下的命令。

$ sudo cu -l /dev/cu.NoZAP-PL2303-00001004 -s 115200

具体的设备名称可能会有所不同,但是,如果你在cu.P后按Tab键,系统将自动补全该命令。在连接上之后,按回车键,就会看到树莓派的登录提示符(见图2-6)。这里,默认用户名和密码分别是pi和raspberry。

图2-6 利用控制台线登录

如果你想从Windows机器上面连接树莓派的话,你需要下载一款名为Putty(http://www.putty.org)的终端软件。

当你运行Putty软件时,将“Connection type”改为Serial,并把速率设为115200。此外,你还需要把“Serial line”设置为控制台线所用的COM端口。它可能是COM7,如果无法正常使用,可以通过Windows设备管理器来进行检查。

单击Open并按下回车键,终端会话就会启动,并给出登录提示符。

如果你的树莓派想轻装上阵,控制台线将是不二之选,因为它不仅为树莓派提供了电源,还可以对其进行远程控制。

控制台线在USB端有一个芯片,提供了USB-to-serial接口。

有时候,为了使用控制台线需要为你的个人电脑安装相应的驱动程序,具体情况取决于你使用的操作系统。这里使用的控制台线是由Adafruit供应的(产品码954)。你还可以使用任何USB-to-serial转换器,只要你电脑上面有相应的驱动程序即可。

如果你按照一组GPIO接口相应顺序将4个插座小心地胶合在一起,那么就可以轻松将这些插座插到正确的地方。

如果你使用了类似Raspberry Leaf(参见9.1节)这样的GPIO模板的话,在GPIO接口中找到这些正确的位置是非常轻松的。

如果你想了解串口控制台的更多知识,请参考Adafruit教程,地址为http://bit.ly/1bDL4vM。同时,Adafruit也出售控制台线。

你想要从另一台计算机上,通过SSH连接一台远程树莓派。

要想使用SSH连接树莓派,必须首先启用SSH。对于较新版本的Raspbian来说,你可以使用树莓派的Configuration tool(见图2-7)来完成这项工作,该软件位于主菜单的Preferences中。点选SSH的复选框,单击OK,系统将提示重新启动树莓派。

如果你使用的Raspbian版本较旧的话,可以使用raspi_config程序。为了启动该程序,只需在终端中键入下列命令即可。

图2-7 通过树莓派的Coniguration tool启用SSH

$ sudo raspi-config

向下滚动到SSH选项,并启用它。

对于较新版本的Raspbian来说,SSH已经自动启用了,所以根本无需修改任何设置。

如果你想从一台安装了Mac OS X或Linux的计算机上面连接树莓派的话,只需要打开终端窗口,键入下列命令即可。

$ ssh 192.168.1.16 -l pi

其中,这里的IP地址(192.168.1.16)是树莓派的IP地址(参见2.2节)。这时,将提示输入密码,之后就可以登录到树莓派了(见图2-8)。

图2-8 利用SSH登录

如果从Windows机器远程连接树莓派的话,需要使用Putty(见2.6节)来启动一个SSH会话。

SSH是连接远程计算机的一种常见方法,只要是树莓派本身支持的命令,都可以在SSH中使用。同时,就像它的名字所暗示的那样,这是一种安全的连接方式,因为通信是加密的。

这种方法唯一的缺点,可能在于它的运行环境是命令行,而非图形环境。如果你想远程访问树莓派的桌面环境的话,就需要使用VNC(见2.8节)和RDP(见2.9节)了。

还请参考http://www.bit.ly/HRnse4提供的Adafruit教程。

你需要通过VNC从Mac OS X或个人电脑(Windows或Linux)远程访问树莓派完整的Raspbian图形桌面。

安装VNC(Virtual Network Connection,VNC)服务器。

在树莓派上打开终端会话(或SSH会话),然后运行下列命令。

$ sudo apt-get update
$ sudo apt-get install tightvncserver

安装好VNC服务器之后,请使用下列命令来运行它。

$ vncserver :1

第一次运行时,会要求建立密码,也就是说,今后任何远程连接树莓派的人,必须输入该密码后才能获得访问权限。

为了从远程计算机连接树莓派,你需要安装VNC客户端。

RealVNC(http://www.realvnc.com)是一个流行之选,可以很好地与tightvnc建立连接,并且支持Windows、Linux和Mac OS X系统。

当你在Mac OS X或个人电脑上运行客户端程序的时候,它还会要求输入你想连接的VNC服务器的IP地址,也就是你的树莓派的IP地址。

可以在IP地址后面输入“:1”,用以表示你希望连接的桌面号为1。

之后,会要求输入密码(见图2-9)。请记住,这是指安装tightvncserver后设置的那个密码,并不要求与你的树莓派密码一致。

图2-9 利用VNC登录

虽然大部分工作都可以通过SSH进行,但是,有时候访问树莓派图形环境的能力是非常有用的。

如果你希望树莓派每次重启都会自动启动VNC服务器的话,可以借助下列命令来实现。

$ cd /home/pi
$ cd .config
$ mkdir autostart
$ cd autostart
$ nano tightvnc.desktop

将下列内容粘贴到编辑器窗口中。

[Desktop Entry]
Type=Application
Name=TightVNC
Exec=vncserver :1
StartupNotify=false

树莓派一旦设置为自动登录并进入桌面环境的话,VNC服务器就会在重新启动后自动启动。

请参考http://bit.ly/172gOL7提供的Adafruit教程。

请同时参考2.9节。

你想从个人电脑或Mac OS X机器中通过RDP访问树莓派的Raspbian图形桌面。

在树莓派上安装XRDP软件,具体命令如下所示。

$ sudo apt-get update
$ sudo apt-get install xrdp

一旦软件安装完毕,它就会自动启动xrdp服务,也就是说,每当树莓派重启时,该服务就会自动启动。

如果你的系统是Windows 7及其之后的版本,那么实际上已经包含了用于连接树莓派的RPD客户端了。它位于启动菜单的All Programs/Accessories/Remote Desktop Connection菜单中。对于较旧的Windows版本,你可以从ModMyPi下载客户端,地址为http://bit.ly/1TSIPf3

对于Mac OS X用户来说,可以从Microsoft公司网站上面下载为Mac OS X系统提供的Microsoft RDP客户端,地址为https://www.microso.com/en-gb/download/details. aspx?id=18140。

Linux机器所需的客户端可以从http://www.rdesktop.org/下载。

启动RDP客户端时,它会询问要连接到哪台计算机,这时输入树莓派的IP地址即可。之后,它会要求你提供平常登录树莓派所用的用户名和密码(见图2-10),也就是说,除非已经修改了默认设置,否则的话用户名为Pi,密码为Raspberry。

图2-10 利用RDP登录

RDP的作用与VNC一样,不过更加高效,所以屏幕内容的刷新会更加流畅。它唯一的缺点是对于Mac OS X用户来说,它无法与OS X的共享屏幕功能搭配使用。

请参考2.8节。

你希望树莓派出现在Mac OS X的Finder列表中,从而可以使用Finder来连接树莓派,并浏览其文件系统。

Mac OS X操作系统本身就支持使用Finder通过网络浏览文件(见图2-11)。不过,你必须对树莓派的配置做相应的修改,以便支持OS X浏览其文件系统。

图2-11 在Mac OS X的Finder中的树莓派

你需要知道树莓派的IP地址(见2.2节)。

现在,在树莓派上输入下列命令来安装netatalk。

$ sudo apt-get install netatalk

然后,回到Mac上,在Finder菜单中选择Go→Connect to Server,然后输入afp://192.168.1.16作为服务器地址(你要使用自己树莓派的IP地址替换这里的地址)。然后,单击Connect,系统就会提示登录。在出现登录提示符之前,我不得不重启了自己的树莓派。

使用树莓派默认的用户pi和相应密码登录后,Finder就会显示树莓派home目录下面的内容。

对于树莓派来说,还有一些配置需要修改。

$ sudo apt-get install avahi-daemon
$ sudo update-rc.d avahi-daemon defaults

然后,输入下列命令。

$ sudo nano /etc/avahi/services/afpd.service

将下列内容粘贴到该文件中。

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
   <name replace-wildcards="yes">%h</name>
   <service>
      <type>_afpovertcp. _tcp</type>
      <port>548</port>
   </service>
</service-group>

为了让它作为守护进程运行,可以使用如下所示的命令:

$ sudo /etc/init.d/avahi-daemon restart

回到Mac,这时Finder里面应该可以看到自己的树莓派了。

在树莓派和Mac之间轻松传递文件的能力是非常有用的功能。这样的话,即使树莓派没有外接鼠标、键盘和显示器,也能使用其上的文件了。

你还可以在Mac上面打开树莓派中的文件,就如同它们就在Mac上面一样。它带来的好处就是你能够使用TextMate或者自己喜欢的OS X文本编辑器来编辑树莓派上面的文件。

如果你的系统是Windows或者Linux的话,你还可以配置树莓派,让其作为网络附属存储NAS,从而实现文件共享,具体参见2.12节。

本节改编自http://bit.ly/HRnOBv提供的教程,该教程出自Matt Richardson和Shawn Wallace所著的Getting Started with Raspberry Pi(O’Reilly)。

你已经建立了VNC,但是希望共享树莓派的屏幕,就像共享网络中的其他Mac OS X设备那样。

首先,按照2.8节介绍的方法安装VNC。同时,你还要看完2.10节才行。

然后,输入下列命令。

$ sudo nano /etc/avahi/services/rfb.service

然后,将下列内容粘贴到编辑器中。

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_rfb. _tcp</type>
    <port>5901</port>
  </service>
</service-group>

现在,输入下列命令。

$ sudo /etc/init.d/avahi-daemon restart

这时,你将看到如图2-12所示的Share Screen选项。当提示输入密码时,请输入为VNC所设置的密码,而非树莓派的密码。

图2-12 利用Mac OS X的Finder实现树莓派屏幕共享

利用本节介绍的方法,可以简化分享树莓派屏幕的过程。

如果网络中有多个树莓派的话,就需要分别给它们取不同的名称,以便能够在网络中标识它们(见2.4节)。

如果你使用的是Windows或Linux系统,那么还可以利用VNC来连接树莓派(见2.8节)。

本节改编自http://bit.ly/HRnOBv提供的教程,该教程出自Matt Richardson和Shawn Wallace所著的Getting Started with Raspberry Pi(O’Reilly)。

你想要把树莓派用作网络存储服务器,即从网络中的电脑访问树莓派连接的大容量USB驱动器。

这个问题的解决方案是安装配置Samba。为此,可以使用如下所示的命令。

$ sudo apt-get install samba
$ sudo apt-get install samba-common-bin

现在,请将USB硬盘驱动器接入树莓派。该驱动器将自动挂载到/media文件夹下面。为了检查是否挂载到位,可以使用下列命令进行检查。

$ cd /media
$ ls

这时,该驱动器应该被显示出来,其名称为格式化它时所取的那个。树莓派每次重启的时候,都会自动挂载这个驱动器。

现在,你需要配置Samba,以便该驱动器可以在网络上共享。为此,首先要添加一个Samba用户(pi)。请输入下列命令,并提供一个密码。

$ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.

接下来,需要修改/etc/samba/smb.conf文件,具体如下所示。

$ sudo nano /etc/samba/smb.conf

需要寻找的第一行位于文件顶部附近。

workgroup = WORKGROUP

如果你打算通过Windows机器连接时,只需要修改这里就行了。这里应该改成Windows工作组的名称。对于Windows XP系统来说,默认的工作组名称是MSHOME;对于后续的Windows版本来说,其名称为HOME。(但是,还是检查一下自己的Windows网络为好。)

下一个需要修改的地方位于该文件下方的Authentication部分。

请找到下面这行内容。

# security = user

删除前面的注释符号#,启用安全保护。

最后,向下滚动到文件尾部,并添加如下所示内容。

[USB]
path = /media/NAS
comment = NAS Drive
valid users = pi
writeable = yes
browseable = yes
create mask = 0777
public = yes

保存文件,并输入下列命令重启Samba。

$ sudo /etc/init.d/samba restart

如果一切正常的话,USB驱动器现在就能够实现网络共享了。

如果要从Mac OS X连接驱动器的话,只需在Finder菜单中选择Go→connect to Server。然后,在Server Address字段中输入smb://raspberrypi/USB,这时就会出现一个登录对话框,在此,你需要将用户名改为pi(见图2-13)。

图2-13 使用Mac OS X Finder连接NAS

如果你想从Windows机器上面连接NAS的话,见具体过程取决于Windows的版本情况。不过,基本过程是一致的,就是需要输入网络地址,该地址应该为\\raspberrypi\USB(见图2-14)。

图2-14 从Windows系统连接NAS

之后,输入正确的用户名和密码,就可以使用NAS磁盘了(见图2-15)。

图2-15 在Windows上浏览NAS

如果你是Linux用户,可以使用下列命令来挂载NAS驱动器。

$ sudo mkdir /pishare
$ sudo smbmount -o username=pi,password=raspberry //192.168.1.16/USB /pishare

你也许想要修改树莓派的网络名称,例如piNAS,具体方法请参考2.4节。

你想要让树莓派进行网络打印。

使用CUPS(Common Unix Printing System,CUPS)打印系统。

首先,请在终端输入下列命令来安装CUPS,这个过程可能需要一些时间。

$ sudo apt-get install cups

为了使用CUPS,需要管理员权限,为此,可以使用下列命令提升权限。

$ sudo usermod -a -G lpadmin pi

CUPS提供了一个Web配置接口。无论是Midori,还是Dillo浏览器,都可以用来浏览CUPS的管理页面,但是,Iceweasel要更好一些。

安装Iceweasel浏览器的命令如下所示。

$ sudo apt-get install iceweasel

你可以从Start菜单的Internet组中启动Iceweasel浏览器,然后打开地址http://localhost:631

找到Administration标签,选择Add Printer选项。这时将显示一个打印机清单,列出所有网络上面和直接连接到树莓派的USB端口的打印机(见图2-16)。

图2-16 利用CUPS查找打印机

然后,按照一系列的对话框的提示就可以完成打印机的配置了。

完成所有步骤之后,你可以利用AbiWord来测试打印机(参见4.2节)。输入一些文本并进行打印时,你会看到刚才添加的打印机已经处于可用状态了(见图2-17)。

图2-17 从AbiWord进行打印

你可以访问CUPS的官方网站(http://www.cups.org)。


相关图书

ARM64体系结构编程与实践
ARM64体系结构编程与实践
树莓派用户指南(第4版)
树莓派用户指南(第4版)
树莓派机器人实战秘笈(第3版)
树莓派机器人实战秘笈(第3版)
树莓派渗透测试实战
树莓派渗透测试实战
树莓派Python编程入门与实战(第2版)
树莓派Python编程入门与实战(第2版)
开源硬件创客——15个酷应用玩转树莓派
开源硬件创客——15个酷应用玩转树莓派

相关文章

相关课程