本节的标题很大,但内容仅限于演示一个在树莓派上应用 Python 语言进行开发的示例,如果读者对本节标题相关的内容有兴趣,推荐查阅有关专门资料。
树莓派(Raspberry Pi)是一款基于 Linux 的单片机(single-chip microcomputer)——中央处理器(CPU)、存储器、定时计数器、各种输入输出接口等集成在一块集成电路芯片上的微型计算机。自2012年发布第一代产品以来,颇受广大学生和开发者喜欢,因为它不仅集中了常用的单片机功能,最重要的是价格便宜。撰写本节时,从树莓派的官方网站(https://www.raspberrypi.org/)可知,目前最新型号是 Raspberry Pi 4 ,如图12-7-1所示。
图12-7-1 树莓派 4
表12-7-1汇总了自发布到撰写本节时所有的树莓派型号,供读者选用有关硬件设备时参考。
表12-7-1 树莓派型号概况
型号 | Model | 尺寸(mm) | 以太网 | Wi-Fi | GPIO | 发布时间 |
---|---|---|---|---|---|---|
Raspberry Pi 1 | B | 85.6×56.5 | 是 | 否 | 26-pin | 2012* |
A | 否 | 2013* | ||||
B+ | 是 | 40-pin | 2014 | |||
A+ | 65×56.5 | 否 | 2014 | |||
Raspberry Pi 2 | B | 85.6×56.5 | 是 | 2015 | ||
Raspberry Pi Zero | Zero | 65×30 | 否 | 2015 | ||
W/WH | 是 | 2017 | ||||
Raspberry Pi 3 | B | 85.6×56.5 | 是 | 是 | 2016 | |
A+ | 65×56.5 | 否 | 2018 | |||
B+ | 85.6×56.5 | 是 | 2018 | |||
Raspberry Pi 4 | B(1G) | 85.6×56.5 | 是 | 2019* | ||
B(2G) | 2019 | |||||
B(4G) | ||||||
B(8G) | 2020 |
注:发布时间后标有 * 符号,表示已经停产。
可能有读者会问,树莓派是否能够替代自己用的计算机?这不是用“能”或“不能”可以回答的,因为每个人用计算机做的事情不一样,对其软硬件的需求也不同。表12-7-2列出了 Raspberry Pi 3 B+ 和 Raspberry Pi 4 的硬件规格,可供参考。
表12-7-2 两款不同型号树莓派部分硬件规格
项目 | 3B+ | 4B |
---|---|---|
SoC(单片系统) | 博通 BCM2837 | 博通 BCM2711 |
CPU | ARM Cortex-A53 64位 1.4GHz(4核) | ARM Cortex-A72 64位 1.5GHz(4核) |
内存 | 1 GB(LPDDR2) | 2/4/8 GB(LPDDR4) |
USB 2.0 接口数 | 4 | 2 |
USB 3.0 接口数 | - | 2 |
视频输出 | 全尺寸 HDMI | Micro-HDMI(2个) |
音频输出 | 3.5mm 插孔 | 3.5mm 插孔 |
网络 | 10/100Mbps 以太网接口,支持无线网和蓝牙 | 100/1000Mbps 以太网接口,支持无线网和蓝牙 |
GPIO 引脚数 | 40 | 40 |
显然树莓派的硬件规格是低于目前主流计算机的,但只是要运用恰当,它也能“干活”。
以图12-7-2所示的树莓派 3B+ 为例(是本小节演示用的设备),将其与显示器连接,并接通电源,即可启动(关于树莓派的系统设置,可以参考有关专门资料,此处不作为重点介绍)。
图12-7-2 树莓派 3B+ 俯视图
图12-7-3 为启动之后进入的桌面,图12-7-4显示用树莓派登录网站的效果。
图12-7-3 树莓派启动后的桌面
图12-7-4 在树莓派上打开浏览器并访问网站
树莓派上默认安装了 Raspberry Pi OS ——基于 Linux 的操作系统。如果读者对 Ubuntu 、Debian 等 Linux 发行版有所了解,操作树莓派则非常简单。因为树莓派当初就是为学习者而设计开发的,鼠标移动到图12-7-3中所示菜单中的“编程”,会看到操作系统中已经默认安装了常用的编程工具,基本可以满足从小到大学各级各类学生学习编程的需要(如图12-7-5所示)。
图12-7-5 默认安装的软件
用鼠标点击图12-7-5中所示的“Python 3 (IDLE)”,就进入了与第1章1.7节中的图1-7-16同样的界面,只是树莓派中默认安装的 Python 版本可能不如本书中或者读者所使用的的版本高。若读者有兴趣提升树莓派中的 Python 版本,可以参考本书第1章。
树莓派上也支持本书之前演示中所用的终端,如图12-7-5所示,鼠标点击终端按钮(图12-7-5所示的顶部右边第一个按钮),即可打开终端界面。如果在此界面直接输入 python
指令,也会进入 Python 交互模式,但是 Python 2 的交互模式,通常在 Linux 系统发行版中,会默认安装 Python 的两个版本(只有在最新的发行版系统中才逐渐移除了 Python 2)。若要进入 Python 3 的交互模施工,需要输入 python3
指令。
总而言之,树莓派是一个“开机即用”的计算机,如果在它上面编写 Python 程序,与本书所讲过的方法完全相同。
如果读者已经拥有了一块树莓派,就可以通过本小节的极简案例初步体验以树莓派为平台,设计一个简单的灯光信号装置。所用的材料包括(如图12-7-6所示,不含显示器):
图12-7-6 实验器材
按照12.7.1节的方式,打开树莓派之后,在终端,输入如下指令:
pi@raspberrypi:~ $ pinout
输出图12-7-7所示的结果,显示了树莓派各个引脚的含义(图12-7-6所示的树莓派右侧像针一样排列的,叫做引脚,共40个)。
图12-7-7 输出树莓派引脚说明
为了更清晰地与真实设备对照,也可以使用图12-7-8所示的图片(图片来源:https://www.bigmessowires.com/2018/05/26/raspberry-pi-gpio-programming-in-c/)。
图12-7-8 引脚对照
从上述图示或者输出结果可知,树莓派共有40个引脚,其中标记有 GPIO(General Purpose Input/Output)的引脚用于读取或输出高低电平,后面演示用程序控制发光二极管的闪烁,就会用到此类引脚;标有 GND(Ground)的引脚用于接地。这两类引脚在后续会用到,其他没有用到的此处不赘述,读者有意了解,请查阅树莓派的专门资料。
接下来连接电路。本示例中的电路非常简单,只需要用杜邦线将发光二极管、电阻串联即可(如图12-7-9所示)。但是要注意发光二极管的两腿的长度不同,长腿要与电源的正极相连,短腿与电源的负极相连(如图12-7-10所示)。在图12-7-9的电路中,电阻所在一侧为发光二极管的长腿一侧。
图12-7-9 串联电路
图12-7-10 发光二极管
为了安全,暂且断开树莓派的电源。然后将与发光二极管长腿相连的杜邦线插到树莓派的16号 GPIO 引脚上,将与发光二极管短腿相连的杜邦线插到14号 GND 引脚上,最终效果如图12-7-11所示。
图12-7-11 连接效果
启动树莓派,打开菜单中的 Python 3(IDLE)(如图12-7-5所示),进入到了 Python 交互模式(如图12-7-12所示),点击菜单栏中的 “File-New File”,在打开的文本编辑界面中输入如下代码。
图12-7-12 打开树莓派上的 Python 编辑器
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(16, GPIO.OUT)
GPIO.output(16, GPIO.HIGH) # 16 号引脚输出一个高电平,灯亮
time.sleep(2)
GPIO.output(16, GPIO.LOW) # 16号引脚输出一个低电平,灯灭
time.sleep(2)
GPIO.output(16, GPIO.HIGH) # 等再亮
time.sleep(2)
GPIO.cleanup() # 结束
将上述程序保存为 led.py
文件,并在终端执行它,就能观察到 LED 的亮、灭交替。
以上是非常简单的案例,读者若有兴趣,可以参阅专门资料,以树莓派为平台,开发更复杂的引用。
★自学建议 对于学生和业余爱好者而言,树莓派是一个性价比很高的开发平台,通过它能够控制很多电子设备,将“软件”和“硬件”结合起来。诚然,这还需要读者具备相关的电子学知识。”