- ev3dev 版本: 4.14.117-ev3dev-2.3.5-ev3
- ev3dev-lang-python 版本:所有输出
dpkg-query -l {python3,micropython}-ev3dev*
:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-======================-================-================-=================================================
ii micropython-ev3dev2 2.1.0 all Python language bindings for ev3dev for MicroPyth
ii python3-ev3dev 1.2.0 all Python language bindings for ev3dev
ii python3-ev3dev2 2.1.0 all Python language bindings for ev3dev
问题
我正在尝试以某种方式连接旧版本的HiTechnic NXT Infrared Seeker,部件号 MS1042。我已经能够在这个模块上找到非常少的信息。
背景信息:设备浏览器 -> 传感器显示仅连接了一个传感器(乐高超声波传感器),当此 IR 导引头完全且安全地插入时。设备浏览器 -> 端口 -> ev3-ports:in1(连接超声波传感器的位置) 将 ev3-input-port 显示为驱动程序名称,将 ev3-uart 显示为状态。设备浏览器 -> 端口 -> ev3-ports:in2 (此 IR 搜索器连接的位置)显示 ev3-input-port 作为驱动程序名称,nxt-i2c 作为状态,查看新IR 搜索器的文档似乎是正确的。
代码:
#!/usr/bin/env python3
###############
### IMPORTS ###
###############
from ev3dev2.sensor import Sensor
from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_B, SpeedPercent, MoveTank
from ev3dev2.sensor import INPUT_1, INPUT_2, INPUT_3, INPUT_4, Sensor
from ev3dev2.sensor.lego import UltrasonicSensor
from ev3dev2.led import Leds
left_motor = LargeMotor(OUTPUT_A)
right_motor = LargeMotor(OUTPUT_B)
us = UltrasonicSensor(INPUT_1)
ir = Sensor(INPUT_2, driver_name='ht-nxt-ir-seek-v2')
ir.mode = 'DC'
us.MODE_US_DIST_CM = 'US_DIST_CM'
while True:
print(ir.value(0))
# print( str(us.value()) + " mm")
错误:
Traceback (most recent call last):
File "/home/robot/Project_3/main.py", line 16, in <module>
ir = Sensor(INPUT_2, driver_name='ht-nxt-ir-seek-v2')
File "/usr/lib/python3/dist-packages/ev3dev2/sensor/__init__.py", line 78, in __init__
super(Sensor, self).__init__(self.SYSTEM_CLASS_NAME, name_pattern, name_exact, **kwargs)
File "/usr/lib/python3/dist-packages/ev3dev2/__init__.py", line 223, in __init__
chain_exception(DeviceNotFound("%s is not connected." % self), None)
File "/usr/lib/python3/dist-packages/ev3dev2/__init__.py", line 54, in chain_exception
raise exception from cause
ev3dev2.DeviceNotFound: Sensor(ev3-ports:in2) is not connected.
'ht-nxt-ir-seek-v2' 的变体,例如 v1,删除 v2,seek -> seeker,对我没有任何作用。从根本上说,它无法将设备识别为已连接。我不知道从这里去哪里。编写我自己的驱动程序似乎令人生畏,考虑到该设备以前已被广泛使用,希望没有必要——我只是不确定如何找到这样的驱动程序,或将其集成到 ev3dev/micropython 中。
编辑:这似乎类似于ev3dev GitHub 页面上讨论的关于 UART 而不是 i2c 的问题。但是,我的专业知识还不够先进,无法真正了解正在发生的事情。
编辑 2:您可以在第一次编辑中链接的 GitHub 问题末尾看到此问题的解决方案。