0

以下代码可以正常工作:

# Add your Python code here. E.g.
from microbit import *

score = 0
display.show(str(score))

   while True:
    if accelerometer.was_gesture('face down'):
        score += 1
        if score < 10:
            display.show(score)
        else: 
            display.scroll(score)
    continue

'''但是当我尝试用 get_Z 替换 was_gesture('face down') 我得到一个错误:'''

# Add your Python code here. E.g.

    from microbit import *

    score = 0
    display.show(str(score))

    z = accelerometer.get_z()

    while True:
        if z < accelerometer.get_z(-500) 
            score += 1
            if score < 10:
                display.show(score)
            else: 
                display.scroll(score)
        continue

我得到一个错误?但为什么?每次我将设备移动到某个点以下时,我只想让 microbit 计数?

4

2 回答 2

1

accelerometer.get_z() 语句需要在 while 循环内,以便更新。该循环还需要一个 sleep 语句,这样就不会显示积压的检测。

我使用 mu 编辑器在 micro:bit 上测试了下面的代码。当 microbit 的 LED 面朝上时,计数会增加。当它面朝下时,计数停止。

from microbit import *
uart.init(baudrate=115200)

score = 0
display.show(str(score))

while True:
    z = accelerometer.get_z()
    if z < -500:
        score += 1
        if score < 10:
            display.show(score)
        else: 
            display.scroll(score)
    sleep(1000)
    continue
于 2020-02-10T12:59:12.230 回答
0

您在这一行的末尾错过了一个冒号:

       if z < accelerometer.get_z(-500) 

此外,该get_z()方法不接受任何参数: https ://microbit-micropython.readthedocs.io/en/latest/accelerometer.html#microbit.accelerometer.get_z

于 2020-02-10T12:21:47.200 回答