Как отправить в игру сигнал рулевого колеса / джойстика с Python? - PullRequest
2 голосов
/ 09 июля 2020

Мне нужно отправить серию входных данных рулевого колеса: (рулевое колесо, акселератор, тормоз), которое рассчитывается в модели машинного обучения, в игру, чтобы реализовать самостоятельное вождение. Я уже использовал pynput для отправки ключей и управления автомобилем с помощью ['w', 'a', 's', 'd'], но мне нужен более плавный способ управления автомобилем, поэтому Ищу способ эмулировать джойстик в python. Таким образом, я могу отправлять аналоговый ввод для рулевого колеса и акселератора.

Ранее я использовал этот тип кода для ввода элементов управления

from pynput.keyboard import Key, Controller
import time

keyboard = Controller()
keyboard.press('w')
time.sleep(1)
keyboard.release('w')

1 Ответ

0 голосов
/ 25 июля 2020

Я использовал Vjoy , чтобы имитировать радость и создать виртуальный джойстик; использовал FreeP ie в качестве приложения-фидера и написал сценарий Python для отправки входных значений в Vjoy для каждой оси. Мой сценарий Vjoy: - В настоящее время я использую движение мыши для передачи значений по осям X и Y, но вы можете использовать их любым способом.

from System import Int16

if starting:
    system.setThreadTiming(TimingTypes.HighresSystemTimer)
    system.threadExecutionInterval = 5
    x = 0
    y = 0
    max = 1
    min = -max

    
    vjoy = vJoy[0] # controlling Vjoy Device 0
    sensX = 50
    sensY = 50

y -= mouse.deltaY * sensY
x += mouse.deltaX * sensX

if x > max:
    x = max
elif x < min:
    x = min

if y > max:
    y = max
elif y < min:
    y = min

vjoy.x = x
vjoy.y = y
diagnostics.watch(vJoy[0].x)
diagnostics.watch(vJoy[0].y)

Для самостоятельного вождения автомобиля вы может написать другой сценарий python, который передает входные значения (для оси x и оси y) в этот сценарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...