问题标签 [micropython]

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 回答
634 浏览

accelerometer - ESP8266 + Micropython:为什么我通过定期 i2c 读取始终获得相同的值?

我正在使用在 Digistump Oak 上运行的 MicroPython 编写一些简单的代码这基本上是一个 ESP8266 分线板。我试图了解通过 i2c 定期读取传感器时看到的行为。

以下代码(读取ACCEL_XOUT_HACCEL_XOUT_L寄存器的值)工作得很好:

(该打印语句只是执行二进制补码的转换。)

正如预期的那样,当我移动 imu 时,它会从加速度计中打印出几乎实时变化的值。

但是,如果我在循环中引入延迟,例如...

...我看到一些非常奇怪的行为。在 imu 改变方向后,i2c 读取操作返回的值在多次迭代中继续保持不变。我不知道这里发生了什么:从 imu 上的寄存器读取的 i2c 读取操作,根据文档以采样率更新,默认配置为 1Khz。我在代码或数据路径中看不到任何可能以某种方式锁定或缓存这些值的内容。

这是关于加速度计寄存器的文档,可在寄存器映射和描述文档中找到:

这些寄存器存储最新的加速度计测量值。加速度计测量值以寄存器 25 中定义的采样率写入这些寄存器。

加速度计测量寄存器以及温度测量寄存器、陀螺仪测量寄存器和外部传感器数据寄存器由两组寄存器组成:内部寄存器组和面向用户的读取寄存器组。加速度计传感器内部寄存器集中的数据始终以采样率更新。同时,只要串行接口空闲,面向用户的读取寄存器组就会复制内部寄存器组的数据值。

由于我在读取调用之间处于睡眠状态,因此我很确定 i2c 串行接口在任何定义下都是空闲的,而且我没有看到任何与此行为相关的东西。

你对这里可能发生的事情有什么建议吗?

0 投票
1 回答
142 浏览

python - 解码十六进制返回(一些)意外值

我正在使用 Pymakr 从 SiPy 板上执行蓝牙扫描。控制台在解码返回的广告时返回意外的值。

广告返回:

在解码 [4] 上的“数据”时,我得到:

我很难理解最后两个字符。为什么是口音?为什么大写L?这段数据字符串是怎么回事:

对我来说看起来像是坏的十六进制。

我正在使用 MicroPython,所以我的解决方法有点有限。

0 投票
1 回答
412 浏览

python - 这个宏是如何工作的?

这个微控制器的 Python 实现中,他们使用 C 宏,如下所示:

和:

和:

我的问题是:MP_QSTR_mem16似乎从未定义!

那么,这是如何工作的呢?

0 投票
2 回答
4561 浏览

python - Micropython HC-SR04 - ESP8266

我正在尝试让 NodeMCU ESP8266 开发板与 HC SR04 超声波传感器一起使用。我不断得到“0”的读数,这不是现实。

我将传感器的接地和 5v 引脚连接到 5v 电源,以及 GPIO 引脚 4 和 5 上的 Echo 和 Trigger 引脚。理论上,一切都应该正常工作,但我只是一直得到“0”。也许我的代码有问题?见下文:

请帮忙。

0 投票
4 回答
7436 浏览

iot - main.py 崩溃后如何重置 ESP8266 MicroPython?

我有一个运行 MicroPython 的 NodeMCU ESP8266 板。我在我的 ESP8266 上运行一个网络服务器。这是我基于其中一个板的第一个物联网项目。

下面是代码片段。

这是在main.py. 时不时地,某些东西会导致代码崩溃(可能是基于时间和请求的)。当main.py退出时,无论出于何种原因,我都会回到 python CLI。

我希望董事会在发生这种情况时重置(如果没有更好的方法)。

重启/重置 ESP8266 的最佳方法是什么?

0 投票
2 回答
1175 浏览

esp8266 - 使用 esp8266 的 micropython 二进制映像预编译 main.py

默认情况下,micropython 映像中有 boot.py 可用。

我在 python 模块 main.py 中测试了一个代码。我想做以下事情

  1. 我想编译一个镜像,这样可以更容易地将它刷到 10 多个设备上,而且我不必启动 webrepl。

  2. 有没有办法停止显示 micropython 版本号等的启动消息?

我尝试了以下操作:显然它们已经被激活: https ://forum.micropython.org/viewtopic.php?t=2334

我使用以下内容成功编译了图像: https ://cdn-learn.adafruit.com/downloads/pdf/building-and-running-micropython-on-the-esp8266.pdf

问题:

如何使用 main.py 创建图像,这个文件应该放在这个文件夹 /home/vagrant/micropython/esp8266 的哪里?

0 投票
1 回答
278 浏览

python - if语句条件内的while循环

我真的很难完成代码的最后一部分。

这里有一些背景。这段代码通过超声波传感器寻找它前面的物体,如果有,它通过 http_get 将其记录到互联网数据库中,如果没有物体,它只是每 2 秒查找一次。

我把所有东西都打蜡了,除非有人把东西放在那里很长时间。看看代码,它会很有意义。(这只是代码的一部分)。

所以现在,如您所见,如果有人将对象留在那里不到 5 秒,那只会记录一次(对象的数量至关重要)。需要注意的是,如果有人忘记了那里的对象,或者将它放在那里 10 秒,它会记录两次,这是我们无法做到的。所以,我有点需要这样的东西,但在语法上是正确的。

我希望这对你们来说足够清楚。

让我知道是否需要在某处进行澄清。

0 投票
2 回答
389 浏览

http-post - Micropython ESP8266 Twilio 401 未经授权

我在 ESP8266 上运行 MicroPython。该代码应向 Twilio 的 restAPI 发送 SMS HTTP POST 请求。我试图让它与 urequests 一起工作。但我不断收到 401 UNAUTHORIZED 回复。请一些建议。编码:

0 投票
1 回答
176 浏览

python - BBC Micro Bit 挂在代码上

我正在尝试在 BBC micro 位上读取包含 micropython 中的海龟机器人指令的文件,但是当我刷新代码并添加正确的文件时,它只是挂起并且似乎没有做任何事情。它在我机器上的 python 中运行良好。micropython 是否缺少我正在做但没有告诉我的事情?

这是相关的代码。在此函数下定义了一个类,但我没有包含该代码,因为它与该位无关。

0 投票
2 回答
215 浏览

wifi - 连接WLAN设备的距离

如何使用节点 esp8266 中的 micropython 获取连接到节点 esp8266 设备的 wi-fi 的 WLAN 设备的距离?