8651| 1
|
[入门教程] 【掌控】mpython-2…一起爱上掌控 |
mpthon-2…一起爱上掌控 请看小视频。 【学习小目标:】 1、了解掌控的6个触摸引脚,学习触摸引脚使用。 2、了解掌控蜂鸣器的引脚,了解音符和频率的关系。 3、学习用代码编程,用掌控的触摸引脚弹奏一首简单的曲子。 4、学习while循环,if elif 条件分支。 【学习准备:】 1、掌控的引脚定义。 当前使用时还要对照一下掌控板ESP32的引脚定义。 本教程中用到的有掌控正面的6个电容数字触摸引脚,分别是 touchPad_P Pin(27) touchPad_Y Pin(14) touchPad_T Pin(12) touchPad_H Pin(13) touchPad_O Pin(15) touchPad_N Pin(4) 这个单词也表明了掌控为了编程教育而生。 蜂鸣器的引脚buzz PWM(Pin(16)) 这些都定义好了,后面也不需修改。 2、音符和频率的关系 下面例程中用了不标准的频率值,你要准确的音符,请参考上面修改。 其它调值自己查资料吧。 【一起爱上掌控例程代码:】 [mw_shl_code=applescript,true] [mw_shl_code=python,true]from mpython import * # 导入掌控内置传感器库 import time # 导入时间库 buzz = PWM(Pin(16), freq = 500, duty = 0) # 定义蜂鸣器引脚 # 蜂鸣器响一下 buzz.freq(300) # 频率300 buzz.duty(512) # 音量512 time.sleep_ms(100) # 时长100ms buzz.duty(0) # 然后音量设为0 display.fill(0) # 清屏 display.show() # 刷新屏幕 while True: if(touchPad_P.read() < 100): # 如果P被触摸 buzz.freq(300) # 频率300 buzz.duty(512) # 音量512 display.DispChar('一', 0 + 15, 24) # 显示字符 一 ,位置,X,0+15,Y, 24 time.sleep_ms(20) # 延时20毫秒 elif(touchPad_Y.read() < 100): buzz.freq(400) buzz.duty(512) display.DispChar('起', 15 + 15, 24) time.sleep_ms(20) elif(touchPad_T.read() < 100): buzz.freq(500) buzz.duty(512) display.DispChar('爱', 30 + 15, 24) time.sleep_ms(20) elif(touchPad_H.read() < 100): buzz.freq(600) buzz.duty(512) display.DispChar('上', 45 + 15, 24) time.sleep_ms(20) elif(touchPad_O.read() < 100): buzz.freq(700) buzz.duty(512) display.DispChar('掌', 60 + 15, 24) time.sleep_ms(20) elif(touchPad_N.read() < 100): buzz.freq(800) buzz.duty(512) display.DispChar('控', 75 + 15, 24) time.sleep_ms(20) else: display.show() # 刷新屏幕显示 buzz.freq(300) buzz.duty(0)[/mw_shl_code] 代码解读: [mw_shl_code=applescript,true]from mpython import * 导入掌控库,此库为掌控板内置传感器驱动 import time 导入运行时间 buzz = PWM(Pin(16), freq = 500, duty = 0) 初始化蜂鸣器引脚 buzz.freq(300) 开机运行时嘀一下,频率300,音量512,时长100ms buzz.duty(512) time.sleep_ms(100) buzz.duty(0) while True: 重复执行 # print('Y:%d, T:%d, H:%d, O:%d' % (touchPad_Y.read(),touchPad_T.read(),touchPad_H.read(),touchPad_O.read())) if(touchPad_P.read() < 100): 如果触摸按键P被触摸 buzz.freq(300) 蜂鸣器响频率300 buzz.duty(512) 音量512 display.DispChar('一', 0+15, 24) OLED屏显示“一”,位置,点阵X,0+15,Y,24 time.sleep_ms(20) elif(touchPad_Y.read() < 100): 如果触摸按键Y被触摸(后面类似) buzz.freq(400) buzz.duty(512) display.DispChar('起', 15+15, 24) time.sleep_ms(20) elif(touchPad_T.read() < 100): buzz.freq(500) buzz.duty(512) display.DispChar('爱', 30+15, 24) time.sleep_ms(20) elif(touchPad_H.read() < 100): buzz.freq(600) buzz.duty(512) display.DispChar('上', 45+15, 24) time.sleep_ms(20) elif(touchPad_O.read() < 100): buzz.freq(700) buzz.duty(512) display.DispChar('掌', 60+15, 24) time.sleep_ms(20) elif(touchPad_N.read() < 100): buzz.freq(800) buzz.duty(512) display.DispChar('控', 75+15, 24) time.sleep_ms(20) else: display.show() buzz.freq(300) buzz.duty(0)[/mw_shl_code] 补个中秋快乐的视频。;P 【拓展任务】 1、自己编写代码由传掌控并运行,弹首小星星吧。两个合作,可以更多音符出来哦。 2、写出其它自己觉得好玩有趣的代码。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed