树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践.html.pdf

上传人:紫竹语嫣 文档编号:5518739 上传时间:2020-05-28 格式:PDF 页数:67 大小:13.66MB
返回 下载 相关 举报
树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践.html.pdf_第1页
第1页 / 共67页
树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践.html.pdf_第2页
第2页 / 共67页
树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践.html.pdf_第3页
第3页 / 共67页
树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践.html.pdf_第4页
第4页 / 共67页
树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践.html.pdf_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践.html.pdf》由会员分享,可在线阅读,更多相关《树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践.html.pdf(67页珍藏版)》请在三一文库上搜索。

1、译者序 由于过去几十年,尤其是最近十几年互联网的蓬勃发展,人们的生活方式发生了深刻改变,毫不夸张地说,现在是“人在家 中坐,尽知天下事”。而新技术的兴起和应用也不断刺激着人类的欲望,人们从过去依靠互联网单纯获取数字化信息,发展到希 望在所有可以接入互联网的地方依靠计算机和传感器远程控制任意设备,从而直接改善自己的生活,“物联网”技术就这样应运 而生,而树莓派及其外围设备以及传感器在这中间扮演着重要的角色,树莓派好比人的大脑,传感器就像人的眼睛,而外围设备 好比人的四肢,利用它们搭建好各种软硬件平台,才能使“物联网”真正落到实处。 树莓派是将各类组件集成在一张信用卡大小的主板上的小型计算机,它基

2、于ARM架构,运行Linux专用版本操作系统。在 2006年研发之初,Eben Upton与David Braben(树莓派的主要研发者)想使树莓派成为一款价格低廉的计算机,以便让更多 的人有机会学习硬件知识和编程技术。但是事情的发展远远出乎他们的预料,树莓派从2012年发行第一个版本以来,凭借其通 用的架构、标准的接口和丰富的外围设备,吸引了无数硬件、软件工程师的眼球,大家将其视为投身物联网产业的必备法宝之 一。在国内,越来越多的从业人士或业余发烧友希望了解和学习如何基于树莓派进行开发,尤其希望学习如何结合树莓派和传感 器实现远程感知、控制。在这个背景下,机械工业出版社独具慧眼,引入了这本极

3、具实用价值的书,为众多希望学习树莓派的读 者奉上了一份大餐。 本书正文共分7章,其中第1章、第2章简要介绍了树莓派的基本概念和电子学的基本知识,第3第7章则分别介绍了如何利 用树莓派、传感器测量距离、监控大气温度和湿度、连接树莓派和传感器、在线上传数据以及图像与视频处理。附录列出了购物 清单,以帮助读者在进行项目开发时选购相应工具和元器件。可以说本书绝不是炒作概念的泛泛之作,而是能让读者将概念落到 实处的实用指南,作者邻家大哥般的语言风格更是让读者倍感亲切。 我们很荣幸能够成为本书的译者,在这里,首先要感谢机械工业出版社的杨福川老师给予我们的信任,其次要感谢缪杰编 辑,与你们的交流让我们获益匪

4、浅,也让本书的质量更上一层楼。 此外,请读者朋友注意,如果没有任何Python或C语言编程经验,建议你先补上,这会让你在本书的学习过程中轻松很 多;如果你已经有了Python或C语言编程经验,并且对Linux系统稍有了解,那么就可以直接拿起本书开始你的树莓派之旅;如 果你之前就已经做过树莓派开发工作,那么将本书作为参考工具书放在案头,以备不时之需,这也是个不错的选择。 全书由胡训强和张欣景共同翻译,其中,胡训强翻译了第1章、第3章、第4章、第6章和第7章,张欣景翻译了第2章和第5 章。最后要说明一点,由于树莓派问世不久,所以很多相关技术会不断更新,再加上囿于译者的技术和语言水平,书中难免会出

5、现不准确甚至错误之处,如果读者发现了这样的地方,恳请通过邮箱告知我们,在此向大家表示感谢。 最后,感谢所有为本书顺利付梓而付出艰辛劳动的人! 胡训强 张欣景 2015年11月于广州 前言 树莓派是一种信用卡大小的单板计算机,能提供大量开展研究和发明创造的机会。看到一个孩子从零开始学习编写Python 代码,制作一个鸟笼并在互联网上传输实时视频来检查鸟是否得到了食物,这种事情真是让人惊叹。记得我还是个孩子时,曾经 将乐高玩具连接到直流电动机和电池上,效果很迷人。在那时我无法想象代码中的逻辑,也没有机会为自己的项目编写代码,然 后用手机来控制乐高玩具运动,但现在我很幸运能有机会介绍这类项目,为那些

