课程导入

在上一节课程中,你已经初步了解了如何对 Pico 进行编程,并编写了自己的第一个程序。
但我们其实只是在 Pico 上运行了该程序,除此之外并没有用到其他外部的电子硬件设备,在这节课程中,我们就来尝试为 Pico 外接其他的电子硬件—— LED 灯,并编写一个程序来点亮 LED 灯。但在开始编程之前,你还需要学习一些与程序结构相关的知识。

知识锦囊

程序的基本结构

我们使用 MicroPython 所编写的程序,一般都是由三种基本的程序结构组合而成的,要想编写复杂的程序,我们就先得从最基本的程序结构学起。基本的程序结构一共有三种,它们分别是:顺序结构,循环结构和选择结构。

顺序结构

顺序结构是最基础的程序结构,在顺序结构中,程序会从上至下按照顺序依次执行,例如以下程序,当程序执行时,会首先输出 “Hello” ,之后才会输出 “World” 。

  1. print("Hello")
  2. print("World")

执行结果:

  1. Hello
  2. World

仔细观察可以发现, MicroPython 不像其他语言,会需要使用特定的终止符来结束每行语句,在 MicroPython 中我们只需要按下回车换行,即可结束该行语句。

实践操作

接下来,让我们回到项目中实践刚才所学知识。从本节课开始,我们将使用树莓派 Pico 拓展板连接 Pico 与其他 Grove 电子设备,来完成更多有趣的项目。通过观察可以发现,Pico 并没有插接其他拓展板所需要的针脚,要想将 Pico 接入树莓派 Pico 拓展板,你得先为 Pico 焊接可供插接的针脚。

项目一:焊接针脚

首先准备好焊接针脚所需的物品:一个电烙铁,一些焊料,一块清洁海绵,一个支架,两个20针的针脚,一块面包板,当然还有你的 Pico 。
为了方便焊接,我们需要先使用面包板固定两条20针的针脚,以针脚上的黑色塑料块为界,将针脚较长的一端缓缓插入面包板,插入时注意两条针脚需要上下对齐,并且间隔与 Pico 的宽度相同。
3-1.jpg
接着拿起 Pico ,将 Pico 正面朝上,让其 PCB 板上的预留孔位与固定在面包板上的针脚对齐,对齐后,将两条针管缓缓插入 Pico 的预留孔位中,并继续前推,直到针脚上的黑色塑料块与 Pico 靠紧。这时,Pico PCB 板上的预留孔位都会露出少许针脚。
3-2.jpg
终于,轮到电烙铁上场了,将电烙铁放在支架上,打开电烙铁开关加热电烙铁,加热电烙铁需要3-5分钟时间,在加热时不要让电烙铁的金属加热部分接触到任何东西。
在加热过程中,你可以先将清洁海绵浸湿,并将它放到方便使用的位置,以便于之后对电烙铁进行清理。
电烙铁加热完成后,单手握住电烙铁的握柄部分拿起电烙铁,在刚才准备好的清洁海绵上反复擦拭电烙铁尖端,
确保尖端没有附着任何杂质。

注意,电烙铁的金属部分温度非常高,在任何情况下,你都不应该用手触碰电烙铁的金属部分。
完成清洁后,用电烙铁尖端加热离你最近的一个针脚和针脚下的金色焊盘。用另一只手拿起焊料,从与电烙铁相反的方向缓缓推向针脚与焊盘的连接处,加热后的针脚与焊盘会融化焊料,并使其附着在焊盘上。完成一个方向的焊接后,换个方向继续将焊料推入,直到焊盘完全被焊料所覆盖。
3-3.jpg
请注意,在焊接时尽量避免使用过多的焊料,如果焊料溢出到邻近的焊盘,之后在进行使用时 Pico 就会发生短路。
好了,恭喜你完成了第一个针脚的焊接!接着再将剩余的39个针脚按同样的方法进行焊接即可。在焊接时,记得时不时用清洁海绵擦拭你的电烙铁,以保持其尖端干净明亮。
3-4.jpg
完成焊接后,慢慢将 Pico 从面包板中拔出,如果针脚和面包板插接的太过紧密,强行拔出 Pico 很容易造成焊盘脱落,功亏一篑。这时你可以左右摇晃 Pico ,尝试一点一点将 Pico 移出。好了,大功告成!马上开始我们的第一个任务吧!
第3课 第一个项目:点亮 LED 灯 - 图5

项目二:点亮LED灯模块

