树莓派机器人实战秘笈(第3版)

978-7-115-49228-9
作者: [美]理查德·格里梅特(Richard Grimmett)
译者: 韩波
编辑: 胡俊英

图书目录:

详情

本书旨在带领读者运用树莓派3实现诸多酷炫的机器人设计。其中本书良好地结合了树莓派的各项性能,帮助读者构建简单或复杂的机器人项目,同时引导读者学会为机器人选用合适的树莓派板子,并更好地为机器人设计并实现相应的功能。全书分为7章,从认识树莓派开始,陆续介绍了如何搭建各类机器人、如何创建自平衡机器人、如何将树莓派和机器人结合起来等内容。

图书摘要

版权信息

书名:树莓派机器人实战秘笈(第3版)

ISBN:978-7-115-49228-9

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

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

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

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

著    [美]理查德•格里梅特(Richard Grimmett)

译    韩 波

责任编辑 胡俊英

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

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

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

读者服务热线:(010)81055410

反盗版热线:(010)81055315


Copyright ©2016 Packt Publishing. First published in the English language under the title Raspberry Pi Robotic Projects,3rd Edition.

All rights reserved.

本书由英国Packt Publishing公司授权人民邮电出版社出版。未经出版者书面许可,对本书的任何部分不得以任何方式或任何手段复制和传播。

版权所有,侵权必究。


树莓派凭借其价格低廉、功能强大等特点,受到了国内外创客的热爱,成为个人DIY智能硬件时的首选平台之一。

本书介绍了许多树莓派项目,通过详尽的步骤指导和操作示范,为读者呈现出树莓派更新、更酷的玩法。全书包含7章内容,从树莓派入门开始讲解,陆续呈现了几个机器人案例,包括Wall-E机器人、机器鱼、机器手等。

本书面向所有对树莓派及机器人DIY感兴趣的读者,希望读者通过学习书中的树莓派机器人项目,激发出兴趣和创意,更好地制作出属于自己的智能机器人。本书图文丰富,读者不需具备编程经验,即可轻松上手。


自从使用Fortran语言在穿孔卡片上编写第一个程序以来,Richard Grimmett一直沉迷于计算机和电子技术。他拥有电子工程学士和硕士学位,以及领导力研究方向的博士学位。他在雷达和电信行业有20多年的经验,手中还有一部古老的大哥大电话。目前,他在杨百翰大学爱达荷分校讲授计算机科学与电子工程专业的课程,在他的办公室中,有很多自己完成的机器人项目。

本书是与我所在的大学多名优秀学生共同努力的成果。同样,本书也是在我妻子Jeanne的大力帮助下才得以完成。


自2002年以来,Jon Witts一直从事IT行业工作。更准确地说,自2004年以来他一直致力于IT教育工作。2001年,他在与两位德国艺术家的合作过程中,开始接触Linux,这两位艺术家当时正在访问他所服务的艺术组织。在学习了美术和教育技术之后,他在自己的创作实践中力争通过开放和可访问的数字技术进行创新,并醉心于解构技术并发现其局限性。

作为计算机科学课程交付的一部分,Jon已经将树莓派“渗透”到了学校的各个角落,用于支撑学校俱乐部和各种项目。Jon是树莓派认证讲师,同时还致力于组织和开展Hull Raspberry Jam活动。

感谢我的妻子Sally和我们的3个女儿,感谢她们能够容忍家里无所不在的电缆和电子元件,尤其是她们能如此灵活地避开在厨房地板上奔跑的机器人!


近年来,随着树莓派的诞生,DIY项目迎来了一个全新的世界。这种价格低廉但功能强大的处理器为我们带来了广泛的可能性。与第三方硬件和免费的开源软件相结合后,它带给我们的机会更是无穷无尽。

在本书中,我们为读者介绍了多个树莓派项目,而且每一个项目都给出了详尽的指导。本书的每一章都会引入一个不同类型的新项目,每个项目不仅是一个非常具体的挑战,同时也是学习树莓派各种新酷玩法的大好机会。然而,这些章节实际上只是对这些主题的入门介绍——对于每一个项目来说,如果要想讲得面面俱到的话,恐怕每个主题都需要一本书的篇幅。

本书旨在激励读者学习各种技能并创造性地将其融入完全不同的项目中去。

探索,只有探索本身才是本书以及树莓派的精髓之所在。

