MicroPython:OSError:[Errno 19] ENODEV

3

我尝试将我的ESP32连接到一个传感器GY91(MPU9250 + BMP280)。 我正在使用这个库:https://github.com/tuupola/micropython-mpu9250

我使用了示例代码:

import utime
from machine import I2C, Pin
from mpu9250 import MPU9250

i2c = I2C(scl=Pin(22), sda=Pin(21))
sensor = MPU9250(i2c)

print("MPU9250 id: " + hex(sensor.whoami))

while True:
    print(sensor.acceleration)
    print(sensor.gyro)
    print(sensor.magnetic)
    print(sensor.temperature)

    utime.sleep_ms(1000)

我将库(mpu6500、mpu9250、ak8963)导入到我的ESP32设备中。 但是当我开始运行代码时,遇到了这个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 8, in <module>
  File "mpu9250.py", line 45, in __init__
  File "mpu6500.py", line 97, in __init__
  File "mpu6500.py", line 149, in whoami
  File "mpu6500.py", line 181, in _register_char
OSError: [Errno 19] ENODEV

我用来编写MicroPython的软件是uPyCraft,我也使用Thonny。 硬件是ESP32和传感器GY-91(我通过3根电缆连接,Vin(传感器)连接到5V,SCL连接到引脚22,SDA连接到引脚21)。
请有人帮帮我。

1
我投票关闭这个问题,因为它与软件无关,本质上是一个电子问题。 - undefined
如果你在使用Python + LEGO SPIKE PRIME时遇到了这个问题,很可能是传感器或电机连接到了错误的端口,这个错误可能并不是很有意义。 - undefined
1个回答

6
您说您使用了三根导线连接 GY-91 - VIN、SCL 和 SDA。您没有提到 GND。
为了使其正常工作,必须同时连接 GND 和 VIN。请使用另一根跳线将 GND 连接到 ESP32 上的 GND,然后再尝试一次。
[编辑:Errno 19 ENODEV 表示模块无法找到 I2C 传感器]

1
这不是软件问题。如果@Adri没有连接地线,那么就没有软件解决方案,这就是为什么他们的软件会抛出异常,指示找不到传感器的答案。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接