现在,你已经完成了 Pico 针脚的焊接,这意味着我们终于可以使用树莓派 Pico 拓展板来连接 Grove 模块了,我们先来试着点亮一盏 LED 灯。

硬件连接

在该项目中,我们需要使用的电子硬件有:

  • 树莓派 Pico
  • 树莓派 Pico 拓展板
  • Grove - LED 灯

有了树莓派 Pico 拓展板的帮助,连接电子硬件的工作将变得非常简单,我们只需要先将 Pico 焊接好的针脚插入拓展板中:
page1.png页面_1.png

在插接时,你可以通过观察 Pico 背面的引脚丝印和拓展板上的丝印来确定自己的插接方向是否正确。
接着将 Grove - LED 灯使用 Grove 连接线接入拓展板的 D16 接口即可。
页面_3.png

编写程序

首先使用 USB 数据线连接 Pico 和电脑,接着打开 Thonny ,点击工具栏新建按钮创建一个新的程序。在编程区输入下面这行代码以开始你的程序:

  1. import machine

这行代码调用了一个名为 machine 的 MicroPython 函数库。要理解这行代码具体做了什么,我们需要先了解“库”的概念。

函数库
简单来讲,库是一些由其他资深开发者编写好的,具有相关功能程序的集合。库不是独立程序,他们是向其他程序提供服务的代码。当我们进行项目开发时,我们可以直接从这些库中调用已经编写好的功能模块来构建程序,从而降低开发成本和时间成本。

而在这行代码中,我们即是调用了一个名为 “machine” 的 MicroPython 库,在 machine 库中包含了和特定硬件相关的各种函数,它可以不受限制地直接访问系统的硬件功能(如CPU、定时器、总线等),使我们能更高效的使用 MicroPython 控制其他与 Pico 相连的电子硬件,例如为连接到 Pico 的各种电子硬件设置引脚。

在进行硬件项目的开发时,即使你已经将各类电子硬件连接到了 Pico ,例如我们已经将 LED 灯连接到了拓展板的 D16 接口, Pico 仍然无法知道发生了什么,你必须通过编写程序来定义控制电子硬件的引脚。
而在 machine 库中,有一类叫做 “Pin” 类的函数。

| Pin类
我们可以使用 Pin 类函数来设置电子硬件的引脚。 Pin 类中有设置引脚模式(IN、OUT等)的函数,以及设置数字逻辑的函数,其中常用的函数有:
- 创建引脚
Pin(num,Pin.OUT/IN)
其中num为引脚编号,IN/OUT分别代表输入与输出。

- 写入引脚值
p0.value(0)/p0.value(1)

- 获取引脚值
p0.value()

- 设置一个带有上拉电阻的引脚
p2 = Pin(num, Pin.IN, Pin.PULL_UP) | | —- |

有了 machine 库的帮助,你可以很轻松的在程序的下一行为 LED 灯定义引脚:

  1. LED = machine.Pin(16,machine.Pin.OUT)

在这行程序中,我们创建了一个名为 LED 的对象来帮助我们控制 LED 灯,并在该对象中使用 machine 库中的 Pin 函数来为 LED 灯定义引脚。 Pin 函数一共拥有2个参数,第一个参数 16 代表了你所定义的引脚号,因为在搭建项目硬件时我们将 LED 灯连接到了 D16 接口,所以在这里我们将它设置为 16 。第二个参数 machine.Pin.OUT 告诉 Pico 该引脚被设置为输出引脚而非输入引脚。
好了,现在写入最后一行程序:

  1. LED.value(1)

在该行代码中,我们使用 value 函数来为刚才定义的引脚写入值,使灯亮起。在控制 Pin 类引脚时,我们通常使用数值1代表高电平(打开),使用数值0代表低电平(关闭)。
我们的第一个硬件程序就编写好了,完整的程序代码如下:
image.png

  1. import machine
  2. LED = machine.Pin(16,machine.Pin.OUT)
  3. LED.value(1)

程序完成后,用USB数据线将 Pico 连接至电脑,如下图,在后续的课程中,当我们要运行程序时,都要用数据线将 Pico 连接至电脑。
页面_22.png
点击工具栏的运行按钮image.png,将程序保存到任意位置,你就能看到插接在D16接口的LED灯被点亮了。
如果你想关闭 LED 灯,直接将 value 的值从1修改为0即可。
IMG_9648-1.png

思维拓展

请尝试使用程序将 LED 灯关闭。

  1. import machine
  2. LED = machine.Pin(16,machine.Pin.OUT)
  3. LED.value(0)

image.png