python - 我正在使用 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, speed=15, rotations=rots*wf)
steer_pair.on_for_rotations(steering=0, speed=25, 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, 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: InfraredSensor is not connected.
我尝试使用不同的端口和电线,因为这是解决我遇到的另一个问题的方法,但这次没有奏效。有人知道怎么修这个东西吗?
解决方案
我认为您应该为红外传感器分配一个输入端口,如下所示:
from ev3dev2.sensor import INPUT 1
ir = InfraredSensor(INPUT 1)
推荐阅读
- typescript - 经过 != null 检查后,我仍然得到“'string | undefined' 类型的参数不可分配给 'string' 类型的参数”
- python - tkinter 使用鼠标删除圆圈
- python - ModuleNotFoundError:Python 无法识别导入语句
- java - 在这种情况下如何使用 java-util-scanner 输入新行字符串?
- c# - 如何在 lambda 函数中订购标准 SQS 事件消息
- javascript - Phaser3 仅在全屏时具有不同的缩放行为
- swiftui - SwiftUI Picker Item 多行
- google-apps-script - 在 Google Apps 脚本中对行进行分组和折叠
- jquery - 如何在浏览器上发送 ajax POST?
- html - 如何在 FlexLayout 中使用百分比