前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源图书《Python完全自学教程》12.7树莓派开发

开源图书《Python完全自学教程》12.7树莓派开发

作者头像
老齐
发布2022-12-09 20:28:35
9990
发布2022-12-09 20:28:35
举报
文章被收录于专栏:老齐教室老齐教室

12.7 树莓派开发

本节的标题很大,但内容仅限于演示一个在树莓派上应用 Python 语言进行开发的示例,如果读者对本节标题相关的内容有兴趣,推荐查阅有关专门资料。

12.7.1 树莓派概要

树莓派(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.2 极简案例

如果读者已经拥有了一块树莓派,就可以通过本小节的极简案例初步体验以树莓派为平台,设计一个简单的灯光信号装置。所用的材料包括(如图12-7-6所示,不含显示器):

  • 一台树莓派,一台显示器
  • 一个发光二极管( light-emitting diode ,缩写为 LED )
  • 一个限流电阻
  • 三根杜邦线

图12-7-6 实验器材

按照12.7.1节的方式,打开树莓派之后,在终端,输入如下指令:

代码语言:javascript
复制
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 编辑器

代码语言:javascript
复制
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 的亮、灭交替。

以上是非常简单的案例,读者若有兴趣,可以参阅专门资料,以树莓派为平台,开发更复杂的引用。

自学建议 对于学生和业余爱好者而言,树莓派是一个性价比很高的开发平台,通过它能够控制很多电子设备,将“软件”和“硬件”结合起来。诚然,这还需要读者具备相关的电子学知识。”

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老齐教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 12.7 树莓派开发
    • 12.7.1 树莓派概要
      • 12.7.2 极简案例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档