问题标签 [adafruit-circuitpython]

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 投票
0 回答
50 浏览

python - 如何防止从文件中解码字节?

我一次读取 4 个字节的 bmp 文件,以从 .bmp 文件中收集颜色以创建调色板。当我阅读文件时,我得到b'\x8b\xc3\**x00J**\x00'. 如果我在十六进制编辑器中打开这个文件,字节串是b'\x8b\xc3\**x4a**\x00. 现在,当我尝试将特定字节放入dispalyio.palette. 我的理解是 Python 自动将字节(具有有效的 ascii 表示)解码为 ascii。

最终,我只想获取原始字节字符串,一次 4 个字节,而不需要从所述文件中解码。我的代码如下所示:

这是在 CircuitPython 6.3.0 上使用该displayio模块。对于那些不熟悉的人来说,CircuitPython 只是用于 MCU 的 Python 的精简版,它使用 Python 3 作为基础。

0 投票
0 回答
44 浏览

python - 有没有办法在网络上的套接字之间同步发送信息?

我正在用 python 编程 ada 果环 LED 灯,我已经为 midi 控制器设置了一个本地网络,以将数据读入我的 Raspberry Pi 3 并通过网络套接字发送到 3 Pi Zero W。我遇到了一个问题,即我在线程上运行的某些功能将彼此不同步。换句话说,其中一个 LED 灯将以稍快或稍慢的速度运行,最终看起来不同步。我很好奇是否有人遇到过这样的问题,或者我是否只是以不正确的方式使用线程和事件。

这是我的一些服务器端代码:

这是我的一些客户端代码:

当我敲击键盘并执行该功能时,我将数据发送到两个 PI,它们同时启动,但随着时间的推移会不同步。感谢所有帮助。

0 投票
0 回答
31 浏览

python - 以编程方式在 CircuitPython 中创建 digitalio.DigitalInOut 对象

我正在尝试digitalio.DigitalInOut在 CircuitPython 的类中创建一个对象。使用的引脚被定义为类 ( pin_number) 中的参数。除了 with 之外还有其他方法exec()吗?我的尝试如下,正如你所看到的,它非常混乱(并且由于和类的问题而不起作用exec())。

在 MicroPython 中,我只是这样做了:

如果可能的话,我想对 CircuitPython 做一些类似的事情,以便我的主程序与 MicroPython 或 CircuitPython 兼容,具体取决于您从其中导入的文件(我的主代码如下所示)。

0 投票
0 回答
64 浏览

bluetooth-lowenergy - 使用 CircuitPython 将 Adafruit ItsyBitsy (nRF52840) 设置为 BLE Central

我一直在试验 Adafruit ItsyBitsy (nRF52840) 和 CircuitPython。我可以将开发板设置为 BLE 外围设备,没问题……但事实证明,将其设置为中央设备更加困难。

这是我在 Board1(我的 Central)上使用的代码:

我在这里从这个示例代码修改:https ://learn.adafruit.com/circuitpython-ble-libraries-on-any-computer/ble-uart-example

这是我在 Board2 上的代码——当我在手机上使用我的 UART 应用程序测试它时,它绝对有效:

中央板肯定会发现并连接到外围设备。我无法判断的是 UART 通道是否建立正确。据我所知,Central 没有通过 UART 连接发送任何内容(或者可能正在发送某些内容,但 Peripheral 没有收到任何内容)。

有任何想法吗?

0 投票
0 回答
188 浏览

python-3.x - 在 Raspberry Pi 零 W 上使用 DHT22 的 Adafruit 库在 Python 中出现大量读取错误

