自从最初的树莓派A/B型单片机计算机发布以来,树莓派基金会陆续推出了多款针对不同应用场景和具体用例所研发的单片机微型计算机,比如Raspberry Pi Zero,就是常规树莓派系列的“缩小版”,为了达到更小的体积,而移除了多余的USB口及有线网口,最终效果是可以做到接近绿箭口香糖的体积,功耗更是低至0.5W,仅为传统版本的1/6。图1-3所示为树莓派Zero跟一枚25美分硬币的大小比较。
图1-3 小巧玲珑的树莓派Zero
虽然其功耗和性能成正比,但是树莓派的各种系列都有一个共同的特点,就是其兼容性特别好,在某一款树莓派上编写的软件,拿到其他版本上可以照常运行,因为所有树莓派使用同一款系统镜像,哪怕是2012年推出的最古老的树莓派,依然可以运行2018年发布的最新树莓派官方操作系统镜像。虽然速度可能会非常慢,但是我们使用单片机计算机时,速度并不是首要考量的,便携、低功耗、快速批量部署才是我们的首选考虑,不是吗?
接下来,我们观察一下树莓派单片机计算机。跟我们平时司空见惯的计算机将电路板包裹得严严实实不同,树莓派为了实现低成本,将计算机原本的样子毫无遮掩地暴露在工程师面前,甚至连个壳子都没有,可见为了成本极尽所能。树莓派板子上密密麻麻地分布着各种元器件和接口,由于其裸露在外的特性,肉眼即可分辨出哪些是CPU、内存、GPIO针脚,以及什么接口要接什么样的设备。当然,我们可以肯定的一点是,必须接上一些外围设备,才能点亮这块单片机。至少也得有TF卡、键盘、鼠标和显示器吧。
我们开始上手把玩树莓派的时候,尽量保证树莓派为如图1-4所示的方向,这样后续学习的过程中,做GPIO针脚拔插部分的实验时,会易于分辨方向。接下来的介绍就是以这个视角进行的。
和传统计算机的组成方式一样,树莓派也是由各种各样的零部件组成的。首先我们来看树莓派的“大脑”——博通Broadcom BCM2837B0型号SoC(system-on-chip),它位于树莓派板子的“心脏”位置,盖着金属片的就是,如果把这块金属盖板拿掉,就可以看到内部的芯片,该SoC内部已经包含中央处理器(CPU)和图形处理芯片(GPU)。
计算机三大部件——CPU、内存和硬盘,内存是系统运行的载体。内存在哪里呢?在树莓派的反面,有且仅有一块小的黑色塑料方块,那里就是树莓派的随机存取器(RAM),也就是我们常说的运行时内存,系统和软件运行在内存中,只有需要保存的文件和资料(系统和软件本身也是文件)才会存储在硬盘中,树莓派没有内置硬盘,树莓派的硬盘就是我们刷写镜像时的TF卡。
图1-4 树莓派正面图和GPIO针脚图
在树莓派板子的右上方,有一块由印着树莓派LOGO的金属板覆盖的元器件,那里是树莓派的无线传输模块。树莓派的无线传输模块由两部分组成,一部分是WIFI模组,可以连接路由器上网,也可以运行在host模式下,自身作为热点组建路由器;另一部分是蓝牙模组,这个大家也很熟悉,例如平时我们用的蓝牙音箱、耳机,甚至可以与蓝牙手机、计算机通信,发射和接收蓝牙文件,也可以作为智能家居的Hub,控制其他带有蓝牙功能的智能家居设备。
在顶部还有一块黑色塑料片一样的芯片,这是树莓派的网络和USB控制器,负责控制网口和USB口的数据。还有一块更小的绿豆一样大的黑色芯片在它旁边,那是电源管理芯片(PMIC),负责稳定MicroUSB输送进来的电压和电流。讲这些芯片并不是说我们要全部掌握这些芯片的内部原理,了解一下即可,使用树莓派并不需要理解硬件的工作方式。
跟我们正常遇到的台式机一样,树莓派也有多个扩展接口,如图1-5所示。我们先来看平时用到最多的USB接口。USB接口全称为通用串行总线(Universal Serial Bus),树莓派一口气配了4个,相当豪爽,一般台式机主板上也就配4个,我们把U盘、键盘、鼠标、摄像头全部接上都够用了。有些可惜的是,这4个USB接口都是2.0的,不过说实话,我们使用树莓派的目的也不是为了它超高速的IO。
图1-5 最新的树莓派3B+正面一览图
跟USB口并列的是以太网网口,可以用这个端口来连接家庭路由器、局域网等有线网络,配套接口为RJ45水晶头网线端口。这个网口配有数据传输LED灯,在进行IO和数据吞吐的时候,LED灯保持闪烁,跟台式机主板相同。而且该板载网卡的规格已经支持最高千兆,为10/100/1000MB自适应有线网卡。
在网卡上方的是3.5毫米AV音视频接口,这个接口首先可以用来连接耳机,因为它本身就是一个耳机孔,当然如果你连接外放的话,音效其实也是很不错的,值得推荐。其次,这个接口里还集成了视频输出功能,支持将视频输出到老式的电视机上,还记得小时候家里的DVD都是这种AV线吗?树莓派也支持这个功能(见图1-6)。
图1-6 淘宝上销售的3.5毫米AV线
在3.5毫米AV音视频接口上方的条状的带盖子的黑色接口是树莓派的摄像头接口(Camera Serial Interface,CSI),可以连接一些专为树莓派设计的摄像头,摄像头在当今社会被广泛应用到社区、学校、街道、商店等各个角落,随着学习的深入,接下来我们会学习摄像头、图像,甚至视频的更多知识。
在摄像头接口上方则是我们用的比较多的HDMI(High-Definition MultiMedia Interface),全称为高清晰度多媒体接口。这个接口现在已经普及得非常好了,一般机顶盒、游戏机、电视机、显示器等已经普及了这个接口。从名字就看得出来,高清晰度意味着高质量,多媒体意味音频视频都支持。我们在日常使用树莓派的过程中,也是使用的HDMI接口,可以连接到电视机、显示器或者投影仪等任何支持HDMI接口的设备。
再往上是Micro-USB电源接口,树莓派相比其他开源硬件的一个优势是通常使用已经完美普及的接口,比如采用和手机相同的Micro-USB接口,肯定比采用路由器的那种圆孔电源接口要好很多,很容易找到一根USB转Micro-USB的电源线,然后连接起来,插到计算机上就可以开机了。一般情况下,连接5V 2.5A的标准USB输出即可满足供电,但是外接USB设备过多的情况下,可能要适当增加电压。
最后,在最上方有一块很像摄像头接口的条状带盖子的接口,其实这并不是摄像头接口,这是树莓派的显示接口(Display Serial Interface),用来连接树莓派触摸屏显示器。
在树莓派的右上方,可以看到由40个引脚排成两排组成的GPIO(General Purpose Input/Output,通用输入输出)接口,该接口就是树莓派从软件到硬件转化过程中的关键组件,树莓派通过控制该接口的电压/电平来控制LED、开关、舵机、传感器、手柄等硬件设备。后面我们会详细学习有关该接口的知识。在GPIO接口的下方,有一个由4个引脚组成的POE接口,该接口用来从以太网设备中获得供电,当然使用该功能需要一个外接设备模块,以及相应的网络设备的支持。
最后我们把板子翻过来,可以看到在最上方有一个TF卡的卡槽,这里就是树莓派的“硬盘”,树莓派文件系统、软件、资料、系统分区等都存放在TF卡中,插在这个卡槽内。我们刷写好镜像之后,将TF卡插到这个卡槽内,就可以引导和启动系统。当然,在最新的树莓派3B+上,插在USB口的U盘也是可以引导系统的。不过个人觉得TF卡不占空间,会美观很多。
前面学习到,树莓派是无法独立工作的,这就好比买回一个台式机主机,还需要配显示器、键鼠、音箱一样的道理。树莓派至少需要TF卡(或U盘)、5V/2.5A的电源、显示器、键鼠才能开始正常的工作,至于音箱、局域网等在需要时连接也没有问题。
上面这些外设可以用任意一家品牌的,只要质量信得过即可,或者挑身边正在用的就行。有一些外设是树莓派官方出的,专门为树莓派配套生产的,可以供用户选购,比如官方的树莓派外壳,用于保护树莓派主板及元器件免受来自外界的伤害;树莓派的官方摄像头,可以直接插在摄像头接口上,免驱直拍;树莓派触摸屏,可以插在触摸屏接口上,提供视频播放和触摸控制的功能;传感器扩展板,提供了加速计、气压传感器、温度传感器、湿度传感器等诸多功能,这些模块都可以在树莓派官方商城(见图1-7)获取详细信息,然后在淘宝上采购。
图1-7 树莓派官方商城
除了树莓派官方为树莓派开发的外设之外,遍布全球的树莓派爱好者也为树莓派开发了形形色色的外设,从笔记本外壳、游戏机外壳到第三方声卡、显示器、网卡以及各种传感器和扩展板,数不胜数。在淘宝上搜索“树莓派扩展”,可以得到2784个结果,可以说想要把这些扩展外设全都玩一遍是不可能的,所以我们还是关注想要使用树莓派来做什么,达成什么样的目的,这样才能做到有的放矢、收放自如。