找不到evdev2 modu

2024-06-07 20:12:02 发布

您现在位置:Python中文网/ 问答频道 /正文

在visualstudio中,我尝试将代码上传到ev3de(python中)。它确实可以工作,但只要我尝试在ev3上运行它,程序就会直接回到以前的屏幕上。当我试着运行这个程序时,有几个错误:它找不到一个叫做pyev3的模块,我从来没有听说过,它也找不到wiimote的cwiid模块。这是密码(不是我写的):

#!/usr/bin/env python3
# Drive your robot with a wii remote!
# Left motor on port B, right motor on port C,
# vertical arm on port D.
# Requires the package 'python-cwiid'.
# Make sure bluetooth is enabled in brickman
# before trying to use this. Hold 2 to go forward
# and 1 to go backward.
import sys
import os
import time

import cwiid
import pyev3

def clamp(value, lower, upper):
    return min(upper, max(value, lower))

print('press 1+2 on the wiimote now')
time.sleep(1)
w = cwiid.Wiimote()
print('connected?')
w.led = 6
w.rpt_mode = cwiid.RPT_ACC | cwiid.RPT_BTN

left_motor = pyev3.Motor(pyev3.OUTPUT_B)
left_motor.reset()
left_motor.run_mode = 'forever'
left_motor.regulation_mode = 'on'

right_motor = pyev3.Motor(pyev3.OUTPUT_C)
right_motor.reset()
right_motor.run_mode = 'forever'
right_motor.regulation_mode = 'on'

arm = pyev3.Motor(pyev3.OUTPUT_D)
arm.reset()
arm.run_mode = 'forever'
arm.regulation_mode = 'off'

target_distance = 8
top_speed = 720

left_motor.run = 1
right_motor.run = 1

last_btn_state = 0
move = 0

try:
    while True:
        state = w.state

        buttons = state['buttons']
        if buttons != last_btn_state:
            if buttons & cwiid.BTN_MINUS:
                top_speed -= 10
                print (top_speed)
            if buttons & cwiid.BTN_PLUS:
                top_speed += 10
                print (top_speed)
            if buttons & cwiid.BTN_2:
                move = 1
            elif buttons & cwiid.BTN_1:
                move = -1
            else:
                move = 0
            if buttons & cwiid.BTN_LEFT:
                arm.duty_cycle_sp = 100
                arm.run = 1
            elif buttons & cwiid.BTN_RIGHT:
                arm.duty_cycle_sp = -100
                arm.run = 1
            else:
                arm.run = 0
            print (top_speed, move)
            last_btn_state = buttons

        if move:
            acc = state['acc']
            tilt = (clamp(acc[1], 95, 145) - 120) / 25.0 # roughly between -0.5 and 0.5
            turn = top_speed * tilt
            turn = clamp(turn, -abs(top_speed), abs(top_speed))
            left_motor.pulses_per_second_sp = int(top_speed - turn) * move
            right_motor.pulses_per_second_sp = int(top_speed + turn) * move
        else:
            left_motor.pulses_per_second_sp = 0
            right_motor.pulses_per_second_sp = 0
finally:
    left_motor.run = 0
    right_motor.run = 0

在Visual Studio代码中运行此程序时,会发生以下情况:

File "c:/Users/User/Documents/fingers_crossed/drive.py", line 13, in import cwiid ModuleNotFoundError: No module named 'cwiid' PS C:\Users\User\Documents\fingers_crossed>

还有,为什么我的机器人找不到ev3dev2模块?你知道吗


Tags: runrightmoveonmodetopleftarm

热门问题