我正在使用带有 Raspberry Pi Zero W V1.1 的 DHT22 温度和湿度传感器来记录温度和湿度。我使用 Python 和 Adafruit 库(https://github.com/adafruit/Adafruit_CircuitPython_DHT),即使我能够读取数据,我也会遇到很多读取错误。举个例子,这是在几分钟的日志记录中报告的错误日志(每 2 秒读取一次):

我搜索了这个问题,发现了很多类似的案例。似乎问题在于 Adafruit 库(https://github.com/adafruit/Adafruit_CircuitPython_DHT)。根据几个人的说法,以前的库(https://github.com/adafruit/Adafruit_Python_DHT)似乎效果更好(但不是 100%),但无论如何现在它已被弃用。

任何人都知道一个图书馆可以无故障地阅读 DHT22 吗?

谢谢 !

0 投票
0 回答
19 浏览

python - 不知道如何从 CircuitPython 中的两个 JSON 数据源中提取数据

我完全被困在试图找到一种方法从以下脚本中的两个不同数据源中提取 JSON 数据。我正在尝试找到一种方法来提取 Stock 和 Crypto 报价并将其显示在我的 PyPortal 上。由于我只能找到其中一个的 API,我希望能够从每个 API 中提取数据并显示它,但是当我尝试添加第二个数据时,我不断收到错误消息,即 json_path 无效source 到 json_path 行。我正在努力寻找正确的语法来实现这一目标。有没有人有任何想法或可以提供帮助?

0 投票
0 回答
20 浏览

sockets - Adafruit Feather m4 与 featherwing esp32 问题同时接收 upd

我用 esp32 协处理器举起了羽毛。esp 通过 spi 连接,我用这个库“adafruit_esp32spi.adafruit_esp32spi_socket”创建了一个套接字。通常我会收到至少 200 个包裹,但在某些时候,它会停止工作。使用 socket.recv(1500) 我读出了缓冲区,但它总是空的。你们有没有类似的问题?你怎么修的。我喜欢circuitpython,但它看起来很糟糕,偷走了它的乐趣。

如果重要:我在 art-net 协议中接收 25fps 来控制 LED 矩阵

我缩短了代码,但问题仍然存在......

0 投票
1 回答
51 浏览

python - 将 Dijkstra 的算法从 Python3 转换为 CircuitPython (TI-Python)

我正在一个新的 TI-84 Python 版计算器上编写 Python 代码。它们使用 CircuitPython 的一个版本,对一些非常基本的功能的支持有限。

这包括缺少字典方法,例如items()values()

下面是我的 Dijkstra 算法的原始版本,随后是 TI-Python 中几乎完整的版本。我无法items()使用可行的替代方案转换最后两个实例。

TI-Python 版本:

有人可以解释一下如何重构cs = [no for no in un.items() if no[1]]print(dict(sorted(vi.items())))所以他们不需要.items()or .values()。方法?

0 投票
1 回答
153 浏览

python - 如何注册以通知 BLE 外围设备的更改?

我有一个具有单一服务和单一特征的 BLE 外围设备(Arduino nano)。该特性包含一个 8 位 uint,当开关打开时设置为 1,当开关关闭时设置为 0。该特性支持 READ 和 NOTIFY。

使用 nRF Connect 我可以看到 NOTIFY 部分正在工作,因为当开关状态发生变化时值正在更新。

但我真正想做的是使用 Raspberry Pi 作为使用 Adafruit CircuitPython BLE 的中央设备。

按照 Adafruit CircuitPython BLE 存储库中的示例,我在下面创建了一个简单的程序:

观察_ble_switch.py

switch_service.py

我遇到的问题是 read_status() 将始终返回程序第一次运行时 BLE 开关的状态。它不会收到有关 BLE 开关的后续状态更改的通知。我的想法是,我缺少的是向 BLE 开关注册以收到更改通知。我正在努力寻找示例或参考来做到这一点。

谢谢。

0 投票
1 回答
94 浏览

python - 如何使用servoKit 库和GPIO 引脚

由于库adafruit_servokit一直在阻止我分配引脚,我一直在苦苦挣扎。当我尝试这样做时:

它返回一个错误,说明:

我只需要一种方法来控制我的伺服系统并同时使用我的 GPIO 引脚。

我也愿意购买新零件。