
برنامج متقدم لإعادة تعيين أزرار Wiimote
[!IMPORTANT] يتطلب هذا البرنامج برنامج تشغيل نواة وييموت محدث/مُصلح موجود هنا.
بعد التثبيت، قم بتشغيل
sudo sed -i '/ATTR{inhibited}="1"/s/^/#/' /etc/udev/rules.d/99-wiimote.rulesلإلغاء منع أحداث الأشعة تحت الحمراء ومقياس التسارع.
استنادًا إلى نظام الإدخال esperto، فإن esperto-wiimote هو مخطّط وييموت متقدم. يتميز بمعايرة دقيقة لمقياس التسارع،
وتتبع جيد للأشعة تحت الحمراء، وخيارات إعادة تعيين قوية، مع دعم المجموعات. لا يضيف أي زمن انتقال تقريبًا، يهيمن عليه بشكل أساسي واجهة برمجة تطبيقات evdev/uinput الخاصة بالنواة.
يحتوي هذا البرنامج على منفذ++ لخوارزمية تتبع نقطتين للأشعة تحت الحمراء لهيكتور مارتن algorithm، مُضمنة كمرجع.
متاح على crates.io.
يتم تحديد ملف التهيئة باستخدام --config <FILE>. إذا لم يتم تحديده،
سيقوم البرنامج بتحميل افتراضي مدمج للتحكم عن بعد بالوسائط المتاحة في src/default.yaml.
فيما يلي مثال تهيئة مع أوصاف:
# ما إذا كان سيتم الاستيلاء على الأجهزة، بحيث لا تستخدمها البرامج الأخرى
grab: false
# أمر يتم تشغيله عندما يتصل أول وييموت، كقائمة من الوسائط
# مفيد للأتمتة مثل تشغيل شريط الاستشعار
on_connect: [ "echo", "hello", "world" ]
# أمر يتم تشغيله عندما يتم قطع اتصال آخر وييموت، كقائمة من الوسائط
# مفيد للأتمتة مثل إيقاف تشغيل شريط الاستشعار
on_disconnect: [ "echo", "goodbye", "world" ]
# خيارات لفتحة جهاز الإخراج. لكل وييموت أربع فتحات متاحة، من `slot1` إلى `slot4`.
# الفتحات مفيدة لعزل مدخلات الماوس/لوحة المفاتيح/عصا التحكم
slots:
slot1:
# اسم الجهاز الافتراضي
name: "Esperto Wiimote mouse"
slot2:
name: "Esperto Wiimote keyboard"
# ما إذا كان الجهاز يجب أن يكرر تلقائيًا المفاتيح المضغوطة، قد يتجاوز هذا الخيار المدير
repeating: true
# بيانات معايرة مقياس التسارع التي تم إنشاؤها باستخدام الأمر `esperto-wiimote calibration`
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 ]
# هوامش المنطقة المعينة. الهوامش الحقيقية هي 0-4095 (بغض النظر عن دقة الشاشة)، ولكنك سترغب
# في تجاوزها لمراعاة نسبة العرض إلى الارتفاع، وعدم وصول مستشعر الأشعة تحت الحمراء إلى الهوامش بالكامل.
# سيتم تطبيق نفس القياس على جميع المحاور
screen_limits:
north: -2000
south: 6569
west: -300
east: 4395
# توسيط محور عند تمكينه
centering:
# يمكن تحديد المحاور بالاسم...
!Axis ABS_X: 2048
# أو بمعرفها الصحيح الفعلي
!CustomAxis 1: 2048
# إيقاف محور عند تعطيله
parking:
!CustomAxis 0: 4095
!Axis ABS_Y: 4095
# الأبعاد الفيزيائية لشريط الاستشعار الخاص بك
sensor_bar:
width: 19.5
cluster_width: 4.5
cluster_height: 1.0
pixel_width: 256.0
# يمكن ضبط معاملات التنعيم
smoothing:
radius: 30.0
speed: 0.15
deadzone: 8.0
# تهيئة مجموعات esperto، تحقق من https://github.com/KayJay7/esperto لمزيد من المعلومات
esperto:
modifiers:
- name: pointer
keys: [ B ]
actions:
- key: A
action:
# يجب أن تحدد الإجراءات فتحة الإخراج الخاصة بها
slot: Slot2
# يمكن تحديد المفاتيح بالاسم...
code: !Key KEY_SPACE
modified:
- modifier: pointer
action:
slot: Slot1
# أو بمعرفها الصحيح
code: !CustomKey 0x110
قائمة كاملة بمفاتيح وييموت المتاحة هي:
ABUpDownLeftRightPlusMinusHomeBtn1Btn2والمحاور:
IRAbsXIRAbsYالقائمة الكاملة لرموز الإخراج المتاحة موجودة هنا. في حال لم يتم التعرف على اسم رمز المسح الضوئي، سيظل المعرف الرقمي يعمل.
يمكن بدء معالج معايرة مقياس التسارع عن طريق تشغيل esperto-wiimote calibration.
ستحتاج إلى وضع وييموت على جوانبه الستة كما هو مطلوب، والانتظار حتى يجمع الأداة قراءات كافية. سيتم إضافة الإخراج إلى ملف التهيئة (إذا تم توفيره)، وإلا فسيتم طباعته على الشاشة. يمكن تقديم بعض التجاوزات المتقدمة كوسيطات إذا لزم الأمر.
نحن نشجع بشدة على معايرة وييموت الخاص بك قبل استخدام هذا البرنامج، وإلا فقد يكون مقياس التسارع غير موثوق به إلى حد كبير. من الأفضل المعايرة بعد أن يصل جهاز التحكم عن بعد إلى درجة حرارة التشغيل العادية. تذكر أن قراءات المستشعر ستتغير قليلاً بمرور الوقت ومع تغيرات درجة الحرارة، لكن من غير المحتمل أن تكون إعادة المعايرة ضرورية، لأن البرنامج يأخذ الانجراف في الاعتبار.