uPyCraft-micropython教程之PWM播放超级玛丽
ESP32可以使用IIS DAC芯片和内置DAC引脚播放音乐,而这些功能在micropython中还不知道怎么用,应该官方还没有放出来吧。如果官方一直不放出来,我们打算移植过去:)难道就不能播放音乐了吗?想到最原始的PWM吧,来段超级玛丽试试
原料:FireBeetle-ESP32 一块
喇叭模块 一块
uPyCraft V0.20版本
我用的这个喇叭没有极性,将一个引脚接到Pin25 一个引脚接到GND即可
硬件连接图
软件源码
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()
运行这个代码
熟悉的超级玛丽音乐出来啦
顶!
抽空试试
如何从一个乐曲转换成需要的数据?
页:
[1]