6、真正渴望创造一些东西来改变周边世界的年轻创 客提供一个起步平台。 世界正迈向新时代,技术正在改变人们日常的需求和习惯(通过一个简单的界面就可以实现),这给予了我写一本有关树莓 派传感器书籍的动机。世界充满创造性,我认为在你开始理解和懂得一些基础知识并应用相应逻辑时,创造灵感就会涌现出来。 在不同的网站上有大量的树莓派知识和项目,任何一个人都能尽其所能地获取这些知识和项目。我认为网站上的知识通常都是不 完整的,它能让我们快速开始创建项目,但不能使我们明白项目背后的原理。 众所周知,即使没有深入研究过电子设备和通信协议,你也可以在树莓派上编写代码并创建令人惊叹的项目。我周围的同事 经常需要在树莓派

7、平台上编写代码,并将传感器连接到树莓派上,他们可以在很短的时间内就编写出有关人工神经网络的 Python代码,但到了连接硬件时就徘徊不前。我认为对电子学有基本的了解能帮助那些想在树莓派之类的平台上进行程序开发 的精英走出上述困境。与此相反,硬件开发人员能够连接传感器,保证设备引脚上具有正确的电压电平,但到了编写代码之时, 他们就需要帮助了。 我发现树莓派最有趣的地方在于我能使用硬件元器件和电烙铁,并且能为硬件编写代码让其工作。本书为那些希望了解各种 硬件和软件如何协同工作以及希望在树莓派上开发传感器、物联网项目的创客提供了入门指南,在我们期待将周边所有的东西连 接成一体之时,科技将会有大的发展

8、。 物联网以更好的用户体验为出发点,为收集和分析数据开启了一个新世界,传感器阵列输出的大量数据都是由传感器节点生 成的,在这种背景下,树莓派向我们提供了从简单的项目(例如本书介绍的将数据从开发好的传感器站上传到互联网)入手的机 会,这是我们创建物联网项目的第一步。另一件有趣的事是随着B型树莓派2的出现,开发人员能够拥有足够强的处理能力,可 在树莓派上完成计算密集型算法,因此本书用一章来讲解图像处理。对初学者而言,想向他们解释清楚图像处理相当困难,但是 至少我试着为读者提供一个自发进行图像处理的简单起点。 本书介绍了5个不同项目,它们是用不同方法创建电子学项目的学习起点,我在准备这些项目时遵循的

9、方法相当有趣,这也 是我从事复杂硬件设计时所遵循的方法。虽然我并不依赖于面包板(因为我从事的工作大多都是高速电路设计),但本书介绍的 一些小型项目原型可以很容易地在面包板上实现。第一步,购买最好的硬件元器件(最好针对面包板测试进行了通孔),在代码 不能执行或者无法给出正确结果时你能依靠这些硬件元器件解决问题。提前准备好一个框图并考虑在硬件和固件设计期间会用到 的每个元器件。第二步,请仔细阅读要用到的电子元器件的数据手册,确保每个元器件都能满足设计要求。第三步,将电子元器 件连接到面包板上,并进行彻底检测。最后,在硬件设置稳定后,编写代码(或固件),并且为了获得更好的性能,可能还要不 断改写代码

10、,删除不必要的变量及不可达的代码或循环、处理中断、定义处理器的休眠时间和看门狗、管理合适的内存片段,以 避免程序崩溃。但是本书涉及的都是最简单的代码,并不会深入研究嵌入式程序开发。在树莓派上安装代码库可以减少程序员常 犯的错误,只要调用一个函数,就能在后台执行所有的内置调用,这得感谢树莓派代码库的开发者,有了这些代码库,我们就能 编写出更健壮的代码(有意地或无意地)。当准备编写实例代码时,建议你将其先拆分成几个部分。 读者在创建从温度-湿度-光线传感器中获取数据的项目时,可能会遇到一些困难。首先要获取温度和湿度值,然后再针对光 线传感器编写代码,如果这两段代码都能给出正确的值,那么请记下它们,

11、最后通过函数调用将这两段代码合并到一起。 本书的写作思路是:首先介绍项目的设置,然后描述项目的目的,最后描述硬件实现的所有细节。在某些章节中,软件会被 拆分成若干部分,然后再将它们合并起来,这样做是为了避免让读者感到单调。书中某些章节的理论知识篇幅较长,对此,我深 表歉意,但我敢肯定读者会喜欢阅读这些理论知识,并且能从中学到很多东西。 欢迎大家在GitHub上有关本书的主题下提问、提出改进意见和建议,网址 是:https:/ 本书内容 第1章介绍了市面上可找到的所有型号的树莓派,包括最新发布的B型树莓派2;讨论了安装操作系统的方法以及几种有趣的 将树莓派接入互联网的方式,然后我们在树莓派上执行

