用 CircuitPython 在 Raspberry Pi Pico 上播放 MP3

Adafruit CircuitPython相关
MicroPython重要分支
回复
头像
shaoziyang
帖子: 2295
注册时间: 2019年 10月 21日 13:48

用 CircuitPython 在 Raspberry Pi Pico 上播放 MP3

#1

帖子 shaoziyang » 2021年 9月 13日 08:15

Adafruit 的 Kattni Rembor 展示了通过 CircuitPython 在 Raspberry Pi Pico 上播放 MP3 是多么容易。

图片


设备

除了 PICO 外,还需要Adafruit Mono 2.5W D 类音频放大器 - PAM8302和扬声器。

图片

与 CircuitPython 兼容的 MP3 文件

需要合适的比特率和采样率的MP3文件。目前需要小于64kbit/s 的单声道立体声文件,采样率从8kHz24kHz。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!")
参考说明:  

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章