rzyzzxw 发表于 2018-10-11 09:12:37

【掌控】mpython-15…按键和触摸,一起来开灯



国庆假期后,来一场说造就造的旅行。
上海创客嘉年华,让人向往。

这一段时间,掌控“掌控”了我,承诺吴俊杰老师和伙伴们在众筹前要给出18课普惠(入门)课,眼看就要完成了,哈哈,真的是入门课呢。
在我的设想中,后面要加上些---机器学习人工智能,No No NO ,蓝牙WIFI物联网,哈哈,这个可以有,不过还在寻求技术支持中,过不了多久就有些基础小项目出来了。
其实掌控正在完善硬件和软件,一个不让大伙失望,能让大家顺手用起来的开源硬件还在打磨中,特别是打通scratch,让小朋友也能轻松使用。

图形化软件还在加班开发的同时,mpython2正在渐渐成熟。
这一段玩掌控,有两个小体会,一是python真的是很好上手,二呢治疗了我的代码恐惧症,虽说没有痊愈,但也不像以前那么害怕了。{:5_131:}

在等物联网彩蛋放出的时间里,今天玩一些简单的,按键和触摸,一起来开灯。

掌控有6个电容触摸按键,用导电胶带接长,再加上其它模块……可以做出来很多好玩的互动项目来。
这个后面再玩,现在还是基础课,祼板玩法。

【任务目标】
1、熟悉掌控的两个按钮和6个触摸按键的使用。
2、复习变量的使用。
3、复习for循环使用。

【1】A开B关
from mpython import *#导入掌控库
import time#引入时间库

while True:
    if button_a.value() == 0 andbutton_b.value() == 1: # 按下时为0,松开为1
      rgb.fill((50, 0, 0))# 设置为红色
      rgb.write()      
    if button_a.value() == 1 andbutton_b.value() == 0:
      rgb.fill((0, 0, 0))   # off
      rgb.write()   
    time.sleep_ms(100)#延时防抖


【2】按A开灯,再按关灯程序1:
from mpython import *#导入掌控库
import time#引入时间库

#初始化变量
item = 0
while True:
    if button_a.value() == 0 andbutton_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)    #延时防抖
程序2:
from mpython import *#导入掌控库
import time#引入时间库

#初始化布尔变量为真
item = True
while True:
    if button_a.value() == 0 andbutton_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)    #延时防抖

【3】用单触摸按键实现开关
程序:以按键P为例
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)    #延时防抖

【4】触摸不同按键,点亮不同色灯
网上可以查出各种颜色的RGB,例如:http://tool.oschina.net/commons?type=3
参考程序:
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()      

【5】小练习:只按A按扭,实现三色转换,第四次关灯
【6】其它自己设计的互动灯效。
结合生活场景,设计其它创意,并实现它。

创新思考 发表于 2018-10-16 13:12:17

结合生活场景的创意很好!
页: [1]
查看完整版本: 【掌控】mpython-15…按键和触摸,一起来开灯