在我早期整理的第三方树莓派RP2040板列表中,提到过用于树莓派Pico的Cytron Maker Pi Pico底板。通过母头可以暴露所有针脚, 包括用于所有 GPIO 引脚的 LED、6 个 Grove 连接器、3 个用户按钮、1 个 RGB LED、一个压电式蜂鸣器、一个音频插孔、一个 MicroSD 卡和一个ESP-01插座来增加WiFi连接。其测试版售价为5美元,遗憾的是,当时的我不仅没买到测试版底板,而且连树莓派Pico板也没买到。所以,实际上就只有一个免费的底板。
2021年2月,来自马来西亚的Cytron赠送了一个测试板子给我,这让我能够更仔细地查看主板的硬件和代码样本。
现在,我们就一起来评测一下。
Maker Pi Pico拆箱和规格
我收到了Cytron包装的电路板以及树莓派Pico的引脚图,
如下图所示:可以看到后者已经焊接到Maker Pi Pico上。

Maker Pi Pico规格:
- 基于树莓派Pico
- 存储–连接到GP10-15的微SD卡插槽
- 音频
- 1x 压电式蜂鸣器连接到 GP18 控制其打开/关闭
- 1x 3.5mm 立体声插孔连接到 GP18-19
- 无线连接–可选ESP-01无线网络模块的插座(基于ESP8266)
- 扩张
- 所有树莓派Pico的引脚都可以在两个 20 路引脚头上找到,所有 GPIO 引脚上都有 LED 指示灯
- 6个Grove连接器 (I2C、数字、模拟、UART)
- 其他–连接到GP20-22的3个可编程按钮、复位按钮、连接到GP28的1个RGB LED(新像素)
- 电源–通过树莓派Pico上的micro USB端口提供5V电压
- 尺寸 – 94 x 68.6 mm

鉴于所有的接口都有很明显的标记,因此我们能知道每个 I/Os 都连接到哪个端口。另外,连接到板的每个引脚上的 LED 都方便调试。我希望Grove端口也能清楚地标记出来,这样就更方便的知道哪些功能可以用。不过,现在还是必须要查看附带的Pico引脚图才能找出Grove1支持的数字、I2C和UART模式。

由于该板子的目标是STEM教育市场,所以,板子上留有一个白色的区域来写板子拥有者的名称是十分恰当的。比如:彼得在课堂上偷了保罗的东西,就有直接证据了!
另外,板子的底部还有更详细的标记,如果一段时间后这些GPIO LED还是让你感到不适,你可以通过在板上切割一个痕迹来禁用它们(具体请参阅silkscreen上的“擦除GPIO LED”指南)。
第一次启动和MicroPython LED闪烁
让我们先来用micro USB来连接计算机和树莓派Pico。

启动之后,一些指示灯已经亮起了,音乐通过蜂鸣器播放了一小段时间。这是预安装的固件。然后,我按照我们的树莓派Pico的入门指南安装MicroPython。而后不需要断开micro-USB 电缆, 只需按下树莓派Pico的 Bootsel 按钮以及Maker Pi Pico上的 RUN 按钮(又名重置按钮)就可进入启动程序模式了。这意味着每次要烧写 UF2 文件时都不用断开电缆。
我将rp2-pico-20210205-unstable-v1.14-8-g1f800cac3.uf2文件复制到RPI-rp2驱动器上,并加载我的“alternate LED blinking MicroPython sample”,该示例可以与面包板上的红色LED一起使用。但是这次,不需要在面包板上布线,因为GP14已经连接到一个面包板上了。

Maker Pi Pico和CIrcuitPython示例
需要注意的是,只是 LED闪烁是还不够的,因为它还有一些额外的功能,比如:microSD卡、3.5mm音频插孔和蜂鸣器。
Cytron为电路板准备了一些教程,包括一个在 microSD 卡上编写文件的CircuitPython程序。首先,我们需要在电路板上安装CircuitPython,就像在Adafruit网站上解释的那样。这与安装 MicroPython是一样,我们需要进入BootLoader模式,并在此情况下复制raspberry_pi_pico-en_US-6.2.0-beta.2.uf2*中的固件。
其次,我就打开Thonny来运行了Cytron提供的示例,并不得不将解释器更改为CircuitPython(通用型),同时选择端口“Pico-circuitpythoncdc 控制(/dev/ttyACM0)”。

下面是在 SD 卡上创建文本文件,并在CircuitPython 中编写一些文本的源代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from board import * from time import * import busio import sdcardio import storage sleep(1) spi = busio.SPI(GP10, MOSI=GP11, MISO=GP12) cs = GP15 sd = sdcardio.SDCard(spi, cs) vfs = storage.VfsFat(sd) storage.mount(vfs, '/sd') with open("/sd/pico.txt", "w") as file: file.write("1. Hello, world!\r\n") with open("/sd/pico.txt", "a") as file: file.write("2. This is another line!\r\n") with open("/sd/pico.txt", "a") as file: file.write("3. Last but not least!") with open("/sd/pico.txt", "r") as file: print("Printing lines in file:") for line in file: print(line, end='') |
CircuitPython隐藏了执行操作的复杂性,因此它几乎与在 PC 上创建文件编写相同的程序一样简单。

我们其实可以更容易地更改它,不要忘记在新行之间添加回车换行”\r\n”就行。
为使用与程序兼容的文件系统,我不得不在电脑上将microSD卡格式化为FAT32,,所以,第一次尝试以失败告终。
撰写这篇文章时,还没有发布关于音频部分的教程。最初,我想用”pico-playground”示例来演示Raspberry Pi pico VGA,SD卡和音频演示板,但从原理图的设计来看似乎是有所不同的。所以,我最终在Github上获得了MAKER-PI-PICO存储库和更多的CircuitPython和MicroPython示例,包括:开箱即用的Demo Code/MicroPython文件夹中的默认固件等。
由于我是专门研究过音频代码的,所以,在code/CircuitPython/MelodyDoraemon/中我看到了另一个CircuitPython示例,包含两个文件:code.py和pitchs.py。
前者带有播放旋律和控制Neopix RGB LED的代码以及一些用于旋律和节奏的数组,而后者仅包含用于旋律中音调的数组。

虽然,我们不会去看完整的代码,但上面的主循环显示连接到蜂鸣器和音频插孔GP18的PWM输出被用来播放旋律,与RGB LED切换红色和蓝色之间的音乐。一开始,我没有运行它,因为板子上缺少pitches.py,因此只是在运行code.py之前将pitchs.py保存到树莓派Pico上。
树莓派Pi-Pico
使用扬声器和蜂鸣器查看演示视频,视频链接:https://www.youtube.com/watch?v=oZPFLtGAmg4
这就是迷你版本的评测结果。Maker Pi Pico当前虽已断货,但下一批产品即将上市,价格应该为10美元或更低(现在是7.4美元),也包括树莓派Pico,现在你可访问Cyron商店并提交你的认购需求。

文章翻译者:Nicholas,技术支持工程师、瑞科慧联(RAK)高级工程师,深耕嵌入式开发技术、物联网行业多年,拥有丰富的行业经验和新颖独到的眼光!