设备
除了 PICO 外,还需要Adafruit Mono 2.5W D 类音频放大器 - PAM8302和扬声器。
与 CircuitPython 兼容的 MP3 文件
需要合适的比特率和采样率的MP3文件。目前需要小于64kbit/s 的单声道和立体声文件,采样率从8kHz到24kHz。RP2040 具有 10 位的 PWM 输出,因此使用高比特率没有多大意义。
请注意,执行诸如更新显示器之类的操作或进行诸如读取和写入文件之类的 Flash 操作可能会导致播放过程中出现失真的声音或噪音。
可以使用 Audacity 软件转换 MP3 文件。
播放 MP3 文件
将您的code.py更新为以下内容。单击下面的“下载项目”以下载必要的库和zip 文件中的code.py文件。解压缩 zip 文件的内容,打开与您的 CircuitPython 版本匹配的文件夹,并将整个lib 文件夹和code.py文件复制到您的CIRCUITPY驱动器。
保存后,MP3 将开始播放!它只播放一次。连接到串行控制台,然后重新加载以再次播放。
首先,导入必要的模块。所有这些模块都内置在 CircuitPython 中,因此本示例不需要您将任何外部库复制到您的电路板上。然后,您设置audio对象并为其提供扬声器引脚。
接下来,您创建decoder对象并告诉它您要播放的 MP3 文件的名称,在本例中为"slow.mp3".
然后,您使用该audio对象播放解码的 MP3 文件。while音频正在播放pass、 或什么都不做。(您可以在此处添加其他代码,例如闪烁 LED 或任何您喜欢的代码。)
最后,您打印Done playing!到串行控制台,让您知道 MP3 播放已结束。
代码: 全选
"""
CircuitPython single MP3 playback example for Raspberry Pi Pico.
Plays a single MP3 once.
"""
import board
import audiomp3
import audiopwmio
audio = audiopwmio.PWMAudioOut(board.GP0)
decoder = audiomp3.MP3Decoder(open("slow.mp3", "rb"))
audio.play(decoder)
while audio.playing:
pass
print("Done playing!")