第1章,“树莓派入门”,详细介绍树莓开发环境的搭建。本章从如何连接电源开始,逐步讲解如何搭建一个完整的系统。这里所谓的完整,指的是完成了妥善的配置,可随时连接各种“惊艳的”的设备和软件来开发先进的机器人应用。

第2章,“打造未来科幻机器人”,为读者讲解如何通过树莓派完成一些神奇的任务,比如控制轮式机器人。本章将展示如何添加电机控制,以便构建自己的自主移动机器人。

此外,当今计算机系统的一个惊人的功能是,无需借助屏幕或键盘,就能够输入命令并提供相应的输出。几年前,“能听会说”的计算机还只是科幻小说中的概念,但现在它正在成为新手机的标配。在这一章中,我们会展示如何将一个标准的玩具R2D2变成一个响应式机器人。

第3章,“打造Wall-E机器人”,将探讨另一个令人印象深刻的机器人项目,这个机器人的原型是Wall-E—— 一个带有履带底座和铰接臂的机器人。这里的舵机可以通过树莓派和另外一些由USB控制的硬件来进行控制。此外,我们的机器人还将使用微软的Kinect,这样它不仅具有视觉,同时还能够感知深度。

第4章,“制作机器鱼”,讲解如何打造一个会游泳的机器人,来为我们展示水下的世界——游泳机器人难道不是很酷吗?

第5章,“用树莓派打造机械手”,介绍如何获取一个完整的工具箱以及如何使用它们来构建和控制一个机械手——它不仅可以看到周围的世界,而且还能做出响应。就本例来说,我们将通过对机械手进行编程,使其通过摄像头来模仿我们的手的运动。

第6章,“自平衡机器人”,讨论了一种建立在自平衡两轮平台概念上的机器人玩具。本章将介绍如何构建一个只需两个轮子就能实现平衡和移动的机器人。

第7章,“将树莓派添加到四轴飞行器”,向大家介绍如何制作可以飞行的机器人。可以走路、说话或移动的机器人固然很酷,但能够飞行的机器人才是我们的终极目标。

本书面向那些对使用树莓派 3和树莓派感兴趣的爱好者和程序员。我们的目标读者,是那些刚开始使用这些设备来控制硬件和软件并希望通过编写简单程序来实现令人惊叹的项目的朋友们。本书不要求读者具备编程经验,这里所要求的,只不过是一台计算机、少许机械技术以及对构建有趣的项目的渴望,这些就足够了。

在本书中,不同类型的信息会采用不同的排版样式,以示区别。下面针对各种排版样式及其含义进行举例说明。文本、数据库表名、文件夹名、文件名、文件扩展名和路径名、伪URL、用户输入和代码文字,会显示:“我们可以通过使用include指令来包含其他上下文。”

代码块的格式设置如下。

ser = serial.Serial("/dev/ttyACM0", 9600)
setAngle(ser, 0, 90)
setAngle(ser, 1, 90)
setAngle(ser, 2, 90)
time.sleep(1)

任何命令行输入或输出的写法如下。

sudo apt-get install libasound2-dev

新术语和重要词汇以粗体显示。出现在屏幕上的词语,例如菜单或对话框里,样式如下:“单击Next按钮将进入下一个屏幕。”

 此图标表示警告或重要信息。

 

 此图标表示提示或技巧。

本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

本书提供如下资源:

要获得以上配套资源,请在异步社区本书页面中点击 ,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

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

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

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

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

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

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

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

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。

异步社区

微信服务号


欢迎来到激动人心的树莓派世界!树莓派从推出至今,虽然只有短短几年的时间,但已经获得了DIY社区的热烈追捧——人们争先使用它来构建各种项目,因为树莓派采用的处理器不仅小巧,而且功能丰富。同时,树莓派家族还能以低廉的成本提供稳定的性能。通过添加便宜的外围硬件和免费的开源软件,人们就能利用树莓派构建各种项目,例如可以滚动、行走、飞行和游泳的机器人项目。

毫无疑问,通过树莓派确实可以完成许多神奇的事情,但首先,我们需要了解如何访问它的各种功能。在本章中,我们将为读者介绍下列主题。

树莓派的版本有很多,但对于本书中的项目而言,只有两个版本可供选择。第一个版本是树莓派 0,这是树莓派处理器主板中体积最小、成本最低的一种。该版本的应用处理器为Broadcom BCM2835,提供了1 GHz ARM11内核和512MB LPDDR2 SDRAM。

同时,该主板还提供了microSD卡插槽、用于1080p60视频输出的迷你HDMI插座、用于数据传输和电源供应的微型USB插座以及更加紧凑的40引脚GPIO接头。

此外,我们也可以选用树莓派 3。虽然这个版本的主板尺寸要稍微大一点,好处是不仅具有更高的性能,而且能够连接更多的硬件。树莓派 3配备了主频为1.2 GHz的64位4核ARM Cortex-A53处理器(其性能大约是树莓派 0的3倍)。与树莓派 0相比,它提供了一个内置的microSD卡插槽,一个用于1080p60视频输出的标准HDMI插口,一个用于电源供电的微型USB插座,一个内置的4端口USB连接器和一个40引脚GPIO接头。此外,树莓派 3还集成了802.11n无线局域网和蓝牙4.1。如果你现在还无法确定哪个版本适合自己,不妨先阅读本章,了解一下两者的启动和配置方法,然后再做选择就容易多了。

与树莓派0相比,树莓派 3集成了更多的硬件,而且都是以标准产品的组成部分的形式来提供的,所以,它配置起来自然更容易一些,因为我们需要的所有硬件,几乎都可以在树莓派 3上找到。

以下是配置树莓派 3所需的配件。

在开始进行配置工作之前,不妨先让我们认识一下树莓派 3,具体如图1-1所示。

图1-1 树莓派 3

下面展示的是各个连接,图1-2中已经标出了相关的参考信息。

图1-2 相关参考信息

首先,我们要做的就是为电路板供电。

首先要考虑的问题之一是如何为电路板供电。为此,我们需要连接USB电源,为树莓派 0提供电源有两种方式。

(1)将标有power的微型USB连接器连接到由USB供电的5V直流电源。这里所使用的电源,既可以是直接插入插座的电源,也可以是(例如大多数计算机上的)带电USB端口提供的电源。

(2)将微型USB连接器连接到电池。最简单的连接方式是使用带有USB连接器的电池,就像给手机充电一样。下面,我们来看看这种类型的电源到底长什么样子(见图1-3)。

图1-3 带USB连接器的电池

在这两种情况下,都必须确保供电设备能提供足够的电流。我们所需的电源,需要至少提供5V电压、1000mA的电流。需要注意的是,现在不要急着把电源插入电路板;相反,我们应该先连接其余的硬件并配置好micro SD卡。好了,既然电源已经准备好了,我们下面就开始连接其余的硬件。

接下来,我们要做的事情是将键盘、鼠标和显示器连接到树莓派 3上面。对于树莓派 3来说,这是轻而易举的事情:只需将键盘和鼠标的USB连接器插入树莓派 3上的4个USB连接器之一就行了。

现在,我们还需要一个显示器。当前,存在许多不同的视频标准;图1-4给出一些最常见的视频标准的接口,供读者参考。

图1-4 常见的视频标准的接口

因为树莓派 3提供了一个HDMI接口,所以可以通过HDMI电缆直接连接HDMI显示器。如果你的显示器具有DVI连接器的话,则需要购买HDMI转DVI电缆。

我们的硬件配置工作已经准备就绪,但是,在完成下面的任务之前,还是不能打开设备电源。接下来让我们看看如何安装操作系统。

现在硬件已准备就绪,接下来,我们需要下载操作系统映像,并将其烧录到microSD卡中。在操作系统版本方面,树莓派 3有多种不同的选择。不过,在树莓派 3上,我们使用的版本都属于Linux——Unix操作系统的开源版本。与Windows、Android或iOS不同,Linux的发展不会受制于某个公司。该系统是各个社区共同努力的产物,它的大部分代码都是开源的并且可以免费使用,可能正是由于这样,才导致该系统的成长和发展有点混乱。

目前,已经出现了许多不同版本的Linux,每个版本都建立在类似的核心功能集之上,通常称这些核心功能集为Linux内核。虽然这些核心功能都遵循Linux规范,但是,它们的打包方式却稍有不同,因为相应的开发、支持和打包工作是由不同的组织来完成的。树莓派社区已经在Raspbian的基础上进行了标准化,而Raspbian是树莓派的Debian发行版的Linux系统。所以,我们需要在自己的树莓派 3上安装并运行Raspbian。

此前,Debian的版本为cowgirl,即取自“玩具总动员”的女牛仔,而目前Debian的最新版本叫作Jessie。这是Debian的命名约定,我们需要下载的,就是这个版本的Raspbian。

一方面,我们可以直接购买已经安装好了Raspbian的存储卡,另一方面,我们也可以将Raspbian下载到个人计算机上,然后自己将其安装到存储卡上。要下载一个发行版,我们需要决定是利用Windows计算机下载并创建SD卡,还是使用MAC OS X或Linux计算机来完成这些工作。以下是使用Windows和Linux机器时所需的具体步骤。

 

有关使用MAC OS X下载并创建SD卡的具体说明,请访问树莓派官方网站。

(1)首先,我们需要下载一个镜像。对于Windows和Linux来说,这个过程是相似的。打开浏览器窗口,进入树莓派基金会的网站并选择页面顶部的下载选项。这里会提供多种下载选项。转到Raspbian部分,然后选择镜像标志右侧的.zip文件。注意,这里需要的是最新的版本,而不是精简版。这将下载一个包含Raspbian操作系统映像的压缩文件。请注意默认的用户名和密码,因为后面会用到它们。

(2)如果使用的是Windows,则需要使用压缩软件(如7-Zip)对文件进行解压,该软件可自行下载安装。解压后,我们会得到一个带有.img扩展名的文件——这就是将要烧录到存储卡上的文件。

接下来,需要一个可以将镜像写入存储卡的程序。我使用的是Windows版本的Image Writer。你可以在树莓派官方网站的下载区顶部找到该程序的下载链接。

将存储卡插入电脑,运行该程序,这时会看到图1-5所示的内容。

图1-5 运行程序显示的内容

(3)选择设备卡和你之前下载的镜像,具体如图1-6所示。

图1-6 选择设备卡和下载的镜像

(4)点击“Write”按钮。烧录过程需要一些时间,可能需要15min。完成后,退出该程序,这样,我们就得到了一张带有相应镜像的microSD卡。

(5)如果正在使用Linux,我们则需要解压该存档文件,然后将其写入存储卡。为此,可以通过一个命令完成所有这些工作。但是,首先需要找到相应存储卡在/dev下面的设备标签,这时,可以求助于ls -la/dev/sd*命令。如果在插入存储卡之前运行此操作的话,则可能会看到类似图1-7中的内容。

图1-7 插入存储卡前运行操作的显示

(6)插入SD卡后,再次执行该命令,你将会看到如图1-8所示的内容。

图1-8 插入SD卡后执行操作的显示

(7)通过图1-8可以发现,我们的SD卡对应于sdb。 现在,进入下载的压缩镜像文件所在的目录并执行以下命令。

sudo dd if=2015-11-21-raspbian-jessie.img of=/dev/sdX

(8)2015-11-21-raspbian-jessie.img可以替换为实际下载的映像文件,而/dev/sdX可以替换为实际的SD卡设备名,本例中为/dev/sdb。需要注意,务必指定正确的设备,因为该命令会覆盖驱动器上的数据。此外,这条命令可能需要运行几分钟的时间。一旦镜像文件写入完毕,弹出SD卡后,就可以将其插入树莓派中启动了。

现在,已经完成了上述步骤,请确保树莓派 3没有上电,将SD卡安装到插槽中,然后给设备通电。设备启动后,我们可以在屏幕上看到如图1-9所示的内容。

图1-9 设备启动后的屏幕显示

这说明,设备已经运行起来了!

 

如果你使用的是普通键盘,那么可能需要编辑键盘的keyboard文件才能有效地使用nano。为此,请使用屏幕左上角的下拉菜单,选择 Preferences | Mouse and Keyboard Settings,之后,选择Keyboard选项卡。这样,就可以为你的配置选择正确的键盘布局了。

现在,我们已经做好了充分的准备,接下来就可以与系统交互了!为此,我们只要调出一个终端窗口,并输入命令就行了。

树莓派 3提供了一个标准的LAN连接器。要连接树莓派 3,只需将其插入一个局域网即可。同时,树莓派也提供了内置的WLAN功能。如果希望以无线方式连接的话,请确保有可用的无线接入点。然后,我们可以通过树莓派的无线LAN管理器进行连接。为此,请选择图形用户界面(GUI)右上角的LAN管理器图标(见图1-10)。

图1-10 图形用户界面(GUI)右上角的LAN管理器图标

然后,你可以选择目标网络。在输入密码后,就可以连接网络了。

一旦为树莓派建立了互联网连接,就可以从PC上远程访问它了。具体来说,从远程计算机访问树莓派有3种方法。

(1)第1种方法是通过称为SSH的终端界面。

(2)第2种方法是使用一个名为 VNC server的软件。利用该软件,我们可以打开一个远程窗口,来展示树莓派 3上的图形用户界面。

(3)最后,我们可以通过一个名为WinSCP的程序来传输文件,该程序就是为此用途而定制的。此外,对于Linux系统来说,可以使用scp命令。

但是,首先要保证基本系统已经正常工作。然后,打开终端窗口并检查树莓派的IP地址。要想进行网络通信的话,就需要用到这个地址。为此,我们可以使用ifconfig命令来查看该地址。执行该命令后,可以看到如图1-11所示的内容。

图1-11 执行命令后的显示内容

在通过以太网连接树莓派的时候,需要用到inet addr给出的IP地址。如果使用无线网卡访问互联网的话,则需要将无线路由器的地址设置为wlan0部分中显示的IPv4addr。此外,我们还需要在远程计算机上运行SSH终端程序。所谓SSH终端,实际上就是一个Secure Shell(SSH)连接,这意味着可以通过该终端访问树莓派并通过在远程计算机中输入命令来对树莓派发号施令。树莓派 3的响应也会显示在远程计算机的终端窗口中。

 

如果你想了解有关SSH的更多信息,请访问其官方网站。

如果你使用的是Microsoft Windows系统的话,还可以下载其他应用程序。我个人最喜欢的是PuTTY,该软件不仅是免费的,而且可以保存配置,无需每次重新进行设置。在搜索引擎中输入putty,很快就能找到一个支持下载的页面。或者,我们也可以直接访问putty的官方网站。

将PuTTY下载到Microsoft Windows机器上。然后,运行putty.exe,可以看到一个配置窗口,具体如图1-12所示。

图1-12 配置窗口

在Host Name输入框中输入前面提到的inet addr地址并确保选择SSH选项。此外,我们可以以树莓派为名称保存该配置,以便今后每次使用时,都可以重新加载。

每次点击“Open”按钮,系统都会尝试打开一个终端窗口,通过LAN连接来连接树莓派。第一次连接时,会有一个关于RSA密钥的提示,因为此时计算机和树莓派之间还没有建立信任关系,所以,Windows系统会给出警示。点击“OK”按钮,就可以得到一个带登录提示符的终端,具体如1-13图所示。

图1-13 带登录提示符的终端

现在,我们可以登录树莓派并向其发出命令了。如果从Linux机器上登陆树莓派的话,就更简单了。为此,只需调出一个终端窗口,然后输入ssh pi@xxx.xxx.xxx.xxx即可,其中xxx.xxx.xxx.xxx是树莓派的inet addr地址。

这样,就会创建一个到树莓派的登录窗口,显示的内容与前面的情况类似。

与树莓派进行通信的时候,SSH是一个非常有用的工具。有时我们需要一个图形界面,但是又不想在树莓派上连接一个显示器。这时,可以使用一个名为vncserver的应用程序,这样就可以在远程计算机上以图形界面来查看树莓派的相关信息了。为此,我们需要在树莓派的终端窗口中输入sudo apt-get install tightvncserver命令,以便为树莓派安装该软件。顺便说一下,这是使用SSH的绝好机会。

Tightvncserver是一个应用程序,可以远程显示树莓派的图形系统。一旦安装完毕,可以在树莓派的终端窗口中输入vncserver来启动该软件。这时,系统会提示输入密码,接着再输入一次密码以进行验证,然后会询问是否输入一个只能查看的密码。

一定要牢记输入的密码,因为今后通过VNC Viewer远程登录时需要用到。

在远程计算机上面,需要一个VNC Viewer软件。在Windows系统上,我使用的是一个名为RealVNC的应用程序。该软件启动后显示的界面如图1-14所示。

输入VNC Server的地址,即是树莓派的IP地址,然后点击“Connect”按钮,将会弹出一个窗口,具体如图1-15所示。

图1-14 RealVNC启动后显示的界面

图1-15 弹出窗口

输入刚才运行vncserver时输入的密码,就可以看到树莓派的图形界面,如图1-16所示。

图1-16 树莓派的图形界面

现在,我们就可以访问树莓派的所有功能了,当然,如果进行图形密集型数据传输,那么响应会有些慢。

 

虽然可以在树莓派上让vncserver自动启动,但是我没有使用这种方式,因为我更喜欢在SSH终端中输入vncserver命令的方式。这样的好处是可以只运行需要的那些软件,更重要的是,能够降低安全的威胁。如果每次启动树莓派时都希望启动vncserver,可以参考互联网上面介绍的各种配置方案。

为了在运行Ubuntu系统的Linux机器中远程访问树莓派桌面,可以输入命令sudo apt-get install xtightvncviewer,然后启动该软件,即输入xtightvncviewer 10.25.155.110:110.25.155.110:1,然后输入相应的密码。在Linux系统上也可以使用带有图形界面的查看软件,例如Remmina Remote Desktop Client(选择 VNC-Virtual Network Computing协议)就可以用来替换xtightvncviewer。图1-17所示的是Remote Desktop Viewer软件的运行界面。

图1-17 软件的运行界面

确保vncserver已经在树莓派上运行了。最简单的方法是使用SSH登录并在命令行中运行vncserver。现在,点击Remote Desktop Viewer上的“Connect”按钮。然后,在下面屏幕中填写相关内容并在Protocol选项中选择VNC,如图1-18所示。

图1-18 在Protocol选项中选择VNC

现在,输入Host的Internet地址,确保该地址后面跟有:1,然后点击“Connect”按钮。此时需要输入前面设置的vncserver密码,如图1-19所示。

图1-19 输入密码

这样,我们就可以看到树莓派的图形界面了。要想从Mac或其他Apple设备上以图形方式访问树莓派,还可以使用RealVNC Viewer,详细介绍请参见RealVNC官网。

在Windows上使用的最后一款软件是免费的WinSCP。下载并安装该软件,按照相应的说明进行下载和安装。一旦安装完毕,运行该程序,就会打开如图1-20所示的对话框。

图1-20 安装完毕打开的对话框

点击“New”按钮,就会看到图1-21所示的界面。

图1-21 点击“New”后界面

这里,要在“Host name”选项卡中输入主机的IP地址,在“User name”选项卡中输入“pi”并在密码输入框中输入密码(注意,这里不是vncserver的密码)。点击“Login”按钮,可以看到如图1-22所示的警告信息。

图1-22 警告信息

同样,该主机上也没有远程计算机的信息。所以,点击“Yes”按钮,该应用程序将显示如图1-23所示的信息。

图1-23 点击后应用程序显示

现在,我们就可以通过拖放方式在两个系统之间移动文件了。当然,在Linux上也可以使用命令行来完成同样的操作。要将文件传输到远程树莓派,可以使用scp file user@host.domain:path命令,其中file为文件名,user@host.domain:path是复制的目标位置。 例如,如果想将example.py从Linux系统复制到树莓派,可以输入scp example.py pi@10.25.155.176:/home/pi/命令。这时,系统会要求输入登陆远程系统所需的密码,就本例来说,就是登陆树莓派所需密码。正确输入密码后,文件就开始传输。

现在,我们已经掌握了如何使用SSH、tightvncserver和scp来远程访问树莓派了,这样就无需连接显示器、键盘或鼠标了。

此时,只需要连接电源和局域网,当然也可以使用电缆或无线局域网。如果只需要输入简单的命令,可以使用SSH。如果需要全功能的图形系统,则可以通过vncserver访问树莓派。最后,如果想在PC和树莓派之间传输文件,对于Windows计算机来说,可以使用WinSCP;对于Linux计算机来说,可以使用scp。现在,已经为构建第一个项目打造好了相应的工具包。当然,在Mac上也可以使用scp。

远程访问树莓派的一个挑战是需要提前知道开发板的IP地址。如果开发板已经连接了键盘和显示器,那么我们可以运行ifconfig命令来获取地址信息。但是,在许多情况下,是无法得到IP地址信息的。不过,有一种方法可以获取开发板的IP地址:使用IP scanner程序。该程序有许多免费的版本,我在Windows上使用的是Advanced IP Scanner。

该软件启动后,界面如图1-24所示。

图1-24 软件启动后界面

点击“Scan”按钮,它就会扫描网络中的所有设备。在Linux环境中,也可以做到这一点,为此,可以使用IP扫描程序Nmap。如果要安装Nmap,请输入sudo apt-get install nmap命令。为了运行Nmap,可以输入sudo nmap -sp 10.25.155.1/154命令,这时,它就会对10.25.155.1~10.25.155.154范围内的地址进行扫描。

这些扫描器可以检测哪些地址正在被使用,从而帮助寻找树莓派的地址而无需输入ipconfig命令。树莓派具有很多功能,读者可以自由地去探索,以便了解系统已经具备了哪些功能以及可以通过软件来扩充哪些功能。

我们知道,树莓派0是一个功能强大的计算机,但是,为了发挥它的强大功能,我们还需要借助于一些额外的硬件设备。以下是配置树莓派 0所需的零部件。

在进行配置之前,不妨先让我们认识一下树莓派 0,具体如图1-25所示。

图1-25 树莓派 0

请注意,GPIO引脚的公插头并未预焊到开发板上,所以,这项工作需要我们自己来完成。我们可以从大部分在线电子产品零售商那里买到这些产品。此外,我们还需要熟悉一下该开发板上的各种连接。不难看出,这里树莓派 0的连接器已焊接好了,而且连接标签上也给出了相应的参考信息(见图1-26)。

图1-26 焊接好的树莓派 0

首先,我们要做的就是考虑如何为电路板供电,为此,需要使用USB电源连接来连接电源。与树莓派 3类似,树莓派 0也具有两种可选的供电方式。不同的是,因为这里还需要为USB集线器供电,所以在选择电源的时候一定要将其考虑在内。

下一步是为树莓派 0接上键盘、鼠标和显示器。为了将设备连接到树莓派 0,必须借助某种适配器或集线器。我们可以购买一个简易的集线器,这样,就可以把树莓派0上的微型USB连接器转接到更常见的标准连接器上面了。当然,这些产品都可以从在线电子产品零售商那里买到,其外观如图1-27所示。

但是,对于一些项目来说,需要为树莓派 0连接多个设备。遇到这种情况,则需要考虑购买支持外部电源供电的USB集线器。在决定选用哪款集线器连接开发板之前,首先需要了解一下支持外部电源供电的USB集线器与通过USB端口本身供电的集线器的不同之处。

图1-27 集线器外观

我们知道,几乎所有的USB集线器都不是通过外部电源供电的,换句话说,不必专门接入电源。之所以会出现这种情况,是因为这些集线器几乎都是连接到具有大功率电源的计算机上面的,可以直接通过计算机向USB设备供电。但是,树莓派的电源却无法满足这种条件:树莓派上的USB端口的电源功率非常有限,因此,要想连接大功率的设备(如WAN适配器或网络摄像头),则需要使用支持外部电源供电的USB集线器,以便通过单独的电源为这些设备供电。这种集线器如图1-28所示,可从在线零售商那里购买。

图1-28 支持外部电源供电的USB集线器

请注意,该集线器上有两个连接,其中,右边的是电源连接,可通过USB端口插入电池或USB电源适配器。此外,左边的连接是USB连接,用于连接树莓派。要将支持外部电源供电的USB板连接到树莓派 0,需要借助一根电缆来连接微型USB连接器。这样,我们就有了更多的连接,从而可以方便地添加鼠标和键盘、网络摄像头和USB WLAN设备。

现在,我们还需要连接一个显示器。这就需要用到树莓派0上的mini HDMI连接器了。

为了给树莓派 0接入HDMI显示器,需要一个mini HDMI转标准HDMI的适配器或电缆。此外,我们也可以购买一端为mini HDMI连接器而另一端为常规HDMI连接器的电缆。这种类型的适配器图1-29所示。

图1-29 一端为mini HDMI连接器而另一端为常规HDMI连接器的电缆

使用该适配器的时候,只需将其连接到树莓派0,然后用常规HDMI连接将电缆连接到适配器以及具有HDMI输入连接器的电视或显示器即可。与树莓派 3一样,我们也可以购买一根mini HDMI转DVI的电缆。这样,就可以用HDMI电缆来连接显示器和树莓派0了。将USB集线器连接到树莓派 0,然后就可以将键盘和鼠标接入USB集线器了。

