Skip to content
wzp edited this page Oct 28, 2018 · 6 revisions

Document

logo

面板按键检测

好的,我们现在已经会创建一些代码让他们做一些事情了。接下来我们来处理设备的输入,比如按键输入 首先,我们区分二个概念, Output 输出是表示从设备输出到外围,Input 输入是处理设备过程中接受到的一些信息

那么在 micro:bit 最明显的输入便是二个按钮,上面有二个标签,分别是A和B,有些时候我们需要 MicroPython 去响应 按钮按下的过程 这是简单滴!

from microbit import *

sleep(10000)
display.scroll(str(button_a.get_presses()))

脚本运行时候需要暂停十秒,然后滚动显示你按下A的次数。就是这样

结果

虽然这些代码然并卵,但是还是提供了些许新思路

  1. 这个sleep函数可以让micro:bit暂停些许时间,暂停的时间为方块数字的毫秒,如果你想在你的程序某个时候暂停,就按照上面那样写个sleep函数就行。
  2. button_a 对象允许你通过 get_presses 方法 获取一个时间内被按的次数

然后一旦get_presses获取到了值,将其传递到display.sroll中,这个方法只能接受字符型,所以我们需要通过 str 函数将 整型转换成字符串 所以针对python原理我们做了一个假设,进行更深层次的理解 如果你在10秒内按了10次,那么上面代码的第三行怎么执行呢? python是从最内层开始执行代码的 所以:

display.scroll(str(button_a.get_presses()))

当然变成这样

display.scroll(str(10))

现在python已经知道按了多少下了,所以接下来将里面的变成字符串,记注一定是最内层优先执行。

display.scroll(str("10"))

最后将字符串10 进行输出,怎么样,是不是很像俄罗斯套娃! eluosi 当然,虽然看上去这个过程很复杂,但是在MicroPython的“化学催化”下,速度彪彪的!

处理事件

如果你想要 MicroPython 去响应一个按钮按压事件,你需要用if进行判断按钮是否按压,而且这个判断方法得放在一个死循环中 例如

while True:
    # Do stuff

所以我们可以构筑一个很简单的代码

from microbit import *

while True:
    if button_a.is_pressed():
        display.show(Image.HAPPY)
		display.clear()

按下按键显示我们之前学习到的Image。这就是所谓的学以致用,哈哈