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

978-7-115-60908-3
作者: 西蒙·蒙克(Simon Monk)
译者: 韩波
编辑: 胡俊英

图书目录:

详情

本书是对树莓派开发的内容进行全面升级之后的第 3 版,囊括丰富的实践示例,详细讲解树莓派的配置与管理、网络连接、操作系统及软件,以及使用Python进行树莓派开发的各项技巧,包括有关Python编程的基础知识、列表与字典、Python高级特性。同时,本书还涉及机器视觉、硬件基础、控制硬件、电机、数字输入、传感器、显示设备、音频设备、物联网、家庭自动化、Arduino等内容。
本书适合程序员、计算机软硬件爱好者,以及对树莓派感兴趣的读者阅读,也适合作为树莓派相关实践课程的指导书。
 

图书摘要

版权信息

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

ISBN:978-7-115-60908-3

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

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

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

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

版  权

著    [英]西蒙·蒙克(Simon Monk)

译    韩 波

责任编辑 胡俊英

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

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

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

读者服务热线:(010)81055410

反盗版热线:(010)81055315

版权声明

Copyright© 2020 by Simon Monk. All rights reserved.

Simplified Chinese Edition, jointly published by O’Reilly Media, Inc. and Posts & Telecom Press, 2023. Authorized translation of the English edition, 2020 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.授权人民邮电出版社有限公司出版。未经出版者书面许可,对本书的任何部分不得以任何方式复制或抄袭。

版权所有,侵权必究。

O’Reilly Media, Inc. 介绍

内容提要

本书是对树莓派开发的内容进行全面升级之后的第 3 版,囊括丰富的实践示例,详细讲解树莓派的配置与管理、网络连接、操作系统及软件,以及使用Python进行树莓派开发的各项技巧,包括有关Python编程的基础知识、列表与字典、Python高级特性。同时,本书还涉及机器视觉、硬件基础、控制硬件、电机、数字输入、传感器、显示设备、音频设备、物联网、家庭自动化、Arduino等内容。

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

资源与支持

资源获取

本书提供如下资源:

本书源代码;

配套彩图文件;

本书思维导图;

异步社区7天VIP会员。

要获得以上资源,您可以扫描下方二维码,根据指引领取。

提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。


当您发现错误时,请登录异步社区(https://www.epubit.com),按书名搜索,进入本书页面,点击“发表勘误”,输入勘误信息,点击“提交勘误”按钮即可(见右图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给本书的责任编辑(sunzhesi@ptpress.com.cn)。

如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

“异步社区”(www.epubit.com)是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。

“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域30余年的发展与积淀。异步图书面向IT行业以及各行业使用IT技术的用户。

第3版前言

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

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

截至撰写本书时,树莓派的销售量已超过4000万台;在性能方面,树莓派已经足以替代PC。随着可以在树莓派上运行的有关互联网浏览、电子邮件、办公套件和照片编辑的开源软件越来越多,树莓派将变得更加流行。

不过,即使是树莓派 4,仍然提供了通用输入输出(General Purpose Input/Output,GPIO)引脚,供业余爱好者在树莓派上添加自己的电子元件。

此次改版,我们进行了全面的更新,以涵盖树莓派的各种新型号,并反映Raspbian操作系统的许多变化和改进。此外,还增加了关于音频设备和家庭自动化的新章节。

我们对本书内容进行了精心编排,你既可以像阅读普通图书一样进行顺序阅读,也可以随机查阅各种示例。同时,你还可以通过目录或索引查找自己感兴趣的内容,然后进行跳跃式阅读。如果某些内容涉及其他章节,会有相应的提示,以便你查阅有关内容。

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

如你所料,本书提供大量示例代码(大部分为Python程序)。这些示例代码全部是开源的,并且可以从异步社区网站或GitHub下载。

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

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

阅读指南

本书的实战风格意味着它不是一本必须从前到后按顺序阅读的书。相反,本书是由独立的示例组成的,并按章节进行分类。当一个示例需要你事先了解一些其他主题的知识时,会让你先去阅读与相应主题相关的另一个示例。

你可能会发现,为了完成某个树莓派项目,经常需要从一个示例跳转到另一个示例。

为此,我给大家规划了几条路径,这些路径适用于不同类型的读者。

1.树莓派初学者

阅读第1~3章的大部分内容——特别是1.1节、1.2节、1.4节和1.6节,之后,就可以根据需要进行跳读。

2.Python学习者

如果你想通过树莓派来学习Python编程,则可以阅读第5~7章,不过,有时候会需要回过头来阅读前面几章中的某些示例。

3.电子爱好者

如果你还不熟悉Python编程,则需要先了解第5~7章介绍的Python知识,学习第8章后,就可以根据自己的兴趣阅读后面的章节,并着手开发树莓派电子技术项目。

该图标表示技巧、建议或一般性注释。

该图标表示警告或警示。

该图标提示你观看与本节内容相关的视频。

示例代码的用法

本书的补充资料(示例代码等)都可以从异步社区下载。

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

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

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

O’Reilly在线学习平台(O’Reilly Online Learning)

40多年来,O’Reilly Media一直致力于提供技术和商业培训、知识和卓越的见解,以帮助公司取得成功。

我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly和200多家其他出版商提供的大量文本和视频资源。更多相关信息请访问O’Reilly官网。

如何联系我们

美国:

O’Reilly Media,Inc.

1005 Gravenstein Highway North

Sebastopol,CA 95472

中国:

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

欢迎读者对本书提出意见或指出技术问题,请发送电子邮件至errata@oreilly.com.cn。

若要获取有关我们的图书、课程、会议和新闻的更多信息,请访问O’Reilly官网。

致谢

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

我还要感谢技术审稿人Duncan Amos和Ian Huntley,他们的帮助和杰出的建议,无疑为本书做出了巨大贡献。

同时,我也要感谢Jeff Bleiel和O’Reilly团队的所有成员。当然,还有Octal出版社的Bob Russell。

西蒙·蒙克

第1章 配置与管理

1.0 引言

当你购买树莓派的时候,实际上只是在购买一块组装好的印制电路板,它甚至连电源和操作系统都没有。在正式使用树莓派之前,需要按照本章介绍的内容做好必要的设置。

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

1.1 选择树莓派型号

1.1.1 面临的问题

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

1.1.2 解决方案

树莓派型号的选择,在很大程度上取决于你打算用它来做什么。表1-1列出了一些用途及推荐的型号。

表1-1 树莓派型号的选择

用途

推荐的型号

备注

替换台式计算机

B型树莓派4(4 GB)

如需浏览网页,则需要4 GB的内存

电子实验

B型树莓派2或B型树莓派3

具有适当性能的硬件可以减少软件问题,但是对性能没有过高的要求

计算机视觉

B型树莓派4(4 GB)

最高的性能需求

家庭自动化

B型树莓派2或树莓派3

功耗低

媒体中心

树莓派3或树莓派4

用于满足视频处理工作所需性能

电子显示板

任何型号

最好是支持Wi-Fi的型号,用于远程访问

嵌入式电子项目

W型树莓派Zero

低成本且支持Wi-Fi,可进行远程访问

从通用性的角度来看,你应当选择B型树莓派3。与最初的树莓派相比,其内存容量提升4倍,并且具有4核处理器;与W型树莓派Zero相比,其在处理大部分工作时的表现更加出色;在发热量方面,其要低于树莓派4。B+型树莓派3的一大特色是内置Wi-Fi和蓝牙功能,所以你无须使用外置的Wi-Fi适配器或蓝牙硬件。

1.1.3 B型树莓派4

在撰写本书时,B型树莓派4(见图1-1)刚刚发布。

图1-1 B型树莓派4

该型号打破了自2014年B+型树莓派发布以来,树莓派连接器位置保持不变的惯例。这意味着之前为B+型树莓派、树莓派2、树莓派3及相关型号设计的外壳将无法适用于B型树莓派4。

这个新型号还首次允许用户选择内存大小(1GB、2GB或4GB),同时,提供2GB和4GB内存的树莓派的价格也相应水涨船高。

实际上,这个型号最显著的变化是,为早期版本提供电源的micro-USB接口被取消,改为USB-C接口。此外,早期版本全尺寸的单个HDMI被一对micro-HDMI所取代,因此,你将需要一个特殊的HDMI引线或适配器。这样你可以同时连接两台显示器。

实际上,这款树莓派比之前的版本的运行速度要快得多(特别是如果你选择4GB内存版本)。事实上,一些基准测试表明,它比以前任何一款型号的树莓派都能快3~4倍。不过,这是以电路板上的主芯片运行温度比早期版本的更高为代价的——事实上,它热起来的温度足以伤人。

另外,如果你打算将树莓派嵌入一个用途单一的项目中,不妨选择W型树莓派Zero:一方面,它比较紧凑;另一方面,可以省点儿钱。

A+型树莓派3本质上是B+型树莓派3,只是去掉了以太网连接器,并将4个USB接口中的3个去掉了。此外,A+型树莓派3的内存只有B+型树莓派的一半,但它的价格要低得多(截至撰写本书时,已经便宜了不少)。所以,如果你的项目不需要额外的接口,它是绝对值得考虑的。

1.1.4 进一步探讨

从图1-2可以看出,W型树莓派Zero的体积大约只有B型树莓派3或B型树莓派4的一半,两个micro-USB接口中的一个用于通信,另一个用于供电。此外,由于采用的是mini-HDMI和micro-USB OTG接口,这为W型树莓派Zero节省了大量空间。对W型树莓派Zero来说,要想连接键盘、显示器和鼠标,必须提前准备好支持USB和HDMI的适配器,否则是无法连接标准外围设备的。此外,A+型树莓派不仅体积要比W型树莓派Zero大,还拥有全尺寸的USB和HDMI。

图1-2 从左到右分别为W型树莓派Zero、B型树莓派3以及B型树莓派4

表1-2总结了迄今为止所有型号的树莓派的差异,其中最近发布的型号位于顶部。

表1-2 各种型号的树莓派的比较

型号

内存容量

处理器数量
(内核数量 ×
主频)

USB接口
数量

是否提供以太网接口

备注

B型树莓派4

1 GB/2 GB/
4 GB

4 × 1.5 GHz

4(2 × USB3.0接口)

2 × micro-HDMI

A+型树莓派3

512 MB

4 × 1.4 GHz

1

Wi-Fi和蓝牙

B+型树莓派3

1 GB

4 × 1.4 GHz

4

Wi-Fi和蓝牙

B型树莓派3

1 GB

4 × 1. 2 GHz

4

Wi-Fi和蓝牙

W型树莓派Zero

512 MB

1 × 1 GHz

1(micro-USB接口)

Wi-Fi和蓝牙

树莓派Zero

512 MB

1 × 1 GHz

1(micro-USB接口)

低成本

B型树莓派2

1 GB

4 × 900 MHz

4

A+型树莓派

256 MB

1 × 700 MHz

1

B+型树莓派

512 MB

1 × 700 MHz

4

已停产

A型树莓派

256 MB

1 × 700 MHz

1

已停产

B型树莓派rev2

512 MB

1 × 700 MHz

2

已停产

B型树莓派rev1

256 MB

1 × 700 MHz

2

已停产

如果你拥有的树莓派是已经停产的老款树莓派,那也没关系,因为它仍然非常有用。

虽然其在性能方面不如新型的树莓派4,但是在许多情况下,性能是无关紧要的。

如果你要购买一台新的树莓派,我认为用于通用计算机的最佳选择是 B+型树莓派 3。如果你需要尽可能强的运算能力,并且不介意处理器芯片发热,可以考虑树莓派4。如果你不需要Wi-Fi或者不要求设备小巧,也可以考虑B型树莓派3、B型树莓派2、A+型树莓派3、树莓派Zero或者W型树莓派Zero等型号。

1.1.5 提示与建议

树莓派有各种型号,价格低的树莓派Zero与W型树莓派Zero是嵌入各种电子项目的理想之选,有了它们,你就不用担心购置成本问题。关于相应产品的介绍,参考9.21节。

1.2 装配系统

1.2.1 面临的问题

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

1.2.2 解决方案

除非你打算把树莓派嵌入项目内部,或者想将其用于媒体中心,否则,就需要为其安装键盘、鼠标、显示器,甚至Wi-Fi无线网卡——如果你的树莓派没有提供内置的Wi-Fi模块。

图1-3展示的是一个典型的树莓派系统。如果你使用的是树莓派4,还可以(如果有需要)连接第二台显示器。但是,如果你只有一台显示器,请将它连接到更靠近USB-C电源适配器的micro-HDMI。

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

1.2.3 进一步探讨

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

树莓派4可以同时连接两台显示器。这时,你能够在屏幕之间移动鼠标指针,但Raspbian操作系统需要知道屏幕之间的相对位置。为此,你可以在主菜单的首选项部分打开屏幕配置工具(见图1-4)。

图1-4 配置多个屏幕

你可以拖动标有HDMI-1和HDMI-2的两个方框,它们代表两台显示器的物理位置。所以,就这里来说,显示器是并排布置的,左边的显示器连接到HDMI-1。

如果你拥有的是老款树莓派,或者A型树莓派、A+型树莓派,并且USB接口不够用,那么你还需购置USB集线器。

1.2.4 提示与建议

请读者参考树莓派官方出品的快速入门指南。

1.3 封装树莓派

1.3.1 面临的问题

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

1.3.2 解决方案

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

因此,为树莓派购买某种形式的保护装置不失为一项明智之举。如果你将来要用到树莓派的GPIO引脚(通过它们可以连接外部电子元件),图1-5所示的PiBow Coupé就是一个不错的选择,它不仅设计美观,而且非常实用——它不仅适用于树莓派4,也适用于早期版本。

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

1.3.3 进一步探讨

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

1.简易的塑料壳,常分为两个部分,可通过卡扣组装在一起。

2.VESA壁挂式保护壳(可以附着在显示器或电视的背面)。

3.乐高样式的保护壳。

4.用3D打印技术制作的保护壳。

5.激光切割而成的卡扣式亚克力保护壳。

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

1.你会用到GPIO引脚吗?如果你打算为树莓派连接外部电子设备,这个问题就显得非常重要。

2.散热效果如何?如果你打算让树莓派超频运行(见1.14节),或者经常用于播放视频、玩游戏,在这些情况下树莓派通常会产生大量热量,所以散热是需要重点考虑的问题。

3.确保外壳与你的树莓派型号相匹配。

如果你有机会使用3D打印机,也可以自己打印外壳。为此,你可以到Thingiverse或MyMiniFactory站点上搜索Raspberry Pi,那里有很多不错的设计。

此外,你还能找到一些散热器套件,它们通常会提供许多小巧的、带有不干胶的散热器,可以放到树莓派的芯片上用以散热。当你对树莓派的要求比较苛刻(如播放大量视频)的时候,这些部件将会派上大用场。

如果你有一台树莓派4,可以考虑安装一个小风扇来为其降温,比如图1-6所示的Pimoroni Fan SHIM风扇。

图1-6 Pimoroni Fan SHIM风扇

1.3.4 提示与建议

Adafruit网站也为树莓派提供了各种各样的外壳,其中,有些外壳还为内置SSD(Solid State Disk,固态盘)预留了空间,具体参考1.10节。

此外,你也可以到电商平台寻找其他树莓派商家提供的各式外壳。

1.4 选择电源

1.4.1 面临的问题

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

1.4.2 解决方案

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

电源在电流大小方面的要求,取决于树莓派的具体型号以及其连接的外围设备。你最好购买一款能够轻松驱动任何型号树莓派的电源,因此电流一般不宜小于1A。

如果你在同一个卖家那里购买树莓派和电源,他通常能够告诉你某款电源是否与你的树莓派相匹配。

树莓派4应该使用能够提供3A电流的电源,这是因为它比早期型号的处理能力更强,需要更多的电力;同时,由于两个USB 3.0接口能够为大功率USB外设(如外部USB驱动器)提供电流高达1.2A的电源,所以,也许需要更多的电力。

如果打算让树莓派4之前的型号使用Wi-Fi或USB外设,则需要提供大量的电力,这时应该配置一个能够提供1.5A甚至2A电流的电源。此外,还要小心那些非常廉价的电源,它们可能无法提供额定的5V电压。

1.4.3 进一步探讨

树莓派 4 是第一款采用更加先进的 USB-C 接口的树莓派。与早期树莓派上使用的micro-USB接口不同,USB-C接口没有正反方向,可以随意插拔(见图1-7)。

图1-7 树莓派3(上)和树莓派4(下)的电源和视频接口

在图1-7中,树莓派4的USB-C接口位于树莓派3的micro-USB接口下方。此外,我们可以看到树莓派4用一对micro-HDMI取代了单个全尺寸HDMI。

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

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

1.充电器过热,甚至有可能引发火灾。

2.充电器本身报废。

3.高负荷运行时(比如当树莓派使用Wi-Fi无线网卡的时候),会导致电压下降,从而可能导致树莓派重启。

如果你想使用树莓派3或更早的版本,那么电源必须能够提供1A及以上的电流。如果电源只是标明了功率,而没有给出电流,那么将功率除以5V就是电流。也就是说,一个5V、10W的电源能够提供2A(2000mA)的电流。

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

在图1-8中,我测量了B型树莓派的电流,并与B型树莓派2和B型树莓派4的电流进行了相应的比较。

图1-8 树莓派在引导期间的耗电情况

虽然新型号的树莓派(从A+型到树莓派4)要比旧型号的树莓派更加节能,但是当处理器满负荷运转,或者使用了大量外围设备的时候,它们的电流需求也是不低于树莓派4的,甚至更高。

当树莓派持续运行时,树莓派2(以及树莓派3)不仅在温度方面要比最新的树莓派4低得多,而且耗电量也少。

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

1.4.4 提示与建议

你可以购买一个在树莓派关机时能自动切断电源的设备。 

1.5 选择操作系统

1.5.1 面临的问题

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

1.5.2 解决方案

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

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

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

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

1.5.3 进一步探讨

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

请注意,如果你打算按照本书中的例子对SD卡进行写操作,那么要求你的计算机具有SD卡插槽(以及一个SD转microSD接口),或者专门购置一个USB SD读卡器。

1.5.4 提示与建议

树莓派的官方网站提供了许多树莓派发行包,读者可以访问官网了解详情。

1.6 通过NOOBS刷写microSD卡

1.6.1 面临的问题

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

1.6.2 解决方案

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

从树莓派官网下载NOOBS(注意,是NOOBS,而非NOOBS Lite)压缩文件,将其解压缩,然后将其存放到microSD卡中即可。为此,要求计算机有SD卡插槽,或提供USB适配器和SD转microSD适配器。

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

microSD卡

需要注意的是,并不是所有的microSD卡的性能都是一样的,所用的microSD卡的性能越好,树莓派的性能也会越高,所以,我们最好选用等级为“class 10”的microSD卡。在选择容量时,不应该选择低于 16 GB 的;鉴于价格差异较小,实际上 32 GB是更好的选择,因为它能够提供足够的扩展空间。

将存有解压缩后的NOOBS文件的microSD卡插入树莓派,然后启动树莓派。启动后,你将看到图1-9所示的界面。在此界面中,选择Raspbian,并单击Install按钮。

图1-9 NOOBS的开始界面

图1-9显示了为树莓派4提供的各种选项。在不同型号的树莓派上使用NOOBS时,你会看到不同的选项——因为对于不同的型号,它仅显示适用于该型号的相关选项。

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

图1-10 NOOBS重写SD卡

需要注意的是,完成这个过程可能需要一段时间。有时候,系统还会提示你连接Wi-Fi网络。

文件复制过程一旦结束,你将收到镜像成功的消息。届时,你可以按Enter键,将显示国家/地区信息对话框,你可以在其中选择相应的位置选项。注意,树莓派是一款英国产品,所以,这里的默认选项为英国。之后,树莓派就会重启,这时,你可以配置新安装的操作系统。首先,它会要求你选择国家/地区和其他位置选项(见图1-11)。

图1-11 安装完成后开始配置树莓派

然后,单击Next按钮,这时系统会提示将初始密码raspberry改为更安全的密码。接下来,系统会询问你是否要检查更新。需要注意的是,这项任务需要连接互联网,否则它无法正常工作。如果你已经连接到了网络(无论是通过Wi-Fi还是以太网),最好检查更新。如果当前无法连接互联网,将来也可以随时检查更新,具体方法参见 3.40节。

树莓派的系统一旦运行起来,你的首要任务就是连接互联网(见2.1节和2.5节)。

1.6.3 进一步探讨

与完整的NOOBS不同,NOOBS Lite实际上并不包含Raspbian或任何其他发行版,它需要在microSD卡安装到树莓派后下载。在这种情况下,你的树莓派必须已连接互联网。之后,NOOBS Lite安装程序(见图1-12)会让你选择一个Wi-Fi网络。一旦连接上网络,NOOBS Lite安装程序就会下载一组操作系统,以供你进行选择。

图1-12 NOOBS Lite安装程序

其中,Raspbian Lite是非常有趣的,它实际上是Raspbian的简化版本,专门用于headless模式(headless模式是指不需要显示器、键盘、鼠标等设备的模式,见1.9节)的树莓派的配置。

为了能将NOOBS正确地安装到microSD卡,必须将microSD卡格式化为FAT32格式。在通常情况下,市场上出售的SD和microSD卡都已经提前格式化为FAT32格式了。如果你打算使用的是一张旧卡,并且需要格式化成FAT32,那么只要利用操作系统自身的工具就可以完成。有时,SD卡可能会“顽固”地拒绝格式化,遇到这种情况,可以将其放入数码相机,并通过相机的格式化选项完成格式化。microSD卡的类型对安装于其上的操作系统的运行速度有非常大的影响,所以挑选的时候,应当尽量选择标有“class 10”的microSD卡。

1.6.4 提示与建议

参考树莓派官网的提示,了解使用NOOBS安装操作系统的详细信息,还能找到更多类型的发行包。

如果需要提高对SD卡的控制权,比如希望在安装系统后自动下载并运行一个程序,参考1.8节。

如果想通过PiBakery用Raspbian Lite配置一个headless模式的树莓派,参见1.9节。

1.7 在不借助NOOBS的情况下安装操作系统

1.7.1 面临的问题

你想把树莓派的操作系统直接存放到SD卡或其他可移动介质上。

1.7.2 解决方案

一般来说,如果你只是想用Raspbian来配置树莓派,那么参考 1.6 节介绍的方法即可,因为它比本节介绍的方法简单得多。

但是,有时候你可能希望将磁盘镜像直接写入SD卡来运行系统——而不必从树莓派上的SD卡运行操作系统的安装程序。

之所以要这么做,可能是因为想使用非标准操作系统,或者,正如你将在本节中看到的,你希望使磁盘镜像位于SD卡以外的地方——可能是外部USB驱动器。

无论你出于何种原因,将磁盘镜像写入SD卡或其他介质的过程如下所示。

1.使用macOS、Windows或Linux计算机(而非你的树莓派)下载磁盘镜像刻录软件Etcher。

2.还是在你的计算机上,下载你要安装的磁盘镜像。你可以从树莓派官网找到官方发行版。

3.将SD卡(或任何你想安装操作系统的介质)插入计算机。最好是断开其他可移动介质的连接,这样你就不会意外地覆盖它们了。

4.启动Etcher(见图1-13),然后选择镜像文件。在这里,我们选择的是extension.iso,不过,你也可以选择该文件的ZIP格式,这也是允许的。

5.单击Etcher上的Select drive按钮,选择SD卡或其他可移动介质。

注意,这里选择的存储介质上的所有数据都会被删除,所以要非常小心,千万不要选择计算机的主硬盘。

6.单击Flash!按钮,等待镜像文件刻录到可移动介质上。

准备好SD卡或其他可移动介质后,将其连接到树莓派,当树莓派上电后,就会启动已安装的操作系统。

图1-13 使用Etcher刻录磁盘镜像

1.7.3 进一步探讨

硬件供应商有时会提供自己的磁盘镜像,其中内置了对其硬件的支持。但是,最好避免使用这样的镜像,因为这样做就意味着你将无法获得使用标准Raspbian发行版和所有预装软件带来的各种好处。同时,这也意味着,如果你的某个软件出现了问题,你将很难得到技术支持,因为你使用的是非标准的发行版。

1.7.4 提示与建议

关于使用本节介绍的方法从适当的磁盘而非SD卡上运行Raspbian的例子,参见1.10节。

1.8 使用PiBakery配置和刷写SD卡

1.8.1 面临的问题

你希望将Raspbian安装到多个microSD卡上供多个树莓派使用,但你又不想对各个树莓派进行单独设置。

1.8.2 解决方案

下载由David Ferguson创建的PiBakery工具。该软件非常有用,并且支持macOS或Windows计算机,它不仅可以刷写SD卡(见1.6节),而且能设定基本安装完成后需要自动执行的其他步骤,如设置Wi-Fi连接(见2.5节)或修改树莓派的网络名称(见2.4节)。

首先,你需要下载PiBakery。当你运行安装程序时(见图1-14),你可以选择Raspbian Full或Raspbian Lite,或者两者都选。除非你想在没有键盘、鼠标或显示器的情况下使用树莓派,否则只需要选择Raspbian Full即可。请注意这些文件的大小——都是“庞然大物”!

图1-14 安装PiBakery

安装好PiBakery后,请运行该程序。这时,会弹出一个窗口,你可以通过将块拖动到画布上来指出想要如何配置Raspbian microSD卡。在图1-15中,你可以看到我们是如何为Startup项添加一个“On Every Boot”块,然后在它下面添加3个相互连接的块的。

图1-15 使用PiBakery配置microSD卡镜像

在上图中,第一个块用于确保启用虚拟网络控制台(Virtual Network Console,VNC)(见2.8节),第二个块用于设置Wi-Fi连接,最后一个块指出如何启用I2C接口(见9.3节)来连接外部电子设备。

当你对设置感到满意时,请将microSD卡插入计算机,然后单击Write按钮。这时会出现一个提示,要求你选择用于安装Raspbian操作系统的SD卡,并选择Raspbian Lite或Raspbian Full(大部分读者选择Raspbian Full即可,除非你打算让树莓派运行在headless模式,具体参见1.9节)。之后,单击Start Write按钮,就会开始在microSD卡上安装Raspbian操作系统。安装完成后,弹出microSD卡,并将其插入树莓派,然后,就可以启动操作系统并直接使用了——根本无须进行任何其他设置。

1.8.3 进一步探讨

当你需要设置一大堆树莓派(比如为教室的所有学生设置树莓派)的时候,PiBakery就是你的不二之选。

除了我们在这里使用的块之外,还有很多其他的块,它们也可以在启动时自动执行某些操作,比如自动运行程序,甚至可以从互联网下载并安装软件包。

1.8.4 提示与建议

在1.9节中,我们将再次使用PiBakery将树莓派设置为headless模式(没有键盘、鼠标或显示器)。

需要注意的是,不要将这里的PiBakery与macOS工具ApplePi-Baker搞混了。对使用macOS的读者来说,当需要备份和恢复树莓派SD卡时,ApplePi-Baker是一个非常棒的工具。

1.9 使用PiBakery配置headless模式的树莓派

1.9.1 面临的问题

你想在不使用键盘、鼠标或显示器(headless模式)的情况下设置一个树莓派(比如W型树莓派Zero)。

1.9.2 解决方案

使用PiBakery(见1.8节)配置带有Raspbian Lite和Wi-Fi凭证的microSD卡,这样你就可以使用SSH(见2.7节)来远程控制树莓派了。

在这个解决方案中,假设需要对W型树莓派Zero进行配置,具体任务包括以下几项。

1.将网络名称指定为“PiZero”,这样便于在网络中找到它。

2.连接Wi-Fi,从而连接到互联网。

3.从互联网上下载并运行一个Python脚本。

你目前可能还用不到第3步,但将来可能会用到,所以,提前了解一下也没坏处。

此外,你可以在普通计算机上通过SSH连接W型树莓派Zero。

首先,你需要下载并运行PiBakery(见1.8节)。

然后,像图1-16那样进行配置。同时,不要忘记设置Wi-Fi。需要注意的是,SSH是自动启用的。

图1-16 使用PiBakery配置headless模式的树莓派

这里要运行的Python程序来自10.1节,它使用树莓派的一个GPIO引脚来开启和关闭LED。为了确保会自动下载这个程序,请在“Download file”行输入相应的网址,具体如图1-16所示。

PiBakery有一个特性,即允许我们加载(导入)并保存配置。你可以将图1-16所示的配置加载到PiBakery中,方法是单击Import按钮,然后导航到本书存储库的PiBakery文件夹中的headless_blink.xml文件。关于本书示例代码的下载说明,详见3.22节。

请注意,图1-16中使用了两个引导块。在第一次引导时,主机名被设置为piZero并配置Wi-Fi。第二个块在后续引导时起作用:下载blink程序,并运行它。

因此,在将microSD卡插入树莓派Zero并首次启动后(只需让它运行几分钟即可),需要断电再重新开机。现在,如果你将一个LED连接到18号引脚,它应该开始闪烁。

1.9.3 进一步探讨

对于设置headless模式的树莓派,PiBakery是一个非常不错的方法。不过,除了设置microSD卡首次使用外,你还可以修改配置。所以,如果你把我们之前设置好的树莓派关机,取出SD卡,再插入计算机,PiBakery会检测到SD卡被用过,并加载相应的配置。因为第一次引导已经发生过了,所以只会显示每次启动时的情况。但是,实际上你可以编辑这个配置并进行修改,甚至可以添加更多的块,而无须再次刷写该SD卡。

1.9.4 提示与建议

关于PiBakery的完整文档,参阅PiBakery官网。

1.10 从真正的硬盘或U盘启动

1.10.1 面临的问题

你的microSD卡容量太小了,或者你担心SD卡难以承载整个操作系统。

1.10.2 解决方案

你可以连接外部的USB闪存盘、USB硬盘或大容量的SSD,它们将被树莓派识别为存储设备。然而,如果你希望树莓派能够从外部硬盘启动,而不仅仅是作为数据存储访问它,则需要采取一些额外的步骤。

1.购买一款4GB内存的B型树莓派4。如果你要添加一个合适的磁盘,那么,增加额外的计算能力是非常值得的。此外,从USB启动只是树莓派3和后续型号的启动选项之一。

2.按照1.7节介绍的方法,使用microSD卡为树莓派安装Raspbian操作系统。

3.除非你下载了NOOBS,否则请按照3.40节介绍的方法将树莓派的操作系统更新至最新版本。

4.配置树莓派的硬件,使其从USB启动。这要用到一种被称为OTP(One Time Programming,一次性编程)的技术。顾名思义,OTP 就是对树莓派的硬件进行永久性的改变,并且无法撤销。因此,一定要确保树莓派的操作系统是最新的(见3.40节),并且在终端会话中输入以下命令时要格外小心。

在本书中,所有命令行都以$符号开头,也就是说,如果行首为$,就意味着需要输入一条命令。不过,命令行的响应将不带前缀,与树莓派屏幕上显示的一样。

$ echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

需要注意的是,命令中间的分隔符为|(竖线符号或管道符号)。通常,你可以在Windows计算机键盘上的右Shift键旁边以及Mac键盘上的Enter键附近找到该符号。

关闭你的树莓派(见1.16节),并取出microSD卡。

5.将U盘(或闪存驱动器)连接到你的普通计算机,并按照1.7节介绍的方法安装磁盘镜像。

6.弹出并拔掉普通计算机上的U盘,并将其连接到树莓派上。

7.打开树莓派的电源,它应该开始从U盘启动。你将收到一条消息,告知根文件系统已调整大小。一段时间后,Pixel桌面将出现在屏幕上。

1.10.3 进一步探讨

如果你想把树莓派的主盘换成物理磁盘,同时又想给你的树莓派 2和树莓派3找到一个好的外壳,一个非常不错的解决方案是Element 14提供的DIY Pi Desktop套件。这个套件(见图1-17)包括以下部件。

1.一块USB转mSATA(1.8英寸,1英寸≈2.54厘米)的转接板,它可以安装在你的树莓派上。

2.一个U型USB连接器,可以将树莓派的一个USB接口连接到USB转mSATA接口板。

3.树莓派处理器芯片的散热片。

4.一款时尚、小巧的树莓派外壳,包括一个启动按钮,用于启动树莓派。

除此之外,组装一台完整的树莓派桌面计算机还需要下列部件。

1.一个1.8英寸mSATA磁盘驱动器。我会选择SSD,因为SSD不仅比磁性硬盘更稳固,而且耗电量更小。

2.一个性能良好的电源。因为你现在需要同时为树莓派和U盘供电,所以,有可能需要升级你的电源。Element 14网站建议使用5V、2.5A的电源(见1.4节)。

3.如果你想为树莓派桌面计算机安装一个网络摄像头,可以选择树莓派摄像头(见1.17节)。

图1-17 Element 14网站上的树莓派桌面计算机DIY套件

在组装套件的硬件时,可以参考相应的说明书。但在把所有部件装箱之前,我强烈建议你将树莓派固定到外壳中,因为装箱之后,很难从树莓派中取出microSD卡。

需要注意的是,截至目前,树莓派4还没有这种外壳。

1.10.4 提示与建议

本节内容是在树莓派官网资料的基础上改编的,有关自己组装树莓派桌面计算机的更多信息,请移步树莓派官网。

1.11 连接DVI或VGA显示器

1.11.1 面临的问题

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

1.11.2 解决方案

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

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

1.11.3 进一步探讨

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

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

1.11.4 提示与建议

ELinux上也给出了许多挑选转换器的建议。

1.12 使用复合视频显示器/电视

1.12.1 面临的问题

当文本显示在低分辨率的复合视频显示器上的时候,很难辨认。

1.12.2 解决方案

你需要调整树莓派的分辨率,以适应较小的屏幕。

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

如果你果真打算使用这种屏幕,比如确实需要一个小屏幕,那么你必须做出相应的调整,以使视频输出适合屏幕大小。为此,你必须修改/boot/config.txt文件。

你可以使用笔记本计算机或台式计算机来编辑这个文件,只需将SD卡插入其读卡器即可;或者,你可以直接在树莓派上编辑该文件,这样就无须从树莓派中取出SD卡。如果使用树莓派编辑该文件,通常要用到编辑器nano。由于该软件用起来有一定难度,因此,我建议你在尝试编辑第一个文件之前,先阅读3.7节。如果你愿意继续使用nano编辑文件,请在终端会话中执行以下命令。

$ sudo nano /boot/config.txt

注意,如果要保存所做的修改并退出nano软件,请先按Ctrl+X组合键,然后按Y键确认保存内容,最后按Enter键退出。

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

你需要了解自己屏幕的分辨率是多少。许多小屏幕的分辨率通常是320像素×240像素。在这个文件中,你可以找到如下所示的两行内容。

#framebuffer_width=1280
#framebuffer_height=720

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

framebuffer_width=320
framebuffer_height=240

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

1.12.3 进一步探讨

除此之外,树莓派还可以使用许多廉价的闭路电视(Closed Circuit Television)显示器,这时它们看起来非常像仿古的游戏控制台(见4.4节)。

1.12.4 提示与建议

如果你想阅读其他复合视频显示器的使用指南,可以参考Adafruit提供的有关介绍。

另外,如果你使用的是HDMI视频输出,可以按照本书的1.11节和1.13节介绍的方法来调整图像。

1.13 调整显示器中的图像尺寸

1.13.1 面临的问题

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

1.13.2 解决方案

如果你的问题是图片周围有大量黑边,你可以通过树莓派的桌面配置工具(见图1-18)使屏幕铺满显示器。为了打开这个配置工具,请进入Raspberry Pi菜单(就是带有Raspberry Pi图标的那个菜单),选择Preferences→Raspberry Pi Configuration选项即可。

图1-18 使用Raspberry Pi Configuration工具来解决扫描幅度不够的问题

然后,单击Underscan旁边的Disabled单选按钮。请注意,在单击OK按钮并重新启动树莓派之前,该修改是不会生效的。

如果你的问题正好相反——文本延伸到屏幕之外,请单击Underscan旁边的Enabled单选按钮。

接下来,你需要编辑/boot/config.txt文件。你可以通过移除SD卡并将其挂载在普通计算机上来完成编辑工作,或者直接在树莓派上编辑SD卡。在树莓派上编辑文件通常需要用到 nano 编辑器——不过,这种方法比较复杂,我建议你在尝试编辑第一个文件之前阅读 3.7 节。如果你阅读之后仍然坚持使用 nano 编辑文件,请在终端会话中执行以下命令。

$ sudo nano /boot/config.txt

然后,找到处理过扫描的部分。你需要修改的4行内容显示在图1-19所示的中间部分,并且每一行都以#overscan开头。

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

要保存修改内容并退出nano,先按Ctrl+X组合键,然后按Y键(进行确认),最后按Enter键即可。

之后,可以借助试错法不断调整设置,直到窗口基本铺满整个显示器为止。需要注意的是这4个数字都应该是负数。在调整这些设置时,不妨将−20作为它们的起始值。

图1-19 调整过扫描设置

1.13.3 进一步探讨

若每次修改分辨率之后,都得重启树莓派才能看到修改后的效果,那么整个过程将非常烦琐。但幸运的是这种事情只需要进行一次就行了,并且大部分显示器和电视无须调整就能正常工作。

1.13.4 提示与建议

关于利用raspi-config工具进行欠扫描设置的详细介绍,参考ELinux网站。

1.14 优化性能

1.14.1 面临的问题

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

1.14.2 解决方案

如果你使用的是4核处理器的树莓派2、树莓派3或树莓派4,你不会有太慢的感觉。但是,如果你使用的是单核处理器的老版树莓派,运行给你的感觉就像是“老牛拉破车”。

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

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

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

要配置超频,最简单的方法就是使用Raspberry Pi Configuration工具。

要想打开这个工具,请转至Raspberry Pi菜单,选择Preferences→Raspberry Pi Configuration选项。接下来,打开Performance选项卡(见图1-20)。

图1-20 使用Raspberry Pi Configuration工具进行超频配置

当然,显示的超频(Overclock)选项会随着树莓派型号的不同而有所区别。选择其中一个选项,然后单击OK按钮即可。不过,这里所做的修改只有在重新启动树莓派后才会生效。

如果你在没有显示器的情况下运行树莓派(见1.9节),仍然可以进行超频,但需要先熟悉2.7节中介绍的SSH方面的知识。在你能够连接SSH后,只需在SSH终端中执行以下命令,就能运行raspi-config程序了。

$ sudo raspi-config

之后,请选择Overclock选项,这时将显示图1-21所示的选项。

图1-21 使用raspi-config工具通过命令行进行超频配置

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

1.14.3 进一步探讨

利用超频方法,性能会得到明显改善。为了衡量改善程度,我在15℃的室温环境下对B型树莓派(没有外壳)进行了测试。

我使用下面的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)

注意,在这里给出代码对许多读者来说可能有些突兀,因此,如果你不熟悉Python,不妨先读完第5章,再来看这些代码。

测试结果如表1-3所示,主要包括利用测试设备得到的电流和温度等方面的数据。

表1-3 超频效果

频率

运行时长

电流

温度

700 MHz

15.8 s

360mA

27℃

1 GHz

10.5 s

420mA

30℃

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

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

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

1.14.4 提示与建议

关于raspi-config工具的详细用法,参考ELinux网站。

1.15 修改密码

1.15.1 面临的问题

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

1.15.2 解决方案

将Raspbian安装到SD卡上后,系统会提示你修改密码,但你可以跳过这一步。你可以使用Raspberry Pi Configuration工具随时修改密码。要打开该工具,请进入Raspberry Pi菜单,选择Preferences→Raspberry Pi Configuration选项。然后,进入System选项卡。在那里,你会发现Change Password按钮(见图1-22)。

图1-22 使用Raspberry Pi Configuration工具修改密码

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

1.15.3 进一步探讨

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

$ passwd
Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

1.15.4 提示与建议

关于raspi-config工具的详细用法,参考ELinux网站。

1.16 关闭树莓派

1.16.1 面临的问题

你想关掉自己的树莓派。

1.16.2 解决方案

单击桌面左上角的Raspberry菜单,将打开一个对话框,其中含有图1-23所示的3个关机选项。

1.Shutdown

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

2.Reboot

重新启动树莓派。

3.Logout

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

图1-23 关闭树莓派

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

$ sudo reboot

在安装某些软件之后,通常会用到上面这条命令。当你执行该命令时,会看到图 1-24所示的消息,它展示了 Linux 操作系统的多用户特性,向所有连接到树莓派的用户提出警示。

图1-24 通过终端关闭树莓派

1.16.3 进一步探讨

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

与大多数计算机的关机方法不同,树莓派的关机实际上并非切断电源。关机后,它只是进入了低功耗模式。

1.16.4 提示与建议

你可以购买一款硬件设备,以实现在树莓派关机的同时切断其电源。在1.10节中,我们见过一款带有电源按钮的外壳。关于为树莓派添加启动按钮的相关信息,参见12.14节。

1.17 为树莓派安装摄像头模块

1.17.1 面临的问题

你想使用树莓派的摄像头模块(见图1-25)。

图1-25 树莓派的摄像头模块

1.17.2 解决方案

树莓派的摄像头模块是通过排线连接到树莓派上的。

实际上,树莓派摄像头主要有两个版本:原始版本1(见图1-25)和较新的高分辨率版本2。

