دستگاه های رابط انسانی در وب: چند مثال سریع

اتصال به دستگاه های غیر معمول از برنامه شما.

جو مدلی
Joe Medley
مت رینولدز
Matt Reynolds

WebHID API چیست؟

بسیاری از دستگاه‌های رابط انسانی (HID) بسیار جدید، قدیمی یا غیر معمول هستند که توسط درایورهای دستگاه سیستم قابل دسترسی نیستند. WebHID API این مشکل را با ارائه راهی برای پیاده سازی منطق خاص دستگاه در جاوا اسکریپت حل می کند.

موارد استفاده پیشنهادی برای WebHID API

یک HID ورودی را از انسان دریافت می کند یا خروجی را برای آنها فراهم می کند. نمونه‌هایی از دستگاه‌ها شامل صفحه‌کلید، دستگاه‌های اشاره‌گر (موش، صفحه‌نمایش لمسی و غیره) و گیم‌پد می‌شوند. پروتکل HID امکان دسترسی به این دستگاه ها را در رایانه های رومیزی با استفاده از درایورهای سیستم عامل ممکن می کند. پلتفرم وب با تکیه بر این درایورها از HID ها پشتیبانی می کند.

ناتوانی در دسترسی به دستگاه‌های HID غیرمعمول در هنگام پشتیبانی از گیم‌پد دردناک است. گیم‌پدهای طراحی‌شده برای رایانه شخصی اغلب از HID برای ورودی‌های گیم‌پد (دکمه‌ها، جوی استیک‌ها، ماشه‌ها) و خروجی‌ها (LED، rumble) استفاده می‌کنند. با این حال، ورودی ها و خروجی های گیم پد به خوبی استاندارد نشده اند و مرورگرهای وب اغلب به منطق سفارشی برای دستگاه های خاص نیاز دارند. این ناپایدار است و منجر به پشتیبانی ضعیف از دم بلند دستگاه های قدیمی و غیر معمول می شود. همچنین باعث می‌شود که مرورگر به ویژگی‌های موجود در رفتار دستگاه‌های خاص وابسته شود.

دمو، دمو، دمو

اگر کنجکاو هستید که چگونه هر یک از این نمونه ها کار می کنند، کد منبع همه آنها در GitHub موجود است. یک نمونه کد barebones در توضیح دهنده وجود دارد .

نور پس زمینه صفحه کلید مک بوک پرو

بزرگترین مانع برای آزمایش هر یک از این دموها عدم دسترسی به دستگاه است. خوشبختانه، اگر مک بوک پرو با نوار لمسی دارید، نیازی به خرید چیزی ندارید. این نسخه آزمایشی به شما امکان می دهد از API مستقیماً از لپ تاپ خود استفاده کنید. همچنین نشان می‌دهد که چگونه می‌توان از WebHID برای باز کردن قفل عملکرد دستگاه‌های داخلی، نه فقط لوازم جانبی، استفاده کرد.

نویسنده: FWeinb
نسخه ی نمایشی/منبع: نور پس زمینه صفحه کلید

کنترلرهای بازی

کنترلر بی سیم پلی استیشن 4

بعدی چیزی است که احتمال دارد کمتر از شما داشته باشید. سونی DualShock 4 یک کنترلر بی سیم برای کنسول های بازی پلی استیشن 4 است.

نسخه ی نمایشی DualShock 4 از WebHID برای دریافت گزارش های ورودی خام از DualShock 4 استفاده می کند و یک API سطح بالا برای دسترسی به ورودی های ژیروسکوپ، شتاب سنج، پد لمسی، دکمه و انگشت شست کنترلر ارائه می دهد. همچنین از rumble و تنظیم رنگ LED RGB موجود در کنترلر پشتیبانی می کند.

نویسنده: TheBITLINK
نسخه ی نمایشی: نسخه ی نمایشی DualShock 4 ( منبع )

کنترلرهای Nintendo Switch Joy-Con

با استفاده از کنترلر Nintendo Switch Joy-Con در جیب شلوار، بازی آفلاین Chrome dino 🦖 را بازی کنید. این نسخه ی نمایشی توسط Joy-Con WebHID ، یک درایور WebHID برای کنترلرهای Nintendo Switch Joy-Con ارائه شده است.

نویسنده: توماس اشتاینر
نسخه آزمایشی: Chrome Dino WebHID ( منبع آزمایشی ، منبع درایور )

نوار BlinkStick

BlinkStick Strip یک نوار نوری سازگار با HID با 8 LED RGB است. نسخه ی نمایشی به کاربر اجازه می دهد تا از بین چندین الگوی چشمک زدن از جمله تعقیب، چشمک زدن و اسکنر لارسون (معروف به Cylon) انتخاب کند.

نویسنده: رباط ویلیامز
نسخه ی نمایشی: blinkstick-strip ( منبع )

این دمو چه کاری انجام می دهد؟ (منتظر آن باشید.) چشمک می زند. در واقع این سه نسخه نمایشی هستند که از چراغ اعلان USB (1) چشمک زن استفاده می کنند.

blink(1) ساده و مستند است، که آن را به گزینه ای عالی برای شروع HID تبدیل می کند.

نویسنده: تاد ای کرت
دموها: چشمک زدن (1) ( منبع )

سپاسگزاریها

از Pete LePage و Kayce Basques برای بررسی این مقاله سپاسگزاریم.

عکس از Ugur Akdemir در Unsplash