12、了用Linux终端、Linux shell脚本、Python和C语言编写的若干代码。 第2章介绍了电子学的基础知识以及电子设备的通信协议,更加有趣的是,用shell、Python和C语言对GPIO进行了若干实 验。 第3章介绍了如何在树莓派上设置超声波传感器,以及如何小心地处理各设备上不同的电压水平,还编写了一段让超声波传 感器运行起来的代码,并针对视力不佳的人开发了一个避障系统中的辅助工具。 第4章教你如何在市面上选择可用的传感器,然后实现了温度-湿度-光线传感器所需的硬件和软件设计,以使家用电器自动 化。 第5章介绍了如何连接模数转换器和一组传感器,我们用串行通信协议为树莓派创建了一个传感

13、器站,从而可以使用所构建 的通用软件来获取任意与树莓派连接的传感器中的数据。最后将获取的数据存储在一个日志文件中,供分析使用。 第6章对物联网和传感器节点进行了研究,在第5章的传感器站的帮助下,我们将数据上传到在线电子表格中,从而实现了 一个实时图表,同时还可以在电子邮件平台上收到紧急电子邮件。读者在完成自己的项目之后,可以将传感器数据发送至 。 第7章介绍了图像处理的基础知识,以及成功安装OpenCV库的方法。我们用摄像头开发了一个IP探头,将这个IP探头安装 在后院中,可观看人类的日常活动的实时视频。进一步,我们在OpenCV中编写了一段运动检测代码来检测特定区域内的人类运 动,并捕获即时

14、警报下的图像。 附录是需要购置的硬件元器件清单,便于读者执行本书所介绍的制作任务,从第2章开始就需要用这些元器件来测试我们所 编写的代码,你可以带着这张清单去你家附近的电子销售商处购买。 阅读本书的要求 除了必备的硬件元器件之外,用树莓派完成书中的任务时没有特别的要求!你可以将树莓派连接到安装有Linux、Windows 或Max OS X操作系统的个人计算机上。任何能在市面上找到的任意型号的树莓派(A+型、B型或B+型树莓派1以及B型树莓派 2)都可以用来测试代码。在阅读第3章以及后续章节之前,可先参阅附录,准备好硬件。 本书的读者对象 对于想用树莓派创建不同项目的硬件发烧友而言,本书十分理

15、想。本书的读者对象是具有编程经验,尤其是具有Linux、C 语言和Python编程经验的人,但又不局限于这类人群,不具备编程知识的读者也可以从本书获得必要的知识并立即开始项目开 发。无论读者是否具有编程经验,本书都准备了一些电子学相关的最新概念,这些概念对于用树莓派进行硬件编程十分必要。 本书的约定 你在本书中会看到若干不同的文本样式,这些样式用于区分不同类型的信息。下面是这些样式的一些示例,并对样式的含义 进行了解释。 代码块如下所示: 命令行输入或输出如下所示: 新术语和重要词则用黑体表示。你在屏幕上的菜单或对话框中看到的文字会像这样:“用键盘在配置设置项中选择Enable Camera选

16、项。” 注意 警告或重要的注意事项显示在这样的文本框中。 提示 技巧和窍门显示在这样的文本框中。 读者反馈 时刻欢迎读者的反馈,我们也十分想知道你对本书的想法喜欢哪些内容、不喜欢哪些内容,读者反馈对于我们改进书籍 并让你从中得到更多的收获非常重要。 客户支持 既然你已经成为Packt出版社的尊敬读者,我们就应该告诉你一些事情,以便你在购买本书的同时获得最大的价值。 勘误 虽然我们已经非常谨慎,尽力保证书中内容的正确性,但仍然会有错误出现。如果你在我们的任何一本书籍中发现了错误 可能是文字错误,也可能是代码中的错误,请告知我们,我们将不胜感激,这样做可以减少读者的挫败感并减少本书的错 误。如果你

17、发现了错误,可以通过以下方式提交它们,访问http:/ 后单击errata submission form链接,输入错误的详情。一旦你提交的错误修正意见得到确认,那么你所做的勘误就会被接受并 上传到我们的网站或添加到相应书籍Errata部分已有的勘误表中,你可以通过访问http:/ 应书名来查看已有的勘误表。 问题 如果对本书的内容有任何疑问,请向发送邮件,我们将竭尽所能解答你的疑问。 致谢 首先我必须向组稿编辑Richard Harvey表示感谢,我从来不知道自己能就“树莓派传感器”这样吸引人的话题写出一本书 来,在我进行写作之前,他给了我机会和大量的支持、鼓励。感谢他能从芸芸众生中选择我作

