4674浏览
查看: 4674|回复: 1

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

[复制链接]
ESP32可以使用IIS DAC芯片和内置DAC引脚播放音乐,而这些功能在micropython中还不知道怎么用,应该官方还没有放出来吧。如果官方一直不放出来,我们打算移植过去:)
难道就不能播放音乐了吗?想到最原始的PWM吧,来段超级玛丽试试
原料:FireBeetle-ESP32 一块
          喇叭模块               一块
          uPyCraft              V0.20版本


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

speaker.png

硬件连接图


软件源码
[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]


运行这个代码
mario.png


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

bobo  NPC

发表于 2017-7-4 17:46:47

顶!

抽空试试
如何从一个乐曲转换成需要的数据?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail