2018-10-11 09:12:37 [显示全部楼层]
6914浏览
查看: 6914|回复: 1

[入门教程] 【掌控】mpython-15…按键和触摸,一起来开灯

[复制链接]
【掌控】mpython-15…按键和触摸,一起来开灯图1

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

这一段时间,掌控“掌控”了我,承诺吴俊杰老师和伙伴们在众筹前要给出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】其它自己设计的互动灯效。
结合生活场景,设计其它创意,并实现它。

创新思考  学徒

发表于 2018-10-16 13:12:17

结合生活场景的创意很好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail