问题标签 [bbc-microbit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
836 浏览

python - 如何将 microbit 与 BLE 连接并监听按钮按下事件?

2021 年 11 月 28 日编辑:

如果您需要使用低功耗蓝牙将 microbit 连接到计算机,并在单击按钮时执行操作。直接跳转并按照下面@ukBaz的回答。

注意:该解决方案可以在 GNU/Linux 上完美运行,但在 Windows 上可能就不行了。

以下是帖子的原始问题。我不会编辑它来隐藏我的错误。


摘要:我有一个连接到 rpi-zero 的 microbit。我对 microbit 进行了编码,当A button按下它时,它会将数据发送uart.write到 rpi-zero。

在此测试中,microbit 将向uart.write("Test")rpi-zero 写入一个“测试”字。

我的最终目标是使用 rpi-zero 的 BLE 功能充当控制设备,并通过 microbit 按钮发送指令。

我发现这个GATT 服务器代码是用 python 为 rpi 编写的。它运行起来完全没有问题。

下面的代码将用于监听 microbit uart 服务并检查接收到的数据是否为"Test"

但真正的问题是当我尝试将此循环代码实现到 GATT 服务器代码中时。

我似乎无法理解如何将此值传递给self.send_tx

此外,GATT 服务器代码中似乎已经存在一个全局循环。所以我尝试使用线程同时运行这两个函数但是当我添加self.send_tx("Test")它时只会抛出一个错误Self is not defined

对不起,我对编码完全是个菜鸟,有人知道可能的解决方法吗?谢谢

这是完整的代码:

0 投票
2 回答
82 浏览

javascript - Micro:Bit TypeScript randint() 函数记录在哪里?

我正在尝试* 教一班高中生在 Micro:Bit 上从块编码过渡到 JavaScript(真正的静态 TypeScript)。

pickrandom块转换为调用randint() 我本来期望调用Math.randint() 但显然randint()是 TypeScript 中的全局函数。

孩子们要问的第一个问题是“我在哪里可以找到其他全局函数?” 而且,在使用 Google 将近两个小时后,我找不到该问题的答案。

那么,randint()记录在哪里以及其他此类功能的列表在哪里?

* 背景:我是一名退休的大学教师,在大流行期间“自愿”提供帮助。

0 投票
1 回答
106 浏览

python - 如何使用串行数据制作“if”语句?

我正在编写一个 python 脚本,它将从串行端口收集数据。我能够收集数据,当它出现时,它说b'1'我想为它是否出现做一个 if 语句,b'1'那么我希望它运行一个函数。

这是我的代码。

我应该怎么办?

0 投票
0 回答
119 浏览

python - bbc-microbit 不进入配对模式

刚通过 eBay 收到一个 BBC-microbit,我正在努力让它工作,这样我就可以帮助孙子通过 Scratch 学习编码。

我将 scratch-microbit-1.1.0.hex 拖到了 BBC。重置后“vavov”继续在 BBC 屏幕上滚动。

然后尝试通过 (1) 按下按钮 A 和 B (2) 按下重置按钮 (3) 释放重置 (4) 释放 AB 将其置于配对模式

我希望在 BBC LED 矩阵上看到 PAIRING MODE 或蓝牙图标,但只有 vavov 显示。

我认为可能是 scratch-microbit-1.1.0.hex 导致了问题,并通过 OutOfBoxExperience-v2.hex 将 BBC 重置为出厂设置。仍然无法将 BBC 置于配对模式。

有没有办法通过 USB 向 BBC 发送节目?是的话怎么办?


我尝试编写一个小的 Scratch 程序并在编辑器中添加 microbit 扩展。未找到任何设备。


谢谢你。

0 投票
2 回答
71 浏览

python - 如何将我从以前的算法中获得的多个数值添加到数组中,以便在 MU python 编辑器中为 microbit 进行一些计算?

我是编程新手,我正在构建一个超声波传感器来计算物体与 microbit 的距离。我已经编写了一些代码来在 1 秒内测量距离 50 次,但由于每次测量都略有不同,我想使用以距离为元素的数组来找到所有 50 次测量的平均值。如何将所有 50 个测量值添加到数组中?这是我到目前为止编写的代码。

0 投票
1 回答
38 浏览

bbc-microbit - 有什么方法可以在 micropython 中找到 micro:bit 的五个字符 ID?

这就是我们使用块获取设备名称的方式

在此处输入图像描述

但我需要找到在 micropython 中编码的方法才能找到相同的方法。

我尝试了以下方法:

但这会引发错误!

0 投票
1 回答
48 浏览

javascript - 光从值 0 变为 255,然后再次变为 0

我正在研究一个光脉冲代码,我希望光从值暗(0)然后增加到亮(255)。

我一直在尝试使用“for”来使其正常工作,但我真的不确定。代码从 0 开始,然后我想将其增加到 255,然后暂停 0.50 秒,然后重复

0 投票
2 回答
69 浏览

javascript - 定义二维数组 Javascript

嗨,我正在尝试在 JS 中定义一个二维数组,但似乎有两个错误阻止了我,我不确定我哪里出错了。 i只是来自一个 for 循环 - 它已被定义。即使我用0替换i也会发生相同的错误。我的代码:

这会导致错误:

'=' 预期。

但是删除let

导致不同的错误:

类型“数字”不可分配给类型“未定义”。

我正在为 BBC Microbit 使用 JS 编辑器。提前致谢。

0 投票
1 回答
32 浏览

javascript - 插入 USB 时连接到 Adeept 板的 Micro:Bit 复位

我有一个 BBC Micro:Bit。它插入 Adeept 板,该板具有 I2c 1602 LCD 显示屏、Adeept 操纵杆和 Adeept 按钮模块。我必须为开发板的 USB 端口供电才能运行 LCD 显示器。我创建了一个网站,并希望能够将数据从 Micro:Bit 同步到网站(您选择的名称和我稍后添加的其他数据)。我将名称设置为某事。然后我将我的 USB 插入计算机和 Micro:Bit。但是当我备份和恢复时,名称是列表中的第一个名称。
我在没有恢复的情况下备份了它,页面说这个名字是名字(即使我改变了它)。然后,当我导航到 Micro:Bit 上的名称“app”时,它还会显示名字。不知道是供电问题还是代码问题。我的脚本在这里:https://repl.it/@awesomecrater/smartmicrobit#script.js
我正在使用来自 GitHub 的这个库https://github.com/bsiever/microbit-webusb/blob/master/ubitwebusb.js和 Micro 上的代码:Bit 接收备份信号在伪代码中看起来像这样:

有谁知道为什么将其设置回列表中的第一项?
name将列表的当前项存储为索引。

0 投票
3 回答
171 浏览

python - Python 和指南针数据 - 算法?

主题:使用指南针传感器输入的 Python:卡在计算中

我正在以名为“开始”的度数读取指南针,旋转大约 360 度并读取“结束”。我想知道开始和结束之间的增量。不是转了多少度,而是结束与开始有多么不同。

算法很简单:end – start = delta

但我被困在 359 和 1 的边界。示例开始 10,结束 350。或开始 350 结束 10。我尝试了许多算术组合,但没有想出一个始终正确的公式。

有什么建议么?谢谢。

测试以下一些答案: