我正在使用VS Code用python编程EV3,但无法使红外传感器正常工作

问题描述

我正在使用的代码是:

#!/usr/bin/env python3
from ev3dev2.motor import LargeMotor,MoveSteering,OUTPUT_B,OUTPUT_C,SpeedDPS
from ev3dev2.sensor.lego import InfraredSensor
from sys import stderr
from time import sleep

motorB = LargeMotor(OUTPUT_B)
steer_pair = MoveSteering(OUTPUT_B,OUTPUT_C)
ir = InfraredSensor()

wf = 1
motorB.position = 0
steer_pair.on(steering=0,speed=SpeedDPS(265))
while motorB.position*0.612 < 640:
    if ir.proximity * 0.7 < 23:
        motorB.position = 0
    print(motorB.position*0.612,ir.proximity * 0.7,file = stderr)
    sleep(0.1)
     
steer = 28
rots = -1
steer_pair.on_for_rotations(steering=0,speed=25,rotations=0.5*wf)
steer_pair.on_for_rotations(steering=steer,speed=15,rotations=rots*wf)
steer_pair.on_for_rotations(steering=-steer,rotations=rots*wf)
steer_pair.on_for_rotations(steering=0,rotations=0.7*wf)

运行代码时,出现以下错误:

Traceback (most recent call last):
  File "/home/robot/part3/self_park_ir.py",line 9,in <module>
    ir = InfraredSensor()
  File "/usr/lib/python3/dist-packages/ev3dev2/sensor/lego.py",line 838,in __init__
    super(InfraredSensor,self).__init__(address,name_pattern,name_exact,driver_name='lego-ev3-ir',**kwargs)
  File "/usr/lib/python3/dist-packages/ev3dev2/sensor/__init__.py",line 78,in __init__
    super(Sensor,self).__init__(self.SYSTEM_CLASS_NAME,**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: InfraredSensor is not connected.

我尝试使用不同的端口和电线,因为这是我遇到的另一个问题的解决方法,但是这次不起作用。有人知道如何解决这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)