《 Python树莓派编程》——1.2 探索树莓派

简介: 本节书摘来自华章出版社《Python树莓派编程》一书中的第1章,第1.2节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

本节书摘来自华章出版社《Python树莓派编程》一书中的第1章,第1.2节,作者[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。


1.2 探索树莓派

那树莓派上究竟有什么呢?有什么能适合这个如此之小的设备呢?

目前为止,一共有两款树莓派:A版和B版(B版详情见图1-2)。两个版本之间的差距非常小,B版仅比A版多了一点功能,当然价格也要稍微贵一些。A版内存为256MB,而B版内存为512MB;A版有一个USB接口,而B版有两个。A版不具备以太网口,而B版有一个。你可以根据自己的需求订购任何一款,A版为25美元,而B版售价35美元。由于二者在价格上差距不是很大,因此我建议购买B版。因为有一个或两个USB端口之间的差别是非常大的,而且以太网线的接入会使得诸如更新设备或者连接至小型ad-hoc网络的操作变得十分简单。

671dc7f1b45da62457c39d4d34ffe7f9b323a87c

 

(image树莓派(自此开始,我们假设你买的是树莓派B版)的尺寸为85.6mm×56mm×21mm(很明显,这不是在美国制造的),其中包含着一些大小不同的端口和SD卡接口。参考图1-2,并将其按照逆时针顺序旋转,在接下来的章节中,我会对一些部件进行更详细的介绍。

1.2.1 SD卡

从图1-2中可以看到,在树莓派这个小板子上搭载了很多东西。树莓派中最节省空间的特性就是它没有像台式机中硬盘一样的硬件设备,取而代之的是SD卡,它的作用类似于固态硬盘。你可以根据不同场合更改SD卡的大小来改变存储容量。至少需要2GB的存储空间才能正常启动系统,如果你想安装其他软件,则至少需要4GB的存储空间。经测试,树莓派最高可支持32GB的存储卡,所以一旦你需要十分大的存储容量时,请注意及时备份。

1.2.2 电源a98b1f8d6f77f9d6a6dff9c83960bdcccfc54137

树莓派的电源采用5V micro-USB输入,同一般手机或平板的电源一致。实际上,一般手机的充电器均可为树莓派供电(见图1-3)。

提醒一句,树莓派没有板载的电源稳压器!如果你习惯了使用Arduino,你就会知道即便电源输出9V电压,也是安全的,因为Arduino有板载的电源稳压器。但如果你给树莓派提供9V的电压,树莓派很可能自此以后就无法使用了。因此,供电电压不要超过5V—如果你不确定你的适配器的电压输出值,用万用表测量一下。而且,每一个销售树莓派的网站同样也会有合适的适配器供你选择。至于我?我使用的是之前黑莓Torch手机的适配器(是的,我用的黑莓手机,别嘲笑我)。

如果你正考虑一个问题,或许我会这样回答:是的,你可以用电池为树莓派供电,但当电池的输出电压低于5V时,树莓派可能无法以最佳的性能工作。也许最简单的方法是用一枚9V电池,或用一个电压调节器连接四枚AA电池进行供电,或使用类似于遥控车中的电池组也是可以的。我将在移动树莓派章节中介绍关于电源的内容。

1.2.3 HDMI接口

树莓派配备了HDMI(High Definition Multimedia Interface,高清多媒体接口)输出接口,很多人评价说这是树莓派最有特色的地方,因为这使得树莓派拥有处理10亿像素/秒的能力,能够输出1080P高清图像。通过对芯片内OpenGL和OpenVG库的调用,树莓派的GPU可以处理蓝光级别的视频信息。

1.2.4 以太网口和USB接口

以太网和USB接口的功能(B版树莓派)是通过板子上的LAN9512芯片实现的。根据9512的数据手册显示,这款芯片不仅为高速USB 2.0集线器,而且是一款支持10/100兆带宽的以太网控制器。尽管这款芯片仅有8mm宽,但它支持480 Mbps USB 2.0的传输速度,并且完全集成了10BASE-T及100-BASETX的以太网支持。我知道这种说法略有些专业,其实是指可插入台式机的设备同样可插入树莓派,从路由器到网络摄像头,从USB集线器到硬盘(Hard Disk Drive,HDD)。

1.2.5 音频和RCA视频插孔

树莓派同样集成了音频和RCA视频插孔。虽然树莓派支持通过HDMI进行音频输出,但你也许会将音频信息通过耳机输出,因此它配备了3.5mm的耳机插孔。如果你需要用到麦克风,那么大多数兼容Linux系统的USB麦克风都可在树莓派上正常工作。至于视频方面,尽管树莓派不支持VGA插孔输出,但RCA视频插孔可将视频信息传送至任意支持RCA插孔的设备—如果你有类似于MyVu一样的视频设备的话,会很有帮助的。

1.2.6 GPIO引脚

树莓派中最容易被忽视的部分也许就是GPIO(General Purpose Input Output,通用输入输出端口)引脚了。这些引脚允许你对树莓派进行一定的物理扩展,从LED灯、舵机,再到电机控制器,或者类似于Gertboard的扩展板,等等,Gertboard扩展板将在第13章详细介绍。与一般的台式机或笔记本电脑相比,无论是添加USB驱动程序,或是进行串口通信(也许不会用到),抑或是进行一些低级别的编程处理等,都需要比较规范的操作。为方便编程,树莓派预装了一些基本库,你可以通过Python、C或C++方便地控制GPIO。如果不喜欢预装的官方版本,你还可以选择一些附加的库。这意味着你可以同时连接多达8个舵机—这样足以控制一个四足机器人。

1.2.7 片上系统

开发板中最重要的一个部分就是位于正中央的SoC(System on Chip),称为系统芯片。树莓派采用的是博通公司的PCM2835处理器,这是一款采用ARM11内核,主频为700MHz的处理器。GPU部分采用的是Videocore4的GPU。树莓派的CPU可超频至800MHz。实际上,在最新的SD卡预装的系统中,在raspi-config文件内提供了超频选项,最高可将处理器超频至1 GHz,但为防止过热,只会按需提供该功能。根据基金会所提供的数据信息,超频后操作的速度会提高52%~64%。

更多关于超频的信息,请访问http://www.raspberrypi.org/archives/2008,并参考文章“Introducing turbo mode: up to 50 percent more performance for free”。

以上信息表明:树莓派的计算能力与300 MHz的奔腾2代处理器的计算能力相当,但在视频处理方面同第一代Xbox类似。这对一款信用卡大小、售价不足50美元的计算机而言,功能已经十分强大。这也就意味着因其小巧且功能强大,它可从事之前仅笔记本电脑可完成的事情。

1.2.8 树莓派同相似设备之间的对比

你可能会问:是什么使得树莓派与其他如Arduino、Beagleboard,或其他设备的小型计算机相比更具有优势呢?事实上,树莓派的表现不一定有多优秀。每一种设备都具有其自身的特点,并在特定领域发挥着作用,因此很难就其优劣性做出比较。Arduino在创建一些简单的项目方面十分方便,控制简单的机器人也很灵活。在许多场合,如果Arduino可以做的事情而采用树莓派去完成,多少有些大材小用。至于像Beagleboard一类的其他计算机,它们之间最主要的差距是价格。同树莓派价格最为接近的是Beaglebone,但Bone开发商的建议零售价(MSRP)为89美元—是树莓派价格的2倍以上。此外,购买树莓派意味着你正在支持慈善机构的公益活动:“将廉价的计算机送至世界各地的孩子们手中。”

现在,如果你的树莓派没拆封,我想你一定已经迫不及待了,但在开始之前,请继续读完本章的内容。

相关文章
|
8天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
8天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
11天前
|
缓存 监控 Python
解密Python中的装饰器:优雅而强大的编程利器
Python中的装饰器是一种强大而又优雅的编程工具,它能够在不改变原有代码结构的情况下,为函数或类添加新的功能和行为。本文将深入解析Python装饰器的原理、用法和实际应用,帮助读者更好地理解和利用这一技术,提升代码的可维护性和可扩展性。
|
28天前
|
编译器 测试技术 C++
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
157 0
|
1天前
|
API Python
Python模块化编程:面试题深度解析
【4月更文挑战第14天】了解Python模块化编程对于构建大型项目至关重要,它涉及代码组织、复用和维护。本文深入探讨了模块、包、导入机制、命名空间和作用域等基础概念,并列举了面试中常见的模块导入混乱、不适当星号导入等问题,强调了避免循环依赖、合理使用`__init__.py`以及理解模块作用域的重要性。掌握这些知识将有助于在面试中自信应对模块化编程的相关挑战。
14 0
|
2天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
22 0
|
22天前
|
程序员 C语言 Python
Python列表推导式:简洁与高效的编程利器
在Python编程中,列表推导式(List Comprehension)是一种强大且优雅的工具,它允许我们以简洁的方式创建新的列表。列表推导式在Python程序员中广受欢迎,因为它能够将复杂的循环和条件语句简化为一行代码,提高代码的可读性和执行效率。
|
28天前
|
Java 编译器 Shell
【Python 基础教程 04】超详细Python编程教程:初学者入门至全面了解Python 解析器( CPython、IPython、Jython和PyPy)
【Python 基础教程 04】超详细Python编程教程:初学者入门至全面了解Python 解析器( CPython、IPython、Jython和PyPy)
43 0
|
28天前
|
缓存 分布式计算 自然语言处理
Python语言的函数编程模块
Python语言的函数编程模块
|
30天前
|
存储 JavaScript 编译器
这款国产中文编程火了!通过文言文编译生成Python、JS、Ruby代码!
这款国产中文编程火了!通过文言文编译生成Python、JS、Ruby代码!

热门文章

最新文章