1.4. 触摸输入(无声的按钮)

触摸输入是一种特殊的输入接口,功能几乎与按钮一样,但是没有按钮操作的机械声音,所以触摸输入被称作无声的按钮。

BlueFi的40-Pin扩展接口完全兼容microbit,具有3个人体触摸盘,这些是另外一种特殊的输入接口。这些触摸盘不仅能感知 你触摸他们,还允许你使用鳄鱼夹电线将触摸盘与某些导体或相当于导体的材料相连接,如锡箔纸、导电不干胶、水果、蔬菜、盛 有水的杯子等,用手触摸这些导体或材料时,等同于触摸到BlueFi的触摸盘。

本节我们来了解这些触摸输入的用法。先看第一个示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  import time
  from hiibot_bluefi.basedio import TouchPad
  touch = TouchPad()
  while True:
      if touch.P0:
          print("P0 be touched *")
      if touch.P1:
          print("P1 be touched ***")
      if touch.P2:
          print("P2 be touched *****")
      time.sleep(0.1)

将本示例的程序赋值-粘贴到MU编辑器,并保存到/CIRCUITPY/code.py文件,BlueFi将立即执行该程序,你可以用右手的大拇指和食指夹住 BlueFi的拓展接口的GND,再用左手的手指去触摸P0、P1或P2触摸盘,观察LCD屏幕(控制台)上的显示信息。思考你所看到的程序运行和试验 结果与程序语句之间的关联关系。

示例代码分析:

  • 第1行,导入一个Python内建的模块“time”
  • 第2行,从“/CIRCUITPY/lib/hiibot_bluefi/basedio.py”模块中导入TouchPad类
  • 第3行,将导入的“TouchPad”类实例化为一个实体对象,名叫“touch”
  • 第4行,一个无穷循环的程序块
  • 第5行(无穷循环程序块的第1行,判断条件为True时的程序块),判断P0是否被触摸
  • 第6行(无穷循环程序块的第2行,条件为True时的程序块的第1行),如果P0被触摸,打印特定字符串到LCD屏幕(控制台)
  • 第7行(无穷循环程序块的第3行,判断条件为True时的程序块),判断P1是否被触摸
  • 第8行(无穷循环程序块的第4行,条件为True时的程序块的第1行),如果P1被触摸,打印特定字符串到LCD屏幕(控制台)
  • 第9行(无穷循环程序块的第5行,判断条件为True时的程序块),判断P2是否被触摸
  • 第10行(无穷循环程序块的第6行,条件为True时的程序块的第1行),如果P2被触摸,打印特定字符串到LCD屏幕(控制台)
  • 第11行(无穷循环程序块的第7行),执行time的sleep方法,参数为0.1秒

总结:

  • 触摸输入
  • 实体对象的属性的状态
  • 逻辑判断和逻辑程序块
  • 本节中,你总计完成了11行代码的编写工作

重要

TouchPad类的接口

  • P0 (属性, 只读, 有效值:0 或 1), BlueFi的P0触摸盘状态(是否被触摸)
  • P1 (属性, 只读, 有效值:0 或 1), BlueFi的P1触摸盘状态(是否被触摸)
  • P2 (属性, 只读, 有效值:0 或 1), BlueFi的P2触摸盘状态(是否被触摸)