18、为本书的作者,并鼓励我投入到写 作当中。 还要感谢文字编辑Natasha Dsouza和Owen Roberts,你们总是能在我陷入困境时助我一臂之力。在我撰写本书中间章节 时由于巨大的工作压力拖延了进度,感谢他们当时的理解和协助。特别要感谢Natasha,她把大把时间都花在了编辑本书的内容 上,梳理文字,并且一直支持我写作。 然后要感谢技术文案David Alcoba、Siddharth Bhave和Cdric Verstraeten,由衷地感谢你们花费宝贵的时间来对本书进 行技术审查,并针对本书内容提出有益补充和宝贵意见,使得本书更能吸引读者的眼球。由于采纳了你们的宝贵建议,本书变得 更加

19、专业了。 我怎么能忘了Shiny Poojary以及对本书进行技术编辑并剔除书中错误内容的团队呢?他们完全改变了本书的面貌。感谢 Shiny Poojary持续不断的支持,也感谢她为能按时校订完本书而进行的孜孜不倦的工作,多亏她,本书才得以付梓。我还要感 谢Packt出版社直接或间接参与本书出版项目的员工,感谢他们的所有工作。 感谢我的朋友、教授和同事。我要感谢所有已成为我生命一部分的朋友给我带来的快乐、对于我写作本书给予的支持以及在 开始写作之前给我的美好祝愿。感谢韦洛尔理工大学的教授们,尤其要感谢Arun Manoharan博士就如何成为一名作者传授给 我的为数不多却大有裨益的真知灼见。另

20、外,我在Leaf科技有限公司的同事总是从我这里拿走有关本书的最新资料并鼓励我加入 令人信服的内容。 最重要的是,要对我的父母表示由衷的感谢,尽管在写作本书的所有时间内我都无法和他们待在一起,但他们每天都会咨询 本书的进度并十分期待本书成形。 第1章 认识你的小伙伴树莓派 当今世界正在趋于自动化,同时出于分析、控制和通信的目的,有海量的数据正在产生并得到处理。如果树莓派电脑板得到 充分利用,那么它在自动化和数据处理领域将会大有用武之地,这种微型电脑板可以为我们改变周围的世界提供丰富的功能和大 量的机会。本章的内容有助于让你迈出用树莓派来改变世界的第一步。 如果你是初次使用Linux或者是编程新手

21、,那么可能会不容易理解书中的大量命令和代码,但是要改变世界的动机或许就足 以让你开始创建树莓派项目。本章为树莓派电脑板使用以及用户涉足传感器所需的所有准备工作提供了一份简单的指南,以让树 莓派成为你最好的小伙伴。对于创建树莓派项目而言,了解本章的讲述步骤十分重要,本章涵盖的内容如下: 对树莓派电脑板及其一些有用接口有基本了解。 首次安装操作系统的步骤。 使用树莓派共享互联网连接的独特方法。 Linux基础以及一些有用的shell命令。 安装重要的库。 编译并执行C以及Python程序。 Shell、C和Python的实践问题说明。 1.1 树莓派板卡一览 在开始之前,再次介绍一下我们的好朋友树

22、莓派,树莓派电脑板设计师因此收获了众多赞誉,他们将我们实现项目所 需的一切集成在一块信用卡大小的印刷电路板上(也称为信用卡尺寸单板电脑)。树莓派有两个版本:树莓派1和树莓派2。由 于开发时间较早,树莓派1家族包括A型、A型、B型和B型。最新发布的型号是树莓派2,它是B型系列的新成员。目前应用 最广泛的树莓派是B型,它也被称为树莓派1家族中的原型树莓派板,树莓派B型和B型之前的型号是A型,与诸如A型和B 型之类的其他型号相比,它并未在业余爱好者中得到广泛应用。如果你不清楚这些电脑板的规格,可以在下表中看一下它们的 完整对比,其中包含了树莓派1和树莓派2主流型号的对比参数,然后就可以选择你所想要的

23、电脑板了。 树莓派1中具有博通BCM2835处理器和256MB或512MB RAM,处理器和RAM采用层叠封装(POP)方式进行集成。另一 方面,树莓派2具有博通BCM2836处理器,并且在电脑板下方连接有1024MB的RAM。仍然有极少数树莓派用户钟爱树莓派1 A 型,这些用户在依靠电池运行电脑板时需要低功耗。树莓派具有很多良好的组成要素:RAM提供用于运行当前线程和应用程 序的临时存储器;多媒体处理能让图像得到平滑处理,从而可以通过HDMI和视频扩展应用程序播放高分辨率视频。 注意 树莓派的英文名称是Raspberry Pi,简称为RasPi。 这位新朋友的功能与你的PC完全相同,树莓派可

24、被用于理解计算机的工作原理、学习编写程序、文字处理以及游戏。下面 是用树莓派可以完成的有亮点的小任务: 你希望仅通过将显示屏连接到树莓派上就能观看喜欢的高分辨率电影吗?你可以做到。 你希望将树莓派用作网络服务器,在其上运行你的网站吗?用树莓派毫无问题。 你希望在假期时玩视频游戏(例如Minecraft)吗?可以尝试使用树莓派。 你希望在这个周末去动物园时将树莓派当作自动相机吗?简单! 你甚至可以用树莓派来制作自己的机器人或者四轴飞行器。太棒了! 所有特性都集中于如此之小的一块电脑板上。 注意 以上内容让你兴奋吗?答案显然是肯定的!我们可以用树莓派创建数量众多的应用程序,但是这不是本书讨论的 范

25、围。 由于树莓派具有与外部世界交互的能力,所以用树莓派开发的主要应用程序包括使用传感器探测周边的参数,并将这些参数 转换成有用的数据,以分析和控制电器,在后续章节中我们将进行这类实验。 假定你手头上已经有了树莓派(B型或B型),现在你可能正想弄清楚它上面的接口和电子元器件究竟是什么。我将会向 你介绍构建一个项目究竟需要什么,而不是介绍标准规范中的那些专业术语。请看下图中的各种接口,本书在后面会一直用到下 图所示的接口。 B型树莓派1的接口 B型树莓派1和B型树莓派2看上去完全相同,只是在性能上存在差别。 B型树莓派1和B型树莓派2的接口 由于具有更为强劲的处理器并升级了RAM,所以B型树莓派2

26、在性能上提升了6倍。我们按照顺时针方向对B型树莓派1的重 要接口做一个简单介绍,如下所示: 通用输入输出接口:通用输入输出的英文为General Purpose Input Output,缩写为GPIO,在树莓派电脑板上它是一个引脚 插槽。树莓派电脑板上的处理器(BCM283x,它是树莓派的大脑)能够在程序运行期间提供特定的功能,我们将在后续章节中大 量使用它们,其中最重要的是可以在程序中为特定的GPIO接口分配特定的任务,在程序执行时,GPIO会相应地变为逻辑高或逻 辑低(关闭状态和启动状态)。我们可以读取来自其他外围设备(例如传感器)的数据值,并在程序中对接收到的数据值进行计 算。除了读取

27、数据值之外,我们还可以通过与树莓派电脑板连接的LED指示灯或LCD显示器显示程序运行的结果。根据代码的运 行结果,我们可以通过电动机驱动电路驱动与GPIO连接的电动机。树莓派的这种特点使其有别于普通的电脑板,因为它给予了 开发人员进行手工制作的自由。 提示 例如在你的应用程序中,如果温度降到了20以下,那么连接到树莓派的恒温器就会通过分配给它的特定的GPIO 接收到相应的信号,然后开始加热。GPIO总是工作在逻辑高(1,开)和逻辑低(0,关)状态,这也决定了对它编写程序的方 式。 RCA视频输出接口:这是应用最广泛也是最古老的一种接口,无论是新电视机,还是旧电视机,抑或是显示器都会用到 它。它

28、用于传输视频信号,视频信号是树莓派的一种典型输出。在A型和B型树莓派1以及B型树莓派2上,RCA接口或复合视 频接口是和3.5mm耳机插孔集成在一起的。 USB接口:USB接口是最常见的接口,广泛应用于现代计算机之上,因此被称为通用串行总线(Universal Serial Bus)接 口,你可以通过其将闪存、键盘、无线网卡和鼠标连接到树莓派上,还可以通过其将外部供电的USB集线器连接到树莓派上,以 便连接更多的基于USB的外部设备。 3.5mm耳机插孔:如果没有用到HDMI连接(后面很快就会提到),那么可以通过使用标准3.5mm耳机插孔的扬声器或耳 机播放音频。在B型树莓派1和B型树莓派2上

29、,耳机插孔是和复合音视频接口集成在一起的,具有复合音视频输出的所有功 能。 以太网接口:对于远程登录树莓派、有线接入互联网而言,以太网接口是最重要的接口。在本章下一节中,我们将广泛使 用它。我们不能总是将树莓派连接到专用显示器上,因此我们可以使用远程登录在计算机屏幕上观看树莓派的整个桌面或命令行 界面(Command-line Interface,CLI)。 CSI摄像头接口:树莓派电脑板自身没有集成摄像头模块,但是可以用CSI接口通过一条15cm排线将单独购买的摄像头模 块连接到树莓派上,过长的排线会降低图像质量。用5兆像素的树莓派摄像头模块就可以录制高清视频和静止图像。它利于初学 者使用,

30、但是如果想扩展知识面的话,它也可以满足高级用户的需求。较之用USB连接的摄像头,这种摄像头模块的性能更为出 色。 HDMI接口:HDMI的中文含义是高清多媒体接口(High-definition Multimedia Interface,HDMI),它是一种紧凑的音频/ 视频接口,用于传输无压缩的媒体数据。通过它连接现代高清电视(HDTV),就能在树莓派上观看全高清(FHD/HD)视频, 此时并不需要将扬声器连接到耳机插孔上。如果你想同时通过HDMI和3.5mm耳机插孔播放音频,则必须编辑处理Linux的内部文 件。 Micro USB电源接口:人必须依靠食物才能生存下去,不是吗?树莓派也是如

31、此,它需要有电力供应才能工作,5V输入 电压就可以为其供电,而额定电流则取决于树莓派上连接了哪些东西。你在树莓派上见过电源按钮吗?实际上只要将USB电源适 配器插入树莓派就可以启动它了。 注意 A型和B型树莓派可用的最大电流为1A,所以如果需要将耗电要求超过1A的USB设备连接到树莓派上,则必须通过 外部供电的USB集线器进行连接。例如,USB硬盘需要充足的电流才能工作,而树莓派无法通过USB接口提供所需的电流值。而 另一方面,在需要将设备连接到外部供电的USB集线器之前,B型树莓派可用的最大电流为2A。如果你正在设计一款远程操控 的汽车或四旋翼飞行器,则可以将移动电源或电池连接到树莓派上。如

32、果不确定USB设备耗费的电流值到底是多少,那么请购买 外部供电的USB集线器。在任何情况下都不要让电流值超过2.4A,因为这会毁掉你的树莓派,如果外围设备的电流需求过高,它 会完蛋的! SD卡插槽:SD卡十分重要,因为它是树莓派存储操作系统的地方,同时它也是存储文档、程序和图像的地方。对于树莓 派而言,SD卡是第二重要的必备存储部件,第一重要的是板载RAM。B型树莓派要求具有标准尺寸的SD卡(大卡!),而B型 树莓派则要求Micro SD卡。 提示 建议购买Micro SD卡和SD卡套,以便在从B型树莓派1转到B型树莓派1或B型树莓派2时,能够保留相同的操作系 统和程序。此外,在安装了库并进行

33、了设置之后,操作系统的崩溃会令人十分痛苦,为了避免这种情况,应该定期备份整个操作 系统,以便于在新的SD卡上再次安装操作系统。 显示器接口:最近但非最新的显示器接口是将7英寸1的LCD显示器连接到树莓派电脑板上,以用于嵌入式产品开发,但 通常情况下,RCA和HDMI就已经足够了,如果应用程序需要这类接口,那么就需要用到它们。 1 1英寸25.4mm。编辑注 1.2 首次配置 在购买了树莓派之后,现在就必须让它好好工作。本节中准备在要工作的树莓派上安装操作系统,最流行稳定也是应用最广 泛的树莓派操作系统是Wheezy-Raspbian。 Raspbian运行在开放平台Debian Linux之上

34、,为何我们要用Raspbian而不是直接使用Linux或其他Linux的变种?这只是因 为Raspbian具有针对树莓派编写的设备驱动程序,简单来说,设备驱动程序给出了硬件在操作系统之上的运行细节并支持用户 接收硬件发送的命令(或向硬件发送命令)。由于树莓派的硬件与PC或通用计算机上的硬件不同,所以要用进行了改良的操作 系统,以便完全利用所有的硬件资源,这对于那些希望遵守默认标准的用户再好不过。 你可以从树莓派基金会网站http:/downloads.raspberrypi.org/raspbian_latest上下载Wheezy-Raspbian的安装文件(是 一个镜像文件)。如果你想要安装

35、无图形用户界面风格的Linux(直接使用命令行界面),那么可以试试Arch Linux,它可以从 ArchLinuxArm的网页http:/archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz上下载。 安装操作系统 我们需要一些基本部件来成功启动树莓派。请注意,本小节是为那些首次使用树莓派并且还未购买预加载SD卡的用户准备 的。如果你已经在SD卡上安装过了操作系统,那么可以跳过本小节,或者浏览一下安装步骤以便帮助新入手树莓派的朋友。 1.购买SD卡 在购买树莓派模块时,可能连同SD卡一起购买了,也有可能没有,如果没有的话,那么要购买的SD卡的最小

36、容量为4GB。 树莓派没有板载存储器,因此购买SD卡是存储数据和操作系统的唯一方法。我的树莓派有一块8GB的SD卡,它工作得不错,并 且足以处理所有项目。 提示 对于服务器应用程序而言,如果需要更多的存储空间,那么可以用更大容量的SD卡。 2.下载必备软件 在有了SD卡之后,就可以准备下一步了。下面的步骤在我的个人博客中也进行了介绍,你可以访 问http:/rushigajjar.blogspot.in/2014/03/setting-up-raspberry-pi-for-first-time.html进行查看。 让我们来看看不同操作系统上的操作步骤。 Windows 当在Windows上工

