首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MicroPython - Micro:bit |格罗夫-超声波测距|为模块创建驱动程序

MicroPython - Micro:bit |格罗夫-超声波测距|为模块创建驱动程序
EN

Stack Overflow用户
提问于 2020-02-11 04:41:11
回答 1查看 278关注 0票数 1

我正在尝试将树莓派的python代码翻译成MicroBit MicroPython,以便用MicroPython驱动一个格罗夫-超声波游骑兵模块。

http://wiki.seeedstudio.com/Grove-Ultrasonic_Ranger/

https://github.com/Seeed-Studio/grove.py/blob/master/grove/grove_ultrasonic_ranger.py

我这样做了,语法是正确的:

代码语言:javascript
复制
from microbit import *
import time


_TIMEOUT1 = 1000
_TIMEOUT2 = 10000


def _get_distance():
    pin0.write_digital(0)
    time.sleep_us(2)
    pin0.write_digital(1)
    time.sleep_us(10)
    pin0.write_digital(0)


    t0 = time.ticks_us()
    count = 0
    while count < _TIMEOUT1:
        if pin0.read_digital():
            display.set_pixel(1, 1, 5)
            break
        count += 1
    if count >= _TIMEOUT1:
        return None

    t1 = time.ticks_us()
    count = 0
    while count < _TIMEOUT2:
        if not pin0.read_digital():
            display.set_pixel(0, 0, 5)
            break
        count += 1
    if count >= _TIMEOUT2:
        return None

    t2 = time.ticks_us()



    dt = int(time.ticks_diff(t1,t0) * 1000000)
    # The problem is upside !


    if dt > 530:
        return  None

    distance = (time.ticks_diff(t2,t1) * 1000000 / 29 / 2)    # cm


    return distance


def get_distance():
    while True:
        dist = _get_distance()
        if dist:
            return dist

#Appel de la fonction get_distance(void) et affichage sur le display
display.scroll(get_distance())

但是我对dt有很大的价值,我不知道为什么……感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-02-11 22:46:42

Seeed Studio代码使用Python的time.time()函数进行计时。来自the help

time.time()→float

以浮点数的形式返回自纪元以来的时间(秒)。

您的代码使用MicroPython的time.ticks_us()函数。来自its help

utime.ticks_ms()

返回一个带有任意参考点的递增毫秒计数器,该计数器在某个值之后环绕。

..。

utime.ticks_us()

就像上面的ticks_ms()一样,但以微秒为单位。

因此,在您的版本中获得的数字将是原始Python代码的10^6倍。看起来您已经将时间差乘以10^6,以将它们转换为微秒,所以只需从计算中删除此系数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60158099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档