打开设备电源之前,请确保连接好了所有设备。大多数操作系统都支持热插拔设备,这意味着允许在系统启动后连接设备,但有点不太稳定。因此,连接新硬件时,最好先关闭电源。图1-30展示了连接完成后的样子。

图1-30 连接完成后的样子

这里,USB连接器连接到USB电源适配器。即使上面的硬件配置已完成,仍然不能立即启动设备,因为还需要安装操作系统。所以,接下来让我们了解如何安装操作系统。

首先,我们将这里要用到的操作系统烧录到micro SD卡中,而后面的安装过程其实与树莓派 3别无二致。

确保树莓派 0已断电并将SD卡安装到插槽中,然后再次接通电源。设备启动后,将会看到如图1-31所示的界面。

此时,系统已经运行起来了!

 

请注意,如果我们使用支持外部电源供电的USB集线器,则可以树莓派提供足够的电力。但是,在某些情况下,它所提供的电力仍然无法满足我们的需求。因此,强烈建议读者使用单独的电源,分别为树莓派0和集线器单独供电。

下面就可以打开终端窗口并开始输入命令了。

图1-31 终端窗口

与树莓派 3不同,树莓派 0没有提供局域网连接。要想将树莓派 0连接到互联网,我们有两种选择。首先,可以建立无线局域网连接,其次,如果想要连接到实际的LAN端口,可以使用USB转LAN适配器。下面我们对这两种方式进行具体介绍。

如果要以无线方式连接,请确保有无线接入点可用。此外,还需要一个无线网卡,该设备在树莓派官方网站上有售,但是,我们也可以使用其他品牌的无线网卡。

请确定哪些无线网卡已通过树莓派 0的验证。图1-32中展示的无线网卡可以从许多在线电子商店处买到。

图1-32 无线网卡

在添加网络访问功能过程中,还需要使用一个支持外部电源供电的USB集线器,以便可以同时访问键盘和鼠标以及USB无线LAN设备。现在,将无线网卡连接到支持外部电源供电的USB集线器中。

启动系统,然后通过输入sudo nano/etc/wpa_supplicant/wpa_supplicant. conf命令来编辑wpa_supplicant.conf文件。我们需要将该文件改为图1-33所示的内容。

图1-33 更改文件内容

这里,wpa-ssid和wpa-psk两个参数值必须与无线接入点如何设置相匹配。重新启动后,树莓派就可以连接到无线网络了。

这时,可以通过查看屏幕右上角的图标来了解连接情况,如果连接正常,我们将会看到图1-34所示的界面。

图1-34 连接正常的界面

现在,我们就可以通过互联网下载安装其他的软件了。

如果我们想使用有线的LAN连接,可以借助于一个USB转LAN的设备,这里可以选择的设备有许多种,图1-35展示的就是其中的一款设备。

图1-35 USB转LAN的设备之一

以这种方式连接树莓派0的时候,过程实际上非常简单。我们只需将USB转LAN适配器插入支持外部电源供电的USB集线器,然后连接LAN网线,即可访问互联网。这样,我们就可以像树莓派 3那样从PC访问树莓派了。

前面,我们已经介绍了如何使用SSH、tightvncserver和scp,这样,就可以直接远程访问树莓派,而无需连接显示器、键盘或鼠标了!如果通过WLAN连接联网,则系统会是如图1-36所示的样子。

图1-36 通过WLAN连接联网

这样,我们就可以远程访问树莓派 0了,与树莓派 3一样,也可以通过ifconfig命令或Advanced IP Scanner软件来获取树莓派 0的IP地址。

恭喜!我们已经完成了第一阶段的旅程。无论是树莓派 3还是树莓派 0,我们的树莓派开发板已经启动并成功运行。我们已经安装了Raspbian操作系统,学习了如何连接各种外围设备,还掌握了如何远程访问系统,这样,树莓派就只需连接电源线和LAN电缆了。

现在,我们已经可以向树莓派下达命令来处理一些事情了。在第2章中,将介绍包括开源软件和便宜硬件在内的各种资源,同时着手开始构建机器人项目。对于第一个项目而言,我们将构建自己的R2D2。


相关图书

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

相关文章

相关课程