爱上Raspberry Pi 哈尔滨奥松机器人科技有限公司

2020-03-01 157浏览

  • 1.
  • 2.爱上Raspberry Pi Matt Richardson 〔美〕 Shawn Wallace 李凡希 北 京 著 译
  • 3.图字:01—2013—3272 号 内 容 简 介 Raspberry Pi 是一台价格不到300元的卡片式电脑,它的体积虽然只有信 用卡般大小,但具备强大的功能。本书将从在Raspberry Pi上安装、配置和开 机启动Linux操作系统开始,深入浅出地介绍Raspberry Pi的各种特性。不仅介 绍Raspberry Pi自身的底层GPIO接口编程技术,还将指导你把Raspberry Pi与 Arduino结合在一起,设计出可以通过网络远程控制的电子作品。此外,你还 将学习Pygame多媒体编程,并用Scratch完成一个简单的小游戏。 本书适合Raspberry Pi爱好者阅读,也可作为高等院校电子信息、计算机 等相关专业的师生参考用书。 图书在版编目(CIP)数据 爱上Raspberry Pi/(美)Matt Richardson,Shawn Wallace著; 李凡希译. —北京:科学出版社,2013.10 ISBN 978-7-03-038196-5 Ⅰ.爱… 计 Ⅱ.①M… ②S…③李… Ⅲ.Linux 操作系统-程序设 Ⅳ.TP316.89 中国版本图书馆CIP数据核字(2013)第169518号 责任编辑: 喻永光 杨 凯 / 责任制作: 魏 谨 责任印制: 赵德静 / 封面设计:Randy Comer 张 健 北京东方科龙图文有限公司 制作http://www.okbook.com.cn出版 北京东黄城根北街16号 邮政编码:100717http://www.sciencep.com北京佳艺恒彩印刷有限公司 印刷 科学出版社出版 各地新华书店经销 * 2013年10月第 一 版 2013年10月第一次印刷 开本:A5(890×1240) 印张:7 1/4 插页 1 字数:170 000 定价:39.80元 (如有印装质量问题,我社负责调换)
  • 4.推荐序 刚看到“树莓派”这个词,你会不会认为它是一款好吃的蛋糕呢? 想当然你会问“度娘”,结果有将近 30700 条相关信息。Raspberry Pi(中 文名为“树莓派”,简写为 RPi)是一款信用卡大小的卡片式电脑,是为 学生计算机编程教育而设计的。自 2012 年问世以来,受众多计算机发烧 友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却 很强大,视频、音频、网络等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。 这么棒的东西能用来做什么呢?《爱上 Raspberry Pi》将会告诉你答案。 2008 年我开始接触 Arduino,这位能征善战的“故友”大家都很熟 悉。如今在这“嵌入式”的天下,8 位微控制器在功能应用方面略显单薄, Raspberry Pi 的问世不仅能解决此类问题,与 Arduino 的结合还会发挥非 凡的创造力。目前关于 Raspberry Pi 的技术论坛和相关资料不少,但杂乱 无章,初学者无法系统学习。《爱上 Raspberry Pi》的出版将会给广大电 子爱好者带来莫大的帮助。同时也会促使这股“树莓”风席卷中国。 本书全面讲解了 Raspberry Pi 硬件组合和操作系统的使用,还有与 Arduino 如何交互,深入剖析当下热门应用案例,具有很强的实操性,还 有大量珍贵代码。为与广大“派”友交流互动研习本书,本人也将开通 “Raspberry Pi”大制作网站(http://www.iraspberrypi.cn),将书中教学案 例拍成视频与大家分享。预祝每一位认真阅读本书的人早日成为有“派” 一族,未来电子领域的佼佼者! 于欣龙 奥松机器人创始人、资深创客
  • 5.致中国读者 当我们刚开始编写《爱上 Raspberry Pi》这本书时,我们并不 只是希望通过这本书教会读者如何把 Raspberry Pi 运行起来,而是 希望能引导读者用它做出更多好玩、实用的东西。所以在这本书中, 我们设计了很多实例,通过一步步地讲解,让读者可以在实践中逐 步了解整个系统中的每个部分。希望通过这些实例,在读者面前展 现出 Raspberry Pi 的潜力并激发读者的创造力,在 Raspberry Pi 上 开发出更多创新的作品。 本书的英文版出版后,我们很高兴收到了许多读者的反馈。有 人告诉我们,他修改了书中介绍的“Web 台灯”实例,并以此为基 础做出了一个可以通过网络控制的咖啡机! 我们被 Raspberry Pi 的巨大潜力深深打动,并把我们的激动之 情倾注到了这本书中。我们希望能通过本书的中文版,与中国读者 一起分享我们的激情。希望大家能从本书中学到一些知识,并获得 一些新的启示。 Matt Richardson 2013 年 4 月 15 日于纽约
  • 6.译者序 2005 年时,尼葛洛庞帝(Nicholas Negroponte)教授与麻省 理工学院多媒体实验室所提出的 One Laptop per Child(OLPC) 100 美元笔记本电脑设想深深地吸引了我,虽然 100 美元的电脑 在当时似乎只是一个美好的梦想。然而,仅仅过去了短短的 7 年 时间,我们就看到了信用卡大小的 Raspberry Pi 以 35 美元的售价 在很短时间内风靡全球,截至 2013 年 3 月,已经售出了超过 100 万台 Raspberry Pi。 Raspberry Pi 不仅仅是一台便宜的微型电脑,也不仅仅是创客 们手中的创新玩具——如果只是用这样的标准去要求它,市面上还 能找到性价比更高的产品。Raspberry Pi 从设计之初就承载了“教育” 这一重要的理念,通过这样一台便宜的设备,能鼓励学生在上面大 胆尝试,提高动手能力;通过使用 GPIO 接口完成电子实验,也可 以更好地帮助学生理解电子电路与计算机的一些底层知识,培养编 程能力。在这样的一个设计理念的指引下,一个成熟的 Raspberry Pi 社区很快地在全球范围内成长起来。这也正是 Raspberry Pi 的成 功之处。 这本《爱上 Raspberry Pi》只是一本薄薄的小册子,但是“麻 雀虽小,五脏俱全”,作者把很多琐碎的知识点有机地组织在一起, 让读者不需要太多背景知识也可以轻松地读完全书。它很好地贯彻 了 Raspberry Pi 的“教育”理念,用非常精炼的内容带领读者全方 位领略 Raspberry Pi 的魅力,并手把手指导读者完成很多有意思的
  • 7.爱上Raspberry Pi Getting Started with Raspberry Pi 实例,从实践中学习知识、积累经验。在每一章的最后,还列出了 详尽的参考资料,指引读者自己进一步深入学习相关知识。 在全书的翻译过程中,好友云汉、张志博、贾征细致地审阅了 全书的内容,并指出很多可以改进的地方。阿里巴巴集团的“倒立 工坊”创客小组的同事也给出很多有用的建议。在此向他们表示诚 挚的谢意。同时也要感谢我的家人对我的支持,能让我有足够的时 间放在翻译工作上,保证了在最短的时间内把最高质量的作品奉献 给大家。从事多年语文教学工作的父亲虽然没有办法完全理解本书 中所介绍的技术细节,但还是帮忙审阅了全书的内容,在词汇和句 子的组织上给出很多很好的建议。最后还要感谢科学出版社的喻永 光编辑,他积极调动了各种资源并行开展工作,让这本书能更快与 广大读者见面。 在本书即将付梓之际,兴奋之余,我还是感受到一丝惶恐。虽 然我以前也曾经翻译过很多软件界面和在线文档,但翻译一本完整 的书对于我来说还是第一次。虽然自己已经反复校对了多次、字斟 句酌,但纰漏和欠缺之处在所难免,还请广大读者不吝赐教和批评。 有关本书及 Raspberry Pi 相关的任何问题和建议都可以通过电子邮 件发送到 rpi@freemindworld.com 。我还为本书建立了一个专题网页 (http://rpi.freemindworld.com),你可以在上面找到勘误表和一些 相关的参考资料。 李凡希 2013 年 4 月 20 日于杭州 iv
  • 8.前 言 Preface 前 言 很容易理解为什么当 Raspberry Pi 计划宣布时,很 多人都对此表示怀疑,因为制造一种售价只需 35 美元 信用卡大小的电脑,这听起来完全像是在做梦。不过, 这也正是造成 Raspberry Pi 开始发售时人们疯狂追捧的 原因。 Raspberry Pi 开 始 发 售 后, 所 有 的 库 存 很 快 就 销 售 一 空, 很 多 人 排 队 等 待 发 货。 除 了 低 廉 的 价 格 以 外, 到 底 是 什 么 原 因 让 Raspberry Pi 能 吸 引 这 么 多 人 的 目 光 呢? 在 我 们 开 始 探 讨 Raspberry Pi 各种让人激动的特性前,先来了解一下这个产品的目 标用户。 英国 剑 桥 大 学 的 Eben Upon 和 他 的 同 事 们 发 现, 现 在 计 算 机 专 业 的 学 生, 不 像 20 世 纪 90 年 代 初 的 学 生 们 那 样 具 备 扎 实 的 基 本 技 能。 造 成 这 个 现 象 的 原 因 是 家 用 电 脑 和 电 脑 游 戏 的 出 现, 取 代 了 Amigas、BBC Micros、Spectrum ZX 和 Commodore 64 这些早期的电脑,人们更多的是用电脑来娱乐, 而不是开发程序。另外,电脑在家庭中发挥着越来越重要的作 用,这使得年轻人们也不能在家用电脑上进行各种实验和探索, 因为这样会有把电脑搞坏的风险。如今,手机和平板电脑的处 理 器 变 得 越 来 越 便 宜, 而 性 能 也 越 来 越 好, 这 就 为 Raspberry v
  • 9.爱上Raspberry Pi Getting Started with Raspberry Pi Pi 这种足够便宜且功能完整的电脑主板的诞生指明了方向。正 如 Linux 之 父 Linus Torvalds 在 接 受 BBC News 采 访 时 所 说 的 那样:Raspberry Pi 降低了人们试错的成本。 你能拿它来做什么 Raspberry Pi 一个很大的优点就是,它没有一个固定的使用模 式。你可以用它来播放视频或上网浏览网页,也可以“折腾”它, 学习如何用这块主板做一些东西,Raspberry Pi 是一个具有弹性的 平台,它既可以作为玩具来玩,也可以作为工具使用或者作为实验 平台。下面是一些 Raspberry Pi 的常见玩法。 普通电脑 你应该意识到,Raspberry Pi 就是一台电脑,所以你也可以把 它“当成”电脑来使用,当你按第 1 章中所描述的内容让它正常运 行起来后,就可以让它直接启动进入图形化界面,并用它内置的浏 览器来上网——这就是我们通常使用电脑的方式。除了上网浏览 网页,你也可以在上面安装各种自由软件,如 LibreOffice(http://www.libreoffice.org/ )工作套件,在无法接入网络时,可以用它来 处理文档或表格。 学习编程 Raspberry Pi 的设计初衷是作为一个教学工具,鼓励青少年 开展各种计算机实验,所以它预装了各种编程语言的解释器和编 译器。对于初学者来说,可以使用 MIT 开发的 Scratch 图形化编 程语言——我们会在第 5 章中讲述。如果你想直接开始编写代 码,可以考虑学习使用 Python 语言——我们会在第 3 章中讲述 它的一些基础知识。除了 Scratch 和 Python 以外,你还可以用 C、 vi
  • 10.前 言 Preface Ruby、Java 和 Perl 等各种语言为 Raspberry Pi 开发程序。 电子项目平台 与普通电脑相比,Raspberry Pi 除了更小、更便宜外,还有一 个重要的特点,那就是可以用它来做一个电子项目实验平台。从第 7 章开始,我们会介绍如何使用 Raspberry Pi 来控制 LED 和其他电 器设备,以及读取按钮和开关的状态。 创客与 Raspberry Pi 作为创客,我们有很多技术开发平台可以选择。最近一段时间, 类似于 Arduino 的单片机开发板非常流行,因为它们使用起来很方 便。但是,像 Raspberry Pi 这样的片上系统与这些传统的单片机开 发板还是不太一样。事实上,Raspberry Pi 跟 Arduino 相比,它更像 是一台电脑,而不是一块开发板。 这并不是说 Raspberry Pi 就比传统的单片机要好。例如,你只 是想做一个电子温度计,那使用 Arduino UNO 或类似的单片机会更 为简单。但是,如果想通过 Web 改变这个温度计的设置或从这个 温度计下载温度记录数据文件的话,你可以考虑用 Raspberry Pi。 你所要开发的项目的实际需求决定了你应该如何在这两种方案 中进行选择。但实际上,你也不一定非要做出选择,在第 6 章中, 我们就介绍了如何将 Raspberry Pi 与 Arduino 结合起来并在它们之 间进行通信。 通过阅读本书,你可以更好地理解 Raspberry Pi 的优势,使它 成为你工具箱中的又一件有用的工具。 vii
  • 11.爱上Raspberry Pi Getting Started with Raspberry Pi 别急……还有更多精彩的应用! 你可以用 Raspberry Pi 做很多事情,我们无法在一本书 中列出它的所有用法。下面是其他的一些常见用法。 媒体中心 由于 Raspberry Pi 提供了 HDMI 和复合视频输出端子, 所以可以很方便地与电视相连。并且,它还具备足够的处理 能力来播放全屏的高清视频。为了能发挥 Raspberry Pi 的这 些能力,XBMC(http://xbmc.org/)这个免费开源项目的开发 者们已经把 XBMC 移植到了 Raspberry Pi 上面。XBMC 可以 播放各种多媒体文件,并且它在界面上采用较大的按钮和菜 单,很适合坐在沙发上遥控它。XBMC 把 Raspberry Pi 打造 成一个完全可定制的家庭娱乐中心。 裸机开发 大部分人写的程序都需要在操作系统环境(如 Windows 或 Mac OS)下运行,对于 Raspberry Pi 来说,程序则需要在 Linux 操作系统下运行。但是,你有没有想过要写一些程序 直接在 Raspberry Pi 处理器上运行而不需要通过操作系统呢? 如果你愿意的话,甚至可以在上面从头开发一个全新的操作 系统。剑桥大学的计算机实验室发布了一份免费在线课程 (http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/), 指导你如何使用汇编语言为 Raspberry Pi 开发操作系统。 Linux 与 Raspberry Pi 我 们 平 时 使 用 的 电 脑 上 通 常 都 运 行 着 一 个 操 作 系 统, 如 viii
  • 12.前 言 Preface Windows、OS X 或 Linux。当你打开电脑时,操作系统会自动启动, 它为应用程序提供了访问电脑硬件的能力。例如,当你编写一个访 问 Internet 的程序时,就可以使用操作系统提供的功能来完成必要 的操作,既不需要理解各种不同的有线或无线网卡的硬件原理,也 不需要为不同的硬件编写不同的代码。 与其他电脑一样,Raspberry Pi 也需要一个操作系统,官方推 荐的操作系统是 Raspbian 这个 Linux 发行版。自由与开源的 Linux 系统与 Raspberry Pi 是一个很好的组合:一方面,它使整个平台的 价格保持在一个最低的水平;另一方面,也使这个平台更适合“折 腾”。当然,Raspbian 也不是你的唯一选择,除了它以外还有很多 不同的 Linux 发行版可以使用。甚至还有一些非 Linux 系统,也可 以在 Raspberry Pi 上运行。在本书中,我们只使用 Raspberry Pi 的 下载(Downloads)页面(http://www.raspberrypi.org/downloads)上 提供的 Raspbian 系统。 如果你不熟悉 Linux 操作系统,也不用着急,我们将在第 2 章 中讲述一些使用 Linux 的基础知识。 其他人都用它来做些什么 当你刚接触到一项新的科技时,常常很难想象可以用它来做些 什么。如果你觉得疑惑,可以参考其他人的创意来获取灵感。作为 MAKE 的编辑,我们看到了 Raspberry Pi 的很多奇妙的应用,在这 里与大家一起分享其中的一部分。 街机游戏咖啡桌 (http://www.instructables.com/id/Coffee-Table-Pi/) Instructables 网 站 的 用 户 grahamgelding 上 传 了 一 个 详 细 的 教 程,讲述了如何制造一个可以当成街机来使用的咖啡桌——通过在 ix
  • 13.爱上Raspberry Pi Getting Started with Raspberry Pi Raspberry Pi 上运行的街机模拟器来实现。为了能在 Raspberry Pi 上 运行游戏,他使用了 MAME(Multiple Arcade Machine Emulator) 这个开源、自由的模拟器,这个模拟器可以用来在现代电脑上运行 一些经典的街机游戏。这个桌子里内置了一台 24 英寸的液晶显示器, 显示器通过 HDMI 接口与 Raspberry Pi 相连,街机的按钮和操纵杆 则作为输入设备通过 GPIO 接口与 Raspberry Pi 相连。 RasPod (https://github.com/lionaneesh/RasPod) 印 度 少 年 Aneesh Dogra 是 2012 年 Raspberry Pi 基 金 会 夏 季 编程大赛的亚军,他用 Raspberry Pi 设计了一个名为 RasPod 的网 络 MP3 播放器,这个播放器可以通过 Web 页面进行操作。这个 程序用 Python 和一个名为 Tornado 的 Web 框架来实现,通过使用 RasPod,你可以远程登录到 Raspberry Pi 上并控制音乐播放、改变 音量、选歌和创建播放列表。音乐通过 Raspberry Pi 的音频输出口 输出,所以可以连接到电脑音箱或音响设备上。 Raspberry Pi 超级计算机 (http://www.southampton.ac.uk/mediacentre/features/raspberry_pi_supercomputer.shtml) 很多超级计算机都是通过把很多普通电脑连接起来组成集群, 并把计算任务分发到多个处理器上计算来实现的。英国南安普顿大 学的一群计算机工程师把 64 台 Raspberry Pi 连接在一起,组成了一 台廉价的超级计算机。虽然这个集群的计算能力与现代顶级的超级 计算机相比还有很大的差距,但它完整地展示了超级计算机集群背 后的技术和原理。更有意思的是,放置这些 Raspberry Pi 的“机架” 是由这个团队负责人的 6 岁的儿子用乐高积木搭成的。 x
  • 14.前 言 Preface 如果你用 Raspberry Pi 实现了什么有意思的项目,我们对此 会 非 常 感 兴 趣。 你 可 以 通 过 Makezine.com 上 的 表 单(http://blog.makezine.com/contribute/ )向 MAKE 教育团队提交你的创意。 本书约定 在本书中,我们使用下列字体格式来表达特定的含义。 斜体英文(Italic) 斜体英文用于表示作品名、网址、电子邮件地址、文件名和文 件扩展名。 等宽字体(Constant Width) 用于表示源代码,同时也出现在正文中,用于标识程序中的元 素,如变量名、函数名、数据库、数据类型、环境变量、表达式和 关键字。 粗体的等宽字体(Constant with Bold) 用于在命令中或正文中表示用户手工输入的内容。 这个图标表示小技巧、建议或注释。 这个图标表示警告或注意事项。 使用示例代码 撰写本书的目的就是帮助你完成工作。所以,可以在你的程序 xi
  • 15.爱上Raspberry Pi Getting Started with Raspberry Pi 或文档中自由使用本书中的代码。如果不是大量引用本书中的代码, 都无须联系我们申请授权。例如,你自己写了一个程序,使用了本 书中的几段代码,这种情况是无须申请授权的。销售或分发 O'Reilly 图书配套示例文件需要申请授权。回答问题时引用本书的内容并摘 录代码片段无须申请授权。把本书中的示例代码大量用于你的产品 文档时需要申请授权。 我们希望但不强制要求你注明出处。当注明出处时,通常应 当包含书名、作者、出版社和 ISBN。比如:“Getting Started With Raspberry Pi by Matt Richardson and Shawn Wallace (O’Reilly). Copyright 2013, 978-1-4493-4421-4.” 如果你不确定对示例代码的使用是否在我们允许的范围内,请 与 permissions@oreilly.com 联系。 Safari ® 在线图书 Safari 在线图书是一个数字图书馆,它允许你在超过 7500 种技术创新图书和视频中快速检索你所需要的信息。 通过订购我们的服务,你可以从我们的在线图书馆中阅读各种 图书、观看各种视频,用手机或其他移动设备来阅读图书,预览即 将出版的新书、获取开发指导手册和向作者反馈意见,获取示例代 码,管理收藏夹,下载章节内容,收藏关键内容,记录笔记,打印 图书,享用我们各种有助于提高效率的服务。 O'Reilly Media 已经把本书英文版上传到 Safari 在线图书服务 中,可以免费在http://my.safaribooksonline.com上注册账号,访问 O'Reilly 和其他出版社的数字图书及相关资源。 xii
  • 16.前 言 Preface 如何联系我们 请把关于本书的建议和问题写信到以下地址: 美国: O’Reilly Media, Inc 1005 Gravenstein Highway North Sebastopol, CA 95472 中国: 北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035) 奥莱技术咨询(北京)有限公司 MAKE 致力于团结和激励那些在自家院子、地下室或车库中 创造出奇妙事物的人们。MAKE 鼓励你使用各种技术进行创新。 MAKE 的社区和文化正在不断地成长,我们有信心让自己变得更强、 让我们的环境和教育变得更好、让我们的世界变得更美好。这不仅 仅是一个社区,更是一个全球化的运动——属于创客的运动。 了解有关 MAKE 的更多信息,请访问: MAKE 杂志 :http://makezine.com/magazine/'>http://makezine.com/magazine/