
उन्नत Wiimote रीमैपिंग सॉफ़्टवेयर
[!IMPORTANT] इस सॉफ़्टवेयर को एक अद्यतन/ठीक किया गया Wiimote कर्नेल ड्राइवर चाहिए जो यहाँ पाया जाता है।
स्थापना के बाद, IR और एक्सेलेरोमीटर घटनाओं को अन-इनहिबिट करने के लिए
sudo sed -i '/ATTR{inhibited}="1"/s/^/#/' /etc/udev/rules.d/99-wiimote.rulesचलाएँ।
esperto इनपुट सिस्टम पर आधारित, esperto-wiimote एक उन्नत Wiimote मैपर है। इसमें सटीक एक्सेलेरोमीटर कैलिब्रेशन, अच्छा IR ट्रैकिंग, और शक्तिशाली रीमैपिंग विकल्प हैं, जिनमें कॉम्बो समर्थन शामिल है। यह वस्तुतः कोई विलंबता नहीं जोड़ता, अधिकांशतः कर्नेल के evdev/uinput API द्वारा नियंत्रित होता है।
यह प्रोग्राम हेक्टर मार्टिन के 2-बिंदु IR ट्रैकिंग एल्गोरिथ्म का एक port++ प्रस्तुत करता है, संदर्भ के लिए बंडल किया गया है।
crates.io पर उपलब्ध।
कॉन्फ़िगरेशन फ़ाइल --config <FILE> के साथ निर्दिष्ट की जाती है। यदि अनिर्दिष्ट है, तो प्रोग्राम पर उपलब्ध एक अंतर्निहित मीडिया-रिमोट डिफ़ॉल्ट लोड करेगा।
src/default.yamlयहाँ विवरण सहित एक कॉन्फ़िगरेशन उदाहरण है:
# Whether to grab the devices, so other software won't use them
grab: false
# Command to run when the first Wiimote connects, as list of arguments
# Useful for automation like powering on the sensor bar
on_connect: [ "echo", "hello", "world" ]
# Command to run when thelast Wiimote disconnected, as list of arguments
# Useful for automation like powering off the sensor bar
on_disconnect: [ "echo", "goodbye", "world" ]
# Options for the output device slot. For each Wiimote there are four available slots, from `slot1` to `slot4`.
# Slots are useful to isolate mouse/keyboard/joysticks inputs
slots:
slot1:
# Name of the wirtual device
name: "Esperto Wiimote mouse"
slot2:
name: "Esperto Wiimote keyboard"
# Whether the device should autorepeat held keys, this might get overruled by the compositor
repeating: true
# Accelerometer calibration data generated with the `esperto-wiimote calibration` command
accelerometer_calibration: [
1.0014056, -0.011690015, 0.009826779,
-0.02909683, 1.013545, 0.005751312,
-0.010004735, -0.012316463, 0.99458194,
28.481918, 33.827446, 30.468597 ]
# Margins of the mapped area. True margins are 0-4095 (regardless of screen resolution), but you will
# want to exceed those to account for the aspect ratio, and the IR sensor not reaching all the way to the margins.
# The same scaling will be applied to all axes
screen_limits:
north: -2000
south: 6569
west: -300
east: 4395
# Center an axis when it gets enabled
centering:
# Axes can be specified by name...
!Axis ABS_X: 2048
# Or by their real integer id
!CustomAxis 1: 2048
# Park an axis when it gets disabled
parking:
!CustomAxis 0: 4095
!Axis ABS_Y: 4095
# The physical dimensions of your sensorbar
sensor_bar:
width: 19.5
cluster_width: 4.5
cluster_height: 1.0
pixel_width: 256.0
# The smoothing parameters can be tuned
smoothing:
radius: 30.0
speed: 0.15
deadzone: 8.0
# esperto combos configuration, check https://github.com/KayJay7/esperto for more information
esperto:
modifiers:
- name: pointer
keys: [ B ]
actions:
- key: A
action:
# Actions must specify their output slot
slot: Slot2
# Keys can be specified by name...
code: !Key KEY_SPACE
modified:
- modifier: pointer
action:
slot: Slot1
# Or by their integer id
code: !CustomKey 0x110
उपलब्ध Wiimote कुंजियों की पूरी सूची है:
ABUpDownLeftRightPlusMinusHomeBtn1Btn2और अक्ष:
IRAbsXIRAbsYउपलब्ध आउटपुट कोड की पूरी सूची यहाँ पाई जाती है। यदि कोई स्कैनकोड नाम पहचाना नहीं जाता है, तो संख्यात्मक आईडी अभी भी काम करेगी।
एक एक्सेलेरोमीटर कैलिब्रेशन विज़ार्ड esperto-wiimote calibration चलाकर शुरू किया जा सकता है।
आपको संकेत मिलने पर Wiimote को उसके 6 पहलुओं पर रखना होगा, और उपकरण द्वारा पर्याप्त रीडिंग एकत्र करने तक प्रतीक्षा करनी होगी। आउटपुट कॉन्फ़िगरेशन फ़ाइल में जोड़ा जाएगा (यदि प्रदान किया गया है), अन्यथा स्क्रीन पर मुद्रित किया जाएगा। यदि आवश्यक हो तो कुछ उन्नत ओवरराइड तर्क के रूप में प्रदान किए जा सकते हैं।
हम इस प्रोग्राम का उपयोग करने से पहले अपने Wiimote को कैलिब्रेट करने की अत्यधिक अनुशंसा करते हैं, अन्यथा एक्सेलेरोमीटर काफी अविश्वसनीय हो सकता है। रिमोट के सामान्य ऑपरेटिंग तापमान पर पहुँचने के बाद कैलिब्रेट करना बेहतर है। याद रखें कि सेंसर रीडिंग समय के साथ और तापमान परिवर्तनों के साथ थोड़ी बहती है, लेकिन पुन: कैलिब्रेशन की संभवतः आवश्यकता नहीं होगी, क्योंकि सॉफ़्टवेयर बहाव को ध्यान में रखता है।