标签: bbc-microbit

微:蓝牙低功耗黑客持久性(高中实习项目)

我的项目是使用Micro:bit微处理器创建一个交互式程序我正在构建一个游戏,它使用钻孔马达作为控制器,读取旋转方向和速度作为控制输入,但我的导师也说很酷在游戏运行的同时为电路板供电,所以现在我遇到了这样的情况,一旦我停止转向改变方向或我的速度低于传输3.3伏电源,然后游戏重新启动,我失去了所有进展

我有使用第二个micro:bit作为一种由我的电脑供电的存储位置的想法,并且两个不断通信的发送回播放器位置和LED上的其他对象

但我无法弄清楚如何让两个Micro:bit互相交谈

如果有人可以指出我正确的方向,甚至建立某种沟通方式,在我开始前进的过程中向我推进正确的方向

我是一个高中学生,我不会像我假装的那样知道,所以我可能需要很多帮助(我比我班上的大多数人都更先进,所以把我当作一个技术天才少年投入与大学生一天天失去我不应得的自我LOL)请帮助我不知何故我目前完全失去

bluetooth-lowenergy micropython bbc-microbit

4
推荐指数
1
解决办法
568
查看次数

micro:bit 上的按钮 B 始终按下

I\xe2\x80\x99m 在裸机级别编程 micro:bit(在 Ada 中),即 I\xe2\x80\x99m 直接寻址 nrf51 寄存器。

\n\n

我对按钮 A、GPIO 引脚 17 没有任何问题:it\xe2\x80\x99s 配置为

\n\n
dir => input, \ninput => connect,\npull => pullup,\ndrive => s0s1, \nsense => disabled\n
Run Code Online (Sandbox Code Playgroud)\n\n

当按下按钮时,IN 寄存器位 17 为low,释放时为 \xe2\x80\x99s high

\n\n

然而,与按钮 B、GPIO 引脚 26 的配置完全相同,IN 寄存器的第 26 位始终为low

\n\n

出厂图像可识别按钮 A 和 B。

\n\n

按钮 B 正确连接到边缘连接器引脚 11(使用 DVM 检查边缘连接器处的电压电平)。

\n\n

不过,我想知道为什么我必须指定pullup,因为板上已经有一个 10k 上拉电阻(并且 DVM 显示了正确的逻辑电平)。

\n\n

原理图在这里,nRF51 参考手册在这里

\n\n

我发现了一个早期的原理图,其中 …

bbc-microbit

3
推荐指数
1
解决办法
139
查看次数

为什么此代码在启动时没有任何输入就显示“ A”?

这是微摩尔斯电码转换器,但在开始时显示“ A”

from microbit import *
morse={'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E', '..-.': 'F', '--.': 'G', '....': 'H', '..': 'I', '.---': 'J', '-.-': 'K', '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O', '.--.': 'P', '--.-': 'Q', '.-.': 'R', '...': 'S', '-': 'T', '..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X', '-.--': 'Y', '--..': 'Z', '.----': '1', '..---': '2', '...--': '3', '....-': '4', '.....': '5', '-....': '6', '--...': '7', '---..': '8', '----.': '9', '-----': '0', '--..--': ', …
Run Code Online (Sandbox Code Playgroud)

python micropython bbc-microbit

3
推荐指数
1
解决办法
184
查看次数

无法连接到套接字/opt/local/var/run/dbus/system_bus_socket:没有这样的文件或目录

我尝试使用 Bluezero 向 microbit 发送消息(我使用的是 macOS),但出现错误。

示例代码。

from bluezero import microbit
ubit = microbit.Microbit(adapter_addr='x',
                         device_addr='x',
                         accelerometer_service=True,
                         button_service=True,
                         magnetometer_service=False,
                         pin_service=False,
                         temperature_service=True)

my_text = 'Hello, world'
ubit.connect()

while my_text is not '':
    ubit.text = my_text
    my_text = input('Enter message: ')

ubit.disconnect()
Run Code Online (Sandbox Code Playgroud)

错误

dbus.exceptions.DBusException:org.freedesktop.DBus.Error.FileNotFound:无法连接到套接字/opt/local/var/run/dbus/system_bus_socket:没有这样的文件或目录

macos python-3.x bluetooth-lowenergy bbc-microbit

3
推荐指数
1
解决办法
3万
查看次数

如何为 micropython 编写测试

我想为我正在为 micro:bit 编写的 micropython 代码编写测试。这里的例子使用doctest。我愿意接受任何测试系统的变通方案。

名为testing_python.py 的工作Python 示例:

def sum(a, b):
    '''
    >>> sum(3, 0)
    3
    '''
    return a + b

print(sum(2,2))
Run Code Online (Sandbox Code Playgroud)

当我测试时使用:

python -m doctest -v testing_python.py 

Run Code Online (Sandbox Code Playgroud)

我得到:

4
Trying:
    sum(3, 0)
Expecting:
    3
ok
Run Code Online (Sandbox Code Playgroud)

使用 micropython 作为 micro:bit 的失败示例,名为testing_micropython.py:

from microbit import *

def sum(a, b):
    '''
    >>> sum(3, 0)
    3
    '''
    return a + b

print(sum(2,2))
Run Code Online (Sandbox Code Playgroud)

当我测试时使用:

python -m doctest -v testing_micropython.py 
Run Code Online (Sandbox Code Playgroud)

我明白了

Traceback (most recent call last):
...
ModuleNotFoundError: No module named 'microbit'
Run Code Online (Sandbox Code Playgroud)

我尝试将“import microbit”语句包装在 try, …

doctest micropython bbc-microbit

3
推荐指数
1
解决办法
1541
查看次数

如何将 TypeScript 变量声明为 volatile?

我正在与BBC Micro Bit 合作,并正在为 TypeScript 中的 Make Code 创建扩展。

我有以下事件由我的机器人上的车轮编码器触发。在事件内部,我增加了几个变量。在 Arduino 语言中,我将此类变量声明为“易失性”,表示该变量可以被中断更改,从而确保我使用的是变量中的最新值。

control.onEvent(EventBusSource.MICROBIT_ID_IO_P0, EventBusValue.MICROBIT_PIN_EVT_RISE, function () {
    _lTicks += 1;
    _lerrTicks += 1;
    if (_lTicks % _partialTurn == 0) {
        _lTicks = 0;
        _lTurns += .0625;
    }
})
Run Code Online (Sandbox Code Playgroud)

声明变量时,TypeScript 是否具有等效的“volatile”关键字?如果是这样,它是如何实施的?

volatile typescript bbc-microbit

0
推荐指数
1
解决办法
1001
查看次数

如何将值传递回此字符串?

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

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

我的最终目标是使用 rpi-zero 的 BLE 功能作为控制设备,从 microbit 按钮发送指令。

我找到了用 python 为 rpi 编写的GATT 服务器代码。它运行完全没有问题。

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

import serial

serialPort = serial.Serial(port = "/dev/ttyACM0", baudrate=115200, bytesize=8, timeout=0.5, stopbits=serial.STOPBITS_ONE)

serialString = " "

(serialPort.in_waiting > 0)

while True:

        serialString = serialPort.readline()

        if serialString == b'Test':
            print("Yes")
        else:
            print("F")
Run Code Online (Sandbox Code Playgroud)

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

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

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

python uart raspberry-pi bluetooth-lowenergy bbc-microbit

0
推荐指数
1
解决办法
483
查看次数