6914| 1
|
[入门教程] 【掌控】mpython-15…按键和触摸,一起来开灯 |
国庆假期后,来一场说造就造的旅行。 上海创客嘉年华,让人向往。 这一段时间,掌控“掌控”了我,承诺吴俊杰老师和伙伴们在众筹前要给出18课普惠(入门)课,眼看就要完成了,哈哈,真的是入门课呢。 在我的设想中,后面要加上些---机器学习人工智能,No No NO ,蓝牙WIFI物联网,哈哈,这个可以有,不过还在寻求技术支持中,过不了多久就有些基础小项目出来了。 其实掌控正在完善硬件和软件,一个不让大伙失望,能让大家顺手用起来的开源硬件还在打磨中,特别是打通scratch,让小朋友也能轻松使用。 图形化软件还在加班开发的同时,mpython2正在渐渐成熟。 这一段玩掌控,有两个小体会,一是python真的是很好上手,二呢治疗了我的代码恐惧症,虽说没有痊愈,但也不像以前那么害怕了。 在等物联网彩蛋放出的时间里,今天玩一些简单的,按键和触摸,一起来开灯。 掌控有6个电容触摸按键,用导电胶带接长,再加上其它模块……可以做出来很多好玩的互动项目来。 这个后面再玩,现在还是基础课,祼板玩法。 【任务目标】 1、熟悉掌控的两个按钮和6个触摸按键的使用。 2、复习变量的使用。 3、复习for循环使用。 【1】A开B关 [mw_shl_code=python,true]from mpython import *#导入掌控库 import time#引入时间库 while True: if button_a.value() == 0 and button_b.value() == 1: # 按下时为0,松开为1 rgb.fill((50, 0, 0)) # 设置为红色 rgb.write() if button_a.value() == 1 and button_b.value() == 0: rgb.fill((0, 0, 0)) # off rgb.write() time.sleep_ms(100)#延时防抖[/mw_shl_code] 【2】按A开灯,再按关灯程序1: [mw_shl_code=python,true]from mpython import *#导入掌控库 import time#引入时间库 #初始化变量 item = 0 while True: if button_a.value() == 0 and button_b.value() == 1: # 按下时为0,松开为1 item = item + 1 #变量加1 if item == 1: #如果变量为1 rgb.fill((50, 0, 0)) # 设置为红色 rgb.write() elif item == 2: #如果变量为2 rgb.fill((0, 0, 0)) # off rgb.write() item = 0 #变量回0 time.sleep_ms(200) #延时防抖[/mw_shl_code] 程序2: [mw_shl_code=python,true]from mpython import *#导入掌控库 import time#引入时间库 #初始化布尔变量为真 item = True while True: if button_a.value() == 0 and button_b.value() == 1: # 按下时为0,松开为1 if item == True: #如果变量为真 rgb.fill((50, 0, 0)) # 设置为红色 rgb.write() item = False # 变量设为假 else: # 否则变量为假 rgb.fill((0, 0, 0)) # 设为0 rgb.write() item = True #变量设为真 time.sleep_ms(200) #延时防抖[/mw_shl_code] 【3】用单触摸按键实现开关 程序:以按键P为例 [mw_shl_code=python,true]from mpython import *#导入掌控库 import time#引入时间库 #初始化布尔变量为真 item = True while True: if touchPad_P.read() < 100: # 触摸p if item == True: #如果变量为真 rgb.fill((50, 0, 0)) # 设置为红色 rgb.write() item = False # 变量设为假 else: # 否则变量为假 rgb.fill((0, 0, 0)) # 设为0 rgb.write() item = True #变量设为真 time.sleep_ms(200) #延时防抖[/mw_shl_code] 【4】触摸不同按键,点亮不同色灯 网上可以查出各种颜色的RGB,例如:http://tool.oschina.net/commons?type=3 参考程序: [mw_shl_code=python,true]from mpython import * # 导入掌控库 while True: if touchPad_P.read() < 100: rgb.fill((255, 0, 0)) # 设置为红色 rgb.write() elif touchPad_Y.read() < 100: rgb.fill((0, 255, 0)) rgb.write() elif touchPad_T.read() < 100: rgb.fill((0, 0, 255)) rgb.write() elif touchPad_H.read() < 100: rgb.fill((255, 0, 255)) rgb.write() elif touchPad_O.read() < 100: rgb.fill((255,255,0)) rgb.write() elif touchPad_N.read() < 100: rgb.fill((0,255,255)) rgb.write() [/mw_shl_code] 【5】小练习:只按A按扭,实现三色转换,第四次关灯 【6】其它自己设计的互动灯效。 结合生活场景,设计其它创意,并实现它。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed