回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【BBC micro:bit】Science/定时闸门-计算汽车速度 简单

头像 KIKI 2019.02.13 1074 0
project-image

定时门/Timing gates 

将两个门链接到micro:bit,就可以检测到通过的车辆。

project-image

当汽车通过 闸门0 时,它通过 on pin pressed 发送一个事件到micro:bit。micro:bit在变量中记录时间t0。

project-image

当车通过 闸门1 的时候,它通过 on pin pressed 发送一个事件到micro:bit。micro:bit在变量中记录时间t1。

project-image

其余的是一些数学和物理知识。穿过门的时间计算为t1-t0。通过将门之间的距离除以持续时间,我们得到了车的速度!

project-image

材料清单

  • 纸板 X1
  • 铝箔 X1
  • 双面胶带 X1
  • 4个鳄鱼夹 X1
  • micro:bit和USB线 X1
project-image

步骤1 显示LED

代码 

在LED屏幕上显示图片

project-image

参数 

leds是一个字符串,用于控制打开和关闭哪些LED。 

interval是一个可选数字,表示显示图片后等待多少毫秒。如果使用块编程,interval则设置为400毫秒。 

例 

该程序显示具有该show leds功能的图片。

project-image

步骤2 On Pin Pressed

project-image

参数

project-image
project-image
代码
let count = 0
basic.showNumber(count, 100)
input.onPinPressed(TouchPin.P0, () => {
    count = count + 1
    basic.showNumber(count, 100)
})

步骤3 在变量中存储数字

project-image
代码
let item = 5
basic.showNumber(item)

在变量中存储字符串

project-image
代码
let name = "Joe"
basic.showString(name);

步骤4 运行时间

project-image
代码
input.onButtonPressed(Button.B, () => {
    let now = input.runningTime()
    basic.showNumber(now)
})

步骤5 事件时间戳

project-image

步骤6 显示数字

project-image
代码
basic.showNumber(10)

要显示存储在变量中的数字:

project-image
代码
let x = 1
basic.showNumber(x)

示例:计数到5

project-image
代码
for (let i = 0; i < 6; i++) {
    basic.showNumber(i)
    basic.pause(200)
}

步骤7 建造大门

project-image
project-image
project-image
project-image
project-image

步骤8 升级汽车

project-image

步骤9 用代码检测汽车

project-image
代码
basic.showLeds(`
        . . . . .
        . . . . .
        . . # . .
        . . . . .
        . . . . .
        `)
input.onPinPressed(TouchPin.P0, () => {
    basic.showLeds(`
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        `)
})

步骤10 检测第二个门

project-image
代码
basic.showLeds(`
        . . . . .
        . . . . .
        . . # . .
        . . . . .
        . . . . .
        `)
input.onPinPressed(TouchPin.P0, () => {
    basic.showLeds(`
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        `)
})
input.onPinPressed(TouchPin.P1, () => {
    basic.showLeds(`
        # . . . #
        # . . . #
        # . . . #
        # . . . #
        # . . . #
        `)
})

步骤11 计算时间

project-image
project-image
代码
let t0 = 0;
let t1 = 0;
basic.showLeds(`
        . . . . .
        . . . . .
        . . # . .
        . . . . .
        . . . . .
        `)
input.onPinPressed(TouchPin.P0, () => {
    t0 = control.eventTimestamp();
    basic.showLeds(`
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        `)
})
input.onPinPressed(TouchPin.P1, () => {
    t1 = control.eventTimestamp();
    basic.showLeds(`
        # . . . #
        # . . . #
        # . . . #
        # . . . #
        # . . . #
        `)
    let d = t1 - t0
    basic.showNumber(d)
})

步骤12 计算速度

测量门之间的距离并应用牛顿定律来计算汽车的速度(它的速度)。

 v = d / t

评论

user-avatar