5374| 3
|
[入门教程] 【掌控】mpython-13…handpy,再弹一曲要不要 |
本帖最后由 rzyzzxw 于 2018-11-8 08:20 编辑 -小掌控,你的英文名字叫Handpy么?-今天,你再给我们来一曲吧。 -为了便于小伙伴们快速的写出代码曲子。 -我们用两个数组给你写代码,一个数组放音符,一个数组放频率,这样通过两个数组合作,共同演奏新乐曲。 【特别感谢】 七七老师的源程序,数组是我的弱项,七七老师帮助我在学习的路上有了新收获。 同时感谢掌控团队的技术支持。 感谢谢作如老师,管雪沨老师,周茂华老师,吴俊杰老师的鼓励。 感谢DF创客社区平台的支持。 这个帖子还献给喜欢国内首款面向学生编程开源硬件的小伙伴们。 【视频】 【学习小目标】 1、数组 2、板载蜂鸣器 3、for循环 4、布尔变量 【乐曲小星星】 1、还以小星星为例: 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 要听其它的曲子,自己写代码吧。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed