通过数字输入模拟操纵杆输入

lin*_*scl 4 arch-linux x11 arduino joystick

我有一个 arduino,它给我一个电位计(300-600)的数字,设备 /dev/ttyACM0 波特率 9600。

我想将这些数字用作 1 轴操纵杆。

我的系统是 archlinux 和 X-Displaymanager。

lin*_*scl 5

我已经用 python 和 uinput 完成了:

#!/bin/env python2

import serial
import time
import uinput
ser = serial.Serial('/dev/ttyACM0', 9600)
events = (uinput.BTN_JOYSTICK, uinput.ABS_X + (0, 255, 0, 0))
device = uinput.Device(events)
device.emit(uinput.ABS_X, 128, syn=False)
while True:
    value = ser.readline()
    valuecorrect = value.strip()
    valuecorrect = int(valuecorrect)/4
    print valuecorrect
    device.emit(uinput.ABS_X, int(valuecorrect))
Run Code Online (Sandbox Code Playgroud)

对于校准,我使用 jstest-gtk。