所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
【BBC micro:bit】Science/定时闸门-计算汽车速度
KIKIYA KIKIYA 2019-02-13 15:41:47
1
0
简单
projectImage

定时门/Timing gates 

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

projectImage

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

projectImage

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

projectImage

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

projectImage
材料清单 材料清单
1x
纸板
1x
铝箔
1x
双面胶带
1x
4个鳄鱼夹
1x
micro:bit和USB线
projectImage
步骤1 步骤1
显示LED

代码 

在LED屏幕上显示图片

projectImage

参数 

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

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

例 

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

projectImage
步骤2 步骤2
On Pin Pressed
projectImage

参数

projectImage
projectImage
代码 代码
	                    					let count = 0
basic.showNumber(count, 100)
input.onPinPressed(TouchPin.P0, () => {
    count = count + 1
    basic.showNumber(count, 100)
})
	                    				
步骤3 步骤3
在变量中存储数字
projectImage
代码 代码
	                    					let item = 5
basic.showNumber(item)
	                    				

在变量中存储字符串

projectImage
代码 代码
	                    					let name = "Joe"
basic.showString(name);
	                    				
步骤4 步骤4
运行时间
projectImage
代码 代码
	                    					input.onButtonPressed(Button.B, () => {
    let now = input.runningTime()
    basic.showNumber(now)
})
	                    				
步骤5 步骤5
事件时间戳
projectImage
步骤6 步骤6
显示数字
projectImage
代码 代码
	                    					basic.showNumber(10)
	                    				

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

projectImage
代码 代码
	                    					let x = 1
basic.showNumber(x)
	                    				

示例:计数到5

projectImage
代码 代码
	                    					for (let i = 0; i < 6; i++) {
    basic.showNumber(i)
    basic.pause(200)
}
	                    				
步骤7 步骤7
建造大门
projectImage
projectImage
projectImage
projectImage
projectImage
步骤8 步骤8
升级汽车
projectImage
步骤9 步骤9
用代码检测汽车
projectImage
代码 代码
	                    					basic.showLeds(`
        . . . . .
        . . . . .
        . . # . .
        . . . . .
        . . . . .
        `)
input.onPinPressed(TouchPin.P0, () => {
    basic.showLeds(`
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        `)
})
	                    				
步骤10 步骤10
检测第二个门
projectImage
代码 代码
	                    					basic.showLeds(`
        . . . . .
        . . . . .
        . . # . .
        . . . . .
        . . . . .
        `)
input.onPinPressed(TouchPin.P0, () => {
    basic.showLeds(`
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        # . . . .
        `)
})
input.onPinPressed(TouchPin.P1, () => {
    basic.showLeds(`
        # . . . #
        # . . . #
        # . . . #
        # . . . #
        # . . . #
        `)
})
	                    				
步骤11 步骤11
计算时间
projectImage
projectImage
代码 代码
	                    					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 步骤12
计算速度

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

 v = d / t

Makelog作者原创文章,未经授权禁止转载。
1
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]