排线需要连到介于树莓派2、树莓派3或树莓派4的音频和HDMI之间的专用连接器上。要将排线安装到树莓派上,请轻轻拉起连接器两侧的扳手,使其解锁,然后将排线压入槽中,注意要让排线连接器的衬垫背对以太网接口。之后,按下两边的扳手,锁住排线(见图1-26)。

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

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

图1-26 为B型树莓派3安装摄像头模块

请注意,树莓派Zero需要使用特殊的排线或适配器,因为它的摄像头接口比全尺寸的树莓派的接口要小很多(参见A.5节)。

摄像头模块安装好之后,还需要进行必要的软件配置才能使用。最简单的配置方法是使用Raspberry Pi Configuration工具。要打开这个工具,请进入Raspberry Pi菜单,选择Preferences→Raspberry Pi Configuration选项。然后,进入Interfaces选项卡,并将Camera选项设置为Enabled(见图1-27)。

图1-27 使用Raspberry Pi Configuration工具启用摄像头

如果你通过SSH来远程使用树莓派(见2.7节),你也可以使用raspi-config启用摄像头。要运行raspi-config软件,请在终端会话中执行以下命令。

$ sudo raspi-config

然后,选择Interfacing Options,这样就会看到Camera选项(见图1-28)。

图1-28 从命令行使用raspi-config启用摄像头