37、作时,请记住如下几点: 格式化SD卡:用SD卡伴侣工具(在www.sdcard.org/downloads下载)格式化/清空SD卡上的原有数据,相对于计算机操作 系统所提供的通用格式化工具而言,该格式化工具可以让你的SD卡具有最佳性能。 将操作系统的镜像写入SD卡:用流行的免费工具Win32 Disk Imager(从 原始磁盘镜像中将下载好的Raspbian操作系统写入SD卡中,根据屏幕上的步骤提示,可以很容易地将Raspbian的镜像写入SD卡。 写入操作完成后,就可以转到下一节。 (1)Mac OS X 当在Mac OS X上工作时,请记住如下几点: 下载用于将操作系统的镜像文件写入SD

38、卡的软件:Mac OS X上有多种工具可用,例如Apple-Baker、PiWriter和Pi Filler。 PiWriter是一个基于命令行的工具,而Apple-Baker和Pi Filler是基于图形用户界面的工具。推荐使用Pi Filler,因为它较之其他工具 更为简单快速。可从http:/ Filler。 将镜像文件写入SD卡:插入SD卡,在工具中查找并选择下载好的镜像文件,在自动弹出的菜单中擦除SD卡,选择 continue按钮将镜像文件写入SD卡。 (2)Linux 当在Linux上工作时,请记住如下几点: 解压下载好的镜像文件:如果你在台式计算机上使用的是基于图形用户界面的Li

39、nux操作系统,那么请打开download文件 夹,在操作系统镜像文件上单击鼠标右键,选择弹出菜单中的Extract Here进行解压。 下载用于将操作系统的镜像文件写入SD卡的软件:可以从Ubuntu软件中心安装镜像写入工具,打开Ubuntu软件中心查找 ImageWriter。将SD卡插入台式计算机,根据图形用户界面(单击Write to Device按钮)查找镜像文件,并将其写入SD卡。 3.扩展根文件系统 现在到了第一次启动树莓派的时候了。在将操作系统写入SD卡之后,请将SD卡插入树莓派上的插槽。通过RCA或HDMI接 口连接显示器(或电视机)与树莓派,并将电源连接到Micro USB

40、接口上,然后启动树莓派。你可以在屏幕上看到配置画面,直 接选择expand_rootfs选项(用通过USB与树莓派相连的键盘进行选择),等一会儿,让后台处理完成。在你将镜像文件写入SD 卡时,所有的东西都放置在一个紧凑的包内,需要对其进行扩展才能让树莓派全面开展工作。扩展根文件系统 (expand_rootfs)会调整SD卡分区的大小,并允许我们使用其中的存储空间。扩展完成后,重启树莓派。 提示 在用Micro USB启动树莓派之前,必须将SD卡插入插槽并且连接好HDMI接线。树莓派会读取通过HDMI输入的信 号来检查显示器连接。如果在启动之初显示器不可用,那么就会禁用HDMI接口并用流传送视

41、频信号以优化性能。 4.登录树莓派 当树莓派重启时,你会在屏幕上看到众多代码在滚动,别慌!这是树莓派中的正常流程,当屏幕显示稳定后,就会提示你输 入用户名和密码,默认的用户名和密码分别是pi和raspberry。 提示 请注意,在你输入密码时并不会在屏幕上有任何显示,别担心,欢迎来到Linux世界! 输入了正确的密码之后,就会看到显示器、监视器或电视机上出现带有piraspberrypi$提示符的命令行界面,现在可以 准备好输入命令了。 5.打开桌面 输入startx命令,此时屏幕上会显示piraspberrypi$startx,按下回车键,现在你会看到带有树莓派标志的白色显示画面 以及一个与

42、PC相似的图形用户界面。咬上它一口1! 通过简洁的教程学习了如何配置树莓派,现在我们将通过给树莓派提供互联网连接来添加更多功能。没有接入互联网的计算 机是不完整的,树莓派也是如此。我们需要通过互联网解决一些问题,尤其是要用它直接在树莓派上下载实用库和应用程序。 1 此处作者的意思是“咬上”那个树莓派标志的一口。译者注 1.3 将树莓派接入互联网 在完成了树莓派的配置之后,就到了将其接入互联网之时。基本上有两种将树莓派接入互联网的常见方法:第一种方法(也 是最简单的方法)通过无线网卡建立Wi-Fi连接;第二种方法则有些麻烦,但却是最经济实用的方法,它可以让你利用手头上已 有的一切设备而不需额外添

43、置无线网卡,该方法需要一台笔记本电脑/台式计算机(PC)以及一条网线。下面我们将看看这两种 方法。 1.4 Linux速成教程 很多作者和书籍都会讲解Linux操作系统的概念,所以我在这里只会对Linux做一个快速介绍,你可以参阅Beginning Linux Programming 4th Edition(Wrox出版,作者是Neil Matthew和Richard Stones),而对于shell脚本编程,你则可 以参阅Linux Shell Scripting Cookbook Second Edition(Packt出版,作者是Shantanu Tushar和Sarath Lakshm

44、an)。Linux操作系统最为有名之处在于它对于初学者的不友好!当用户们开始使用Linux时经常感到迷惑不 解:“Linux凭什么得到广泛的应用,还如此声名显赫?”对于像我们这样的发烧友而言,Linux是最大的开源平台,它允许我们 按照自己的意愿修改操作系统内核。使用Linux的一些好处包括(但肯定不限于)受通用公共许可支持(General Public License,GPL)的免费、稳定、快速和可靠。 你可以用Linux内核的各种发行版创建个性化的操作系统,例如在Linux变种Debian上开发的Raspbian。我们需要定制化的 操作系统,因为如果我们要开发个性化的硬件,就必须了解在Li

45、nux内核的基础上如何根据我们的需求针对硬件编程和开发驱动 程序。现在我们将详细介绍所有的Linux操作系统上最强劲的工具终端。 1.5 安装实用库 我把这一节比作加了巧克力沙司的冰淇淋(美味!可口!)。如果你手上有一个香草冰淇淋,那么你可以尽情享受它,但是 如果你往它上面加上巧克力沙司,口感就会更好,不是吗?在树莓派中添加和安装一些库也是这样。添加了库的树莓派令人称 奇,它可以向你提供所期待的任何功能,无论是在GPIO上还是在摄像头接口上都是如此。库实际上就是一组功能的集合,它可 以让你在编写程序时更加轻松。 我们将一步步地安装这些实用库,为此,你需要将树莓派通过PuTTY接入互联网,这在前

46、述章节中已经介绍过。 提示 在安装库之前,请检查你的操作系统是否已经升级到最新版本,只需要输入如下所示的命令就可以检查升级和更 新情况: 我们在这里更新树莓派,以便提供最新的包版本和依赖项的信息,所有的库都会接收到最新发布的包信息并重新进行同步。 在下一步中,upgrade将根据update清单下载新版本的包。这个过程会耗费一些时间,所耗费的时间取决于新版本包的大小和网络 连接的质量。 1.6 python-gpio 最新发布的树莓派已经内置安装了python-gpio,但是该库对于那些拥有旧版本树莓派的用户而言也必不可少。python- gpio库允许你在执行Python脚本时轻松地访问和控

47、制GPIO引脚,该库可从Python组织的网站下载,但是我们将用LXTerminal 和PuTTY安装该库,可通过下载一个.tar文件完成此项工作: 如果你不清楚,就让我来告诉你:TAR文件是一种压缩文件,可以减少下载量并让下载过程变得轻松些,我们需要将所下载 的文件解压到一个目录当中: 重命名目录,以便于以后使用,所用命令如下所示: 用如下所示的命令转到要安装该库的python-gpio目录: 提示 在输入命令时,你可以使用Tab键,Tab键提供了命令自动完成功能。例如,在输入cd pyth命令时按下Tab键,就会 自动完成cd python_gpio命令,这会节省你输入长文件名的时间。按两

48、次Tab键,则会显示可用命令或文件名的清单。 现在我们将要安装python-gpio库: 你可能会看到一条最新版本的python-gpio库已安装好的回应信息,在此之后,如果希望删除下载的文件,则可以用rm命 令进行删除。最后,还有一个为GPIO上的Python串行外围设备接口协议(Serial Peripheral Interface,SPI)提供支持的库: spidev,你可以用如下所示的命令安装该库。第2章将介绍更多有关SPI协议的内容。第6章介绍将传感器数据发送至网页的传感 器站时用到的SPI协议。 提示 还有很多库可用,但我们会在后续章节中有需要时再安装它们。前面介绍过的库安装起来都很容易,后面遇到的 那些也会如此?Linux威武! 1.7 准备学习Python和C 我们使用Python的原因是它是一种非常简单又功能强大的编程语言,由于具有缩进和标准的英文关键字,Python程序易于 编写和阅读。 注意 Python有两个主要版本:Python 2和Python 3,人们对到底该使用哪个版本至今仍存在争议,你可以 在https:/wiki.python.org/moin/Python2orPython3上阅读相关内容。 本书主要使用Python 2.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料


经营许可证编号:宁ICP备18001539号-1