You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript与microPython中读取BBC micro:bit红外及磁力计数值?

在JavaScript和MicroPython中读取BBC micro:bit的红外与磁力计传感器数值

JavaScript(MakeCode)实现

红外(IR)读取说明与解决方案

micro:bit v2的内置红外模块核心功能是红外通信,无法直接读取红外光强度。你使用的input.temperature()读取的是芯片的环境温度,和红外光强度无关。若要检测红外光强度,需外接红外光敏传感器,通过模拟引脚读取数值,示例代码:

// 外接红外传感器连接到P0引脚时的读取代码
basic.forever(function () {
    let irLightIntensity = pins.analogReadPin(AnalogPin.P0)
    basic.showNumber(irLightIntensity)
})

磁力计(航向角)读取

input.compassHeading()要求先完成磁力计校准,这是设备的必要流程。你可以主动触发校准,避免设备自动提示,示例代码:

// 先执行校准
input.calibrateCompass()
basic.forever(function () {
    let heading = input.compassHeading()
    basic.showNumber(heading)
})

校准完成后,设备会保留校准数据,重启后通常无需再次校准。

MicroPython实现

红外(IR)读取说明与解决方案

和JavaScript环境一致,内置红外模块用于通信,读取红外光强度需外接传感器。示例代码(传感器接P0引脚):

from microbit import *

while True:
    ir_intensity = pin0.read_analog()
    display.show(str(ir_intensity))
    sleep(500)

如果需要使用内置红外模块进行通信,可参考以下代码:

from microbit import *

# 发送红外信号
ir.send("TEST")
# 循环接收红外信号
while True:
    received_msg = ir.receive()
    if received_msg:
        display.scroll(received_msg)

磁力计(航向角)读取

MicroPython中读取航向角前需执行校准,示例代码:

from microbit import *

# 触发磁力计校准
compass.calibrate()
while True:
    heading = compass.heading()
    display.show(str(heading))
    sleep(500)

校准过程中需按提示倾斜设备,完成后即可稳定输出航向角;若校准失败,可重新调用compass.calibrate()。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 14:21:25