uPyCraft-micropython教程之PWM播放超级玛丽

2017-07-041.2万
AI 快速预览详细 收起
本教程介绍了如何使用FireBeetle-ESP32和喇叭模块通过PWM技术播放超级玛丽音乐。首先,将FireBeetle-ESP32的Pin25引脚连接到喇叭模块的一个引脚,另一个引脚连接到GND。然后,运行提供的代码,即可听到熟悉的超级玛丽音乐。这个项目适合初学者和对音乐编程感兴趣的用户。
ESP32可以使用IIS DAC芯片和内置DAC引脚播放音乐,而这些功能在micropython中还不知道怎么用,应该官方还没有放出来吧。如果官方一直不放出来,我们打算移植过去:)
难道就不能播放音乐了吗?想到最原始的PWM吧,来段超级玛丽试试
原料:FireBeetle-ESP32 一块
          喇叭模块               一块
          uPyCraft              V0.20版本


我用的这个喇叭没有极性,将一个引脚接到Pin25 一个引脚接到GND即可

uPyCraft-micropython教程之PWM播放超级玛丽图1

硬件连接图


软件源码
[mw_shl_code=python,true]from machine import Pin,PWM
import math
import time

melody = [
330, 330, 330, 262, 330, 392, 196, 262, 196, 165, 220, 247, 233, 220, 196, 330, 392,
440, 349, 392, 330, 262, 294, 247, 262, 196, 165, 220, 247, 233, 220, 196, 330, 392,
440, 349, 392, 330, 262, 294, 247, 392, 370, 330, 311, 330, 208, 220, 262, 220, 262,
294, 392, 370, 330, 311, 330, 523, 523, 523, 392, 370, 330, 311, 330, 208, 220, 262,
220, 262, 294, 311, 294, 262, 262, 262, 262, 262, 294, 330, 262, 220, 196, 262, 262,
262, 262, 294, 330, 262, 262, 262, 262, 294, 330, 262, 220, 196]

noteDurations = [
8,4,4,8,4,2,2,
3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3,
3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2,
8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2,
8,8,8,4,4,8,8,4,8,8,3,3,3,1,
8,4,4,8,4,8,4,8,2,8,4,4,8,4,1,
8,4,4,8,4,8,4,8,2
]

music=PWM(Pin(25))
music.duty(512)
for i in range(len(melody)):
  noteDuration = 800/noteDurations
  music.freq(melody*2)
  time.sleep_ms(int(noteDuration * 1.30))
music.deinit()
[/mw_shl_code]


运行这个代码
uPyCraft-micropython教程之PWM播放超级玛丽图2


熟悉的超级玛丽音乐出来啦

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
BoBo
BoBo
顶!
抽空试试
如何从一个乐曲转换成需要的数据?
- 没有更多了 -