实际上,有两个命令可用于捕获静态图像和视频:raspistill和raspivid。

要想拍摄单张静态图像,可以使用raspistill命令,具体用法如下所示。

$ raspistill -o image1.jpg

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

为了录制视频,可以使用raspivid命令,具体如下所示。

$ raspivid -o video.h264 -t 10000

上述命令后面的数字表示录像时间,单位是ms,就本例而言,录像时间是10 s。

1.17.3 进一步探讨

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

该摄像头模块能够进行高分辨率的静态拍照和视频录制。

并且,第2版的树莓派摄像头模块可捕捉到3280像素×2464像素的静态图像,也支持1080p30 fps、720p60 fps和640 × 480 p90 fps分辨率的视频。

此外,你可以购买非红外(NoIR)夜视摄像头,由于这种摄像头去掉了红外滤镜,因此,可以在夜间红外照明的情况下工作。

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

1.17.4 提示与建议

关于命令raspistill和raspivid的详细介绍,参考RaspiCam的说明文档。

1.18 使用蓝牙设备

1.18.1 面临的问题

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

1.18.2 解决方案

如果你使用的是树莓派3或树莓派4,事情就简单多了:这两个版本不仅提供了Wi-Fi无线网卡,也附带了蓝牙硬件。如果你的树莓派的版本较旧,则需要自己安装一个USB蓝牙适配器。然而,无论你属于哪种情况,所需的蓝牙软件都已经包含在Raspbian操作系统中。

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

