本书主要介绍MegaPi与树莓派的结合,树莓派用户如何利用Python就能实现对MegaPi上各种电机及电子模块的控制。本书力图拓展学生的视野,知识的广度和深度,从而成为中学生STEM教育课程的一个尝试与探索。本书适合已经有一定开源软硬件知识基础的高中信息技术课程使用,也可以作为各种培训机构教学参考用书。
第 3 章
树莓派基础
3.1 树莓派简介
3.1.1 树莓派的应用场合
树莓派是为学习计算机编程而设计的,其系统基于 Linux。它由注册于英国的慈善组织
Raspberry Pi 基金会开发。它的外形只有信用卡大小,却具有计算机的所有基本功能。别看
其外表“娇小”,内“心”却很强大,视频、音频等功能皆有,可谓“麻雀虽小,五脏俱全”。
只须接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。
与 PC 和笔记本电脑相比,树莓派的处理能力要差很多,不适合应用于对处理能力要
求较高的场合,但相比于 Arduino、STM32 等较为流行的单片机系统,它的处理能力高出
一大截。普通计算机主板是依靠硬盘存储数据的,而树莓派使用 SD 卡作为“硬盘”,也可
以外接 USB 硬盘。
树莓派价格低廉,这意味着其用途更加广泛,将其打造成卓越的多媒体中心也是一个
不错的选择。利用树莓派可以播放视频,甚至可以通过电视机的 USB 接口供电。
树莓派适合的应用场合如下。
(1)作为一个低能耗的 Linux 家用服务器,用于运行硬件性能可以满足的软件,可提
供各种服务(如网络相关、文件相关、视频音频相关)。
(2)连接硬件用来做数据采集、监控、分析、发布等事情。
(3)作为类似小车、飞行器、机器人、智能家居等智能设备的控制中心。
(4)作为一个计算机的轻量级替代物,用于一些简单的场景,或者用来作软件开发启蒙,
适合预算不足以购买计算机的用户(主要是孩子)。这个是设计树莓派的最初目的。
(5)用于青少年的编程学习。
Ypwzw.indd 32 2019.5.13 5:15:45 PM
33
第3章 树莓派基础
(6)用于搭建原型产品。
3.1.2 树莓派 3
本书主要介绍树莓派 3 的应用。
树莓派 3 实物如图 3-1 所示。
图3-1 树莓派
3
实物
树莓派 3 是第三代树莓派,硬件资源如下。
(1)CPU 为 4 核 1.2GHz 博通 BCM2837,64 位处理器,1GB RAM。
(2)板载 BCM43438 无线 Wi-Fi 模块和低功耗蓝牙模块。
(3)40 个扩展 GPIO 口,4 路立体声输出和复合视频端口。
(4)全尺寸 HDMI 接口,Micro SD 卡插槽。
(5)CSI 摄像头接口,可以连接树莓派摄像头。
(6)DSI 显示屏接口,可以连接树莓派专用显示屏。
3.1.3 树莓派 GPIO 与引脚编号
树莓派的 GPIO 引脚是数字引脚,可以将它的输出设为高或低,或者通过它读取输入
的高低电平。如果想读取模拟输入设备的值,还需要使用 ADC(模数转换器)芯片。
树莓派 GPIO 引脚编号的方式有两种 :一种是 GPIO 编号 ;另一种是板上的自然编号。
GPIO编号是Broadcom提供的一种编号规则,它和Broadcom片上系统中的信道编号相对应,
这些编号看起来没有什么规律,也没有什么好的办法记住它们 ;自然编号是根据板子上引
Ypwzw.indd 33 2019.5.13 5:15:45 PM
34
用 Python 玩转树莓派和 MegaPi
脚的位置进行编号,自下而上,从左到右,依次进行编号。表 3-1 列出了树莓派两种引脚
编号的对照表。
表 3-1 树莓派引脚编号的对照表
Python 既可以使用 GPIO 编号,也可以选择使用自然编号。
3.1.4 树莓派操作系统 Raspbian
Raspbian 操作系统是单纯的 ARM 版的 Linux 系统,它基于 Debian,也是图形化的操
作系统。Raspbian 操作系统预安装了丰富的软件,非常适合以教育为目的编程学习,包含
Python、Scratch、Sonic Pi、Java、Mathematica 等软件。
Raspbian 下载地址 :https://www.raspberrypi.org/downloads/raspbian/。
Raspbian 桌面操作系统镜像文件是一个 zip 格式、大小为 4GB 的文件,在一些平台上,
如果解压工具比较老,可能无法解压该文件,此时可以使用官方推荐的工具。
(1)Windows 平台 :7-zip。下载地址为 http://www.7-zip.org/download.html。
(2)Linux 平台 :unzip。ubuntu 安装命令为 sudo apt-get install unzip。
Ypwzw.indd 34 2019.5.13 5:15:46 PM
35
第3章 树莓派基础
3.1.5 制作 SD 卡启动盘
Etcher 是一个图形界面的 SD 卡烧写工具,对于大多数用户来说,这是一个非常好的
选择。Etcher 也支持 zip 文件直接烧写,不需要解压。
Etcher 的下载地址为 https://etcher.io/。
将 SD 卡插入读卡器,打开 Etcher,选择上面下载的 .zip 文件,烧写到 SD 卡里面。单
击 Flash !按钮,开始烧写树莓派操作系统到 SD 卡里面。
3.2 树莓派开发环境
3.2.1 树莓派启动
将制作好的 SD 卡插入树莓派的 SD 卡插槽,插入网线、键盘和鼠标,然后通电。系
统启动后如图 3-2 所示。
图3-2 树莓派操作系统Raspbian启动成功
3.2.2 搭建树莓派开发环境
可以通过 SSH 远程网络连接,在其他计算机或者设备上访问树莓派的命令行,以实现
Ypwzw.indd 35 2019.5.13 5:15:46 PM
36
用 Python 玩转树莓派和 MegaPi
控制树莓派。在这种方式里树莓派作为一个远程设备,我们的计算机作为一个连接客户端。
这种方式只能访问树莓派的命令行终端,要想访问桌面,必须通过 VNC。接下来的章节会
详细讲解。
确保树莓派物理连接正确并且通过网线插入路由器里面,打开一个叫 Terminal 的终端
窗口,并输入如下命令 :
$ ifconfig 或者 $ hostname -I
这样就可以得到树莓派的 IP 地址,例如我的树莓派显示为 192.168.0.102。
3.2.3 使能 SSH
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)制定。
SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网
络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
Raspbian 操作系统自从 2016 年 11 月发行后,默认禁用 SSH 服务器,因此我们需要打
开它。打开方式如下。
单击左上角树莓派图标,启动应用选择菜单,选择 Preferences 菜单命令,在弹出的菜
单栏中选择 Raspberry Pi Configuration,如图 3-3 所示。
图3-3 使能SSH设置
单击启动树莓派设置,选择使能 SSH,如图 3-4 所示。
Ypwzw.indd 36 2019.5.13 5:15:46 PM
第1 章 Python 基础 1
11 Python 简介与安装 1
12 Python 基本语法 6
13 Python 程序结构控制 13
14 Python 函数与类 17
第2 章 MegaPi 基础 26
21 MegaPi 简介 26
22 Python 控制MegaPi 31
第3 章 树莓派基础 32
31 树莓派简介 32
32 树莓派开发环境 35
33 Python 控制树莓派GPIO 41
34 OpenCV 编程 48
35 天气预报小程序 58
第4 章 树莓派与MegaPi 结合 60
41 树莓派与MegaPi 连接与通信 60
42 树莓派与MegaPi 结合实例 64
参考文献 83