问题标签 [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 回答
32 浏览

syntax-error - 使用 microbit 在 mu 上编码时出现语法错误

这是我用来为 microbit 创建 Edice 的代码: from microbit import * import random image1 = Image("00000:" "00000:" "00900:" "00000:" "00000") image2 = Image("90000: " "00000:" "00000:" "00000:" "00009") image3 = Image("90000:" "00000:" "00900:" "00000:" "00009") image4 = Image("90009:" 00000:" "00000:" "00000:" "90009") image5 = Image("90009:" "00000:" "00900:" "00000:" "90009") image6 = Image("90009:" "00000:" "90009:" "00000:" "90009") images=[image1, image2, image3, image4, image5, image6]

while True: if button_a.is_pressed(): for i in range(0, 16):

display.show(random.randint.(1, 6)) 似乎被注册为语法错误。我可以知道问题出在哪里以及如何改进代码

0 投票
1 回答
272 浏览

bbc-microbit - 微位串行通信将文本拆分为行

我是 microbit 的初学者,我尝试从不同的教程/代码示例中复制一些代码。我只是想在计算机和 microbit 之间建立串行通信。我的计划是让 microbit 只回显它接收到的每一行,然后暂时将其发回。但是线是分裂的,我不确定是微位还是计算机在分裂。我尝试过两台不同的计算机,结果相同。

这是微比特代码:

我的计算机代码,一个带有 pyserial 的 Python 程序:

我遇到的问题是它打印出这个:

我期待它用一个词打印 b'testing'。我可以编写代码来组合文本,但我可能会失去同步。

0 投票
2 回答
326 浏览

python - 如何使用 micropython 控制插入 BBC microbit 的水泵的速度

如何使用 micropython 控制插入 BBC micro:bit 的水泵的速度?

到目前为止,为了控制水泵,我可以打开/关闭它,这是我的代码:

它是如何连接的:

0 投票
2 回答
126 浏览

accelerometer - Micro:bit - 加速度计 - (Micro python) 使 microbit 向下计数 - 仅适用于手势

以下代码可以正常工作:

'''但是当我尝试用 get_Z 替换 was_gesture('face down') 我得到一个错误:'''

我得到一个错误?但为什么?每次我将设备移动到某个点以下时,我只想让 microbit 计数?

0 投票
1 回答
320 浏览

micropython - MicroPython - 微:位 | Grove - 超声波游侠 | 为模块创建驱动程序

我正在尝试将 Raspberry 的 python 代码转换为 MicroBit MicroPython,以使用 MicroPython 驱动 Grove - Ultrasonic Ranger 模块。

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

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

我这样做了,语法没问题:

但我有很大的价值,因为dt我不知道为什么......谢谢你的帮助!

0 投票
3 回答
51 浏览

python - 有人能解释一下这条微蟒发生了什么吗

刚开始玩 BBC micro:bit。其中一个例子有这行代码

flash = [Image().invert()*(i/9) for i in range(9, -1, -1)]

它生成一组图像。为了弄清楚发生了什么,我写了这段代码

产生

谢谢

0 投票
1 回答
36 浏览

iot - 是否可以将 micro: bit 板连接到岩石上,并让它计算它被抛到空中的次数?

看标题

我可以很容易地用手势来工作。但是,如果我将板子固定在一块岩石上,并让它记录这块石头被抛到空中多少次——然后又被抓住了怎么办?我想知道是否可以使用加速度计?

这段代码有效,如果我只是翻转电路板,它就像描述的那样计数。

0 投票
1 回答
100 浏览

c - 将输入字节中的特定位映射到输出字中的特定位

背景:给定一些输入字节 B0、B1、B2、B3 和 B4,我想从这 5 个字节中提取选定的位并生成一个输出字。

例如,将B i的第n位表示为,我希望能够写出一个映射f: (B0, B1, B2, B3, B4) → 。所以会回来。Bi[n]B2[4] B3[5] B3[4] B3[3] B3[2] B3[1] B0[5] B0[3] B0[1]f(0b11001, 0b01100, 0b10101, 0b10011, 0b11111)0b010011101

C 中可能会执行此确切示例的表达式是

使用简单的位掩码和位移。


问题:有什么方法可以简化这样的表达式以最小化需要执行的操作数量?

例如,我注意到 B3 被完整地复制到输出的某些位中,因此我将其放置在适当的位置,B3 << 3而不是屏蔽和移动单个位。我首先想到的是卡诺图,因为它们在简化布尔表达式时派上用场,但我意识到,由于我在一个字节的不同部分提取和放置各个位,因此使用布尔代数不可能进行简化。


推理:我想这样做的原因是能够在 BBC micro:bit 上以程序员友好的方式点亮 LED。我希望 B0 到 B4 表示在物理 5x5 排列中打开了哪些 LED,但这些 LED 在电子上以复杂的 3x9 配置连接。有关 LED 的更多信息,请参见此处

通常,模式会根据物理 3x9 排列存储在内存中,以便能够在单个指令中将此模式输出到 LED,但我希望能够以编程方式将 5x5 模式映射到 3x9 模式。然而,如上所示的表达式需要 5 次加载指令、9 次按位 AND/OR 运算和 4 次逻辑移位,这至少比普通方法的效率低 9 倍。

0 投票
1 回答
553 浏览

python-3.x - 如何将我的 Python 脚本(包括我的模块)传输到 micro:bit?

我们将 micro:bit 与附件 Bit:bot XL 一起使用。我有一个模块(robot.py),它只有一个用于 Bit:bot 的功能(目前)。在我的脚本(my.py)中,我导入了这个函数。但是刷完 micro:bit (uflash my.py) 后,LED 矩阵上出现错误:“导入错误:没有名为机器人的模块”。但是,如果我只是在我的模块中使用标准 Python 函数(如 print())并在 VSCode 终端中运行我的脚本,它就可以正常工作。将我的函数直接放入我的脚本中也可以正常工作。为什么我不能将我的脚本和模块都传输到 micro:bit?

可以在Flash microbit 嵌入类 .py 文件中找到解决方法。解决方法要求您先刷新 micro:bit,然后使用 ufs 传输模块。它有效,但对于我们的目标群体——盲童来说,事情变得更加复杂。

我的模块robot.py 存储在一个名为bitbot 的文件夹中。文件夹路径在 sys.path 中指定。包中还有一个空文件__init__.py

我尝试了不同的方法来导入模块,但它们都给出了相同的导入错误:import bitbot, import robot, from bitbot import *, from robot import *, from bitbot import drive, from robot import drive, from bitbot.robot import drive .

我用:

0 投票
0 回答
199 浏览

size - 如何使用 makecode 查找我的 micro:bit 上使用了多少 RAM 内存?

我在 makecode.microbit.org 中为我的 micro:bit 编写了代码。想法是使用无线电通信并发送每个 micro:bit 消息。所以我一开始的问题是,有多少消息只能得到一个 micro:bit?

互联网这样说:
收到的消息是从可配置大小的队列中读取的(队列越大,使用的 RAM 越多)。如果队列已满,则忽略新消息。读取消息会将其从队列中删除。

所以我的问题是:如何使用 makecode 找到我的 micro:bit 上使用了多少 RAM 内存? 编辑:https
://forum.makecode.com/t/how-to-find-how-much-ram-memory-is-used-on-my-micro-bit-using-makecode/1303/2 现在如何找到micro:bit 队列的长度?