图1-29 安装了USB蓝牙和Wi-Fi适配器的树莓派2

Raspbian Pixel桌面已经集成了蓝牙功能,这与Mac桌面非常相似。在屏幕的右上角,你会看到蓝牙图标(见图1-30中被圈中部分)。单击这个图标就可以打开蓝牙菜单。

图1-30 Raspbian操作系统中的蓝牙菜单

如果你想连接一个蓝牙外设,比如蓝牙键盘,直接选择Add Device选项即可。

之后,会弹出一个Add New Device对话框,其中会显示可用的设备列表,也就是可以与之连接或“配对”(见图1-31)的设备。

图1-31 蓝牙设备配对

这时,你可以从中选择要配对的设备,然后,只需按照树莓派和你要配对的设备上出现的说明进行操作即可。

1.18.3 进一步探讨

你可以将手机、蓝牙扬声器、键盘和鼠标与树莓派进行配对。我发现,连接一个新的蓝牙设备时并不见得第一次就能成功,所以,如果你一开始与设备配对时遇到了问题,在你放弃之前不妨多试几次。

大多数情况下,在桌面中将蓝牙设备添加到树莓派还是很方便的,但是,你也可以通过命令行对蓝牙设备进行配对。

要通过命令行执行与蓝牙设备有关的命令,请使用bluetoothctl。

