【掌控】mpython-13…handpy,再弹一曲要不要

2018-10-068449
AI 快速预览详细 收起
本文介绍了如何使用掌控板mpython-13…handpy通过两个数组合作演奏乐曲。首先定义了音符数组和频率数组,然后通过for循环和布尔变量控制蜂鸣器,实现乐曲的演奏。适合初学者,特别是对编程感兴趣的儿童。


-小掌控,你的英文名字叫Handpy么?-今天,你再给我们来一曲吧。

-为了便于小伙伴们快速的写出代码曲子。
-我们用两个数组给你写代码,一个数组放音符,一个数组放频率,这样通过两个数组合作,共同演奏新乐曲。

【掌控】mpython-13…handpy,再弹一曲要不要图3

【特别感谢】
           七七老师的源程序,数组是我的弱项,七七老师帮助我在学习的路上有了新收获。
           同时感谢掌控团队的技术支持。
           感谢谢作如老师,管雪沨老师,周茂华老师,吴俊杰老师的鼓励。
           感谢DF创客社区平台的支持。
           这个帖子还献给喜欢国内首款面向学生编程开源硬件的小伙伴们。
【视频】


【学习小目标】
1、数组
2、板载蜂鸣器
3、for循环
4、布尔变量

【乐曲小星星】
1、还以小星星为例:
【掌控】mpython-13…handpy,再弹一曲要不要图1
【掌控】mpython-13…handpy,再弹一曲要不要图2
2、编程,定义两个数组

程序:
[mw_shl_code=python,true]from mpython import *  #导入掌控库
import time   #导入时间库
  
#音符数组
song = [1, 1, 5, 5, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 5, 5, 4, 4, 3, 3, 2, 2, 5, 5,
        4, 4, 3, 3, 2, 2, 1, 1, 5, 5, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, ]
#频率数组
m = [525, 589, 661, 700, 786, 882, 988]
  
#定义蜂鸣器引脚
buzz = PWM(Pin(16), freq=500, duty=0)
  
#节目预告,屏幕显示
display.fill(0)
display.DispChar("下面看我弹小星星", 10, 16)
display.show()
  
sound = False  #定义布尔变量,设为False(假)
i = 0
while True:
    if(touchPad_P.read() < 100):#如果引脚P被触摸,变量设为True(真),下同
        sound = True         
    elif(touchPad_Y.read() < 100):
        sound = True
    elif(touchPad_T.read() < 100):
        sound = True
    elif(touchPad_H.read() < 100):
        sound = True
    elif(touchPad_O.read() < 100):
        sound = True
    elif(touchPad_N.read() < 100):
        sound = True   
    else:                      #否则设为False(假)
        sound = False
    if sound:                  #如果sound为True(真)
        buzz.freq(m[song])  #调用数组频率(嵌套音符数组)
        buzz.duty(512)         #音量512
        time.sleep_ms(500)     #时长500毫秒
        if i == 30:            
            i = 0
        else:
            i = i + 1
        sound = False
        buzz.duty(0)           #音量设为0[/mw_shl_code]

七七老师这一段程序写得很有趣,请认真感悟一下哈。

我也要再好好体会一下。
特别是最后这一段:
if i == 30:            
            i = 0
        else:
            i = i + 1   
        sound = False
        buzz.duty(0)           #音量设为0



要听其它的曲子,自己写代码吧。


创作许可协议

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

评论(2)
rzyzzxw
rzyzzxw
作者
哈哈,这是一个乱弹琴。
hnyzcj
hnyzcj
对朱老师的精神佩服的五体投地
rzyzzxw
rzyzzxw
作者
回复hnyzcj
这个假期,真羡慕朋友圈晒风景的小伙伴。傻傻如我,与社区为伴。
- 没有更多了 -