$ bluetoothctl
[NEW] Controller B8:27:EB:50:37:8E raspberrypi [default]
[NEW] Device 51:6D:A4:B8:D1:AA 51-6D-A4-B8-D1-AA
[NEW] Device E8:06:88:58:B2:B5 si’s keyboard #1
[bluetooth]#

上面的命令用于扫描蓝牙设备,然后,就可以借助pair命令通过设备ID进行配对了。

[bluetooth]# pair E8:06:88:58:B2:B5

1.18.4 提示与建议

关于兼容树莓派的适配器的清单,参考树莓派官网。

Android手机的bluedot软件可用于通过蓝牙和手机控制连接到树莓派的硬件,相关示例参见10.7节。

将树莓派与蓝牙扬声器进行配对时,必须将扬声器设置为声音的输出设备(见15.2节)。

相关图书

React Native移动开发实战 第3版
React Native移动开发实战 第3版
深入浅出React Native
深入浅出React Native
Flutter App开发:从入门到实战
Flutter App开发:从入门到实战
React Native移动开发实战 第2版
React Native移动开发实战 第2版
App自动化测试与框架实战
App自动化测试与框架实战
30天App开发从0到1:APICloud移动开发实战
30天App开发从0到1:APICloud移动开发实战

相关文章

相关课程