فهرست مطالب:
- تدارکات
- مرحله 1: رابط شتاب سنج با رزبری پای
- مرحله 2: رابط دکمه فشاری با رزبری پای
- مرحله 3: توسعه Python Script برای کنترل سری اشاره گر ماوس
- مرحله 4: توسعه Python Script برای کنترل نشانگر ماوس از طریق بلوتوث
- مرحله 5: تعبیه شتاب سنج و دکمه روی دستکش
تصویری: [ماوس پوشیدنی] کنترل کننده ماوس مبتنی بر بلوتوث برای ویندوز 10 و لینوکس: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
من یک کنترل کننده ماوس مبتنی بر بلوتوث ساختم که می تواند برای کنترل اشاره گر ماوس و انجام عملیات مربوط به ماوس رایانه ای در حال پرواز ، بدون لمس سطحی استفاده شود. مدار الکترونیکی ، که روی یک دستکش تعبیه شده است ، می تواند برای ردیابی حرکات دست از طریق شتاب سنج مورد استفاده قرار گیرد و می تواند به حرکت اشاره گر ماوس تبدیل شود. این دستگاه همچنین دارای دکمه ای است که کلیک چپ را تکرار می کند. دستگاه را می توان به صورت سری به رایانه (از طریق USB) یا بی سیم از طریق اتصال بلوتوث متصل کرد. بلوتوث یک ارتباط بی سیم قوی و جهانی بین دستگاه میزبان و این ماوس پوشیدنی فراهم می کند. از آنجا که بلوتوث به طور گسترده در دسترس است و تقریباً با همه لپ تاپ های شخصی تعبیه شده است ، موارد استفاده از چنین دستگاه های پوشیدنی گسترده است. استفاده از Raspberry Pi ، که یک پلت فرم توسعه متداول برای پروژه های مختلف است ، ارتباط سنسورهای مختلف و توسعه چنین دستگاهی آسان و مقیاس پذیر است. این دستکش را می توان با هر نوع پوشیدنی دیگری جایگزین کرد تا کاربرد آن گسترده تر شود.
به عنوان یک اقدام احتیاطی در برابر COVID-19 ، توصیه می شود از دست زدن به سطوحی که بین افراد مختلف به اشتراک گذاشته می شود اجتناب کنید ، و یک لپ تاپ با صفحه لمسی یا ماوس می تواند از جمله سطوح رایج باشد. استفاده از چنین وسیله پوشیدنی به حفظ بهداشت و ضدعفونی سطوح متداول کمک می کند:)
تدارکات
- رزبری پای 3 مدل B V1.2
- Breakout شتاب سنج سه محوره SparkFun - MMA8452Q
- نر به زن جهنده وایر
- یک دستکش
- نوار چسب
- قیچی
- کابل میکرو USB
- کابل HDMI (برای اشکال زدایی از طریق رزبری پای)
مرحله 1: رابط شتاب سنج با رزبری پای
من از شتاب سنج MMA8542Q سه محوره از Sparkfun استفاده کردم که از پروتکل ارتباطی I2C برای صحبت با پین های Raspberry Pi GPIO و ارسال داده های محورها استفاده می کند. این سنسور حالت های مختلف عملکرد را با سرعت داده های قابل تنظیم ، حالت خواب ، محدوده شتاب ، حالت فیلتر و غیره ارائه می دهد. من متوجه شدم کد Pibits در پیکربندی اولیه سنسور و آزمایش آن با حرکات دست من بسیار مفید است. بهتر است ابتدا سنسور را بر روی یک سطح صاف قرار دهید و با رعایت مقادیر خام سنسور ، شیب قطعی ایجاد کنید. این امر به ویژه در درک نحوه واکنش این حسگر با حرکات مختلف دست و نحوه تعیین آستانه برای برنامه ما مفید است. هنگامی که شتاب سنج با موفقیت ارتباط برقرار کرد ، می توانید داده های محورهای خام را روی صفحه پایانه پای مشاهده کنید.
مرحله 2: رابط دکمه فشاری با رزبری پای
در این دستگاه پوشیدنی ، با دکمه ای که می تواند به عنوان دکمه سمت چپ ماوس کار کند ، ارتباط برقرار کردم تا بتوانم روی نمادهای روی صفحه کلیک کنم. سپس 2 انتهای دکمه به 2 پین GPIO Pi متصل می شوند. یکی از پین ها خروجی بالایی دارد و پین دیگر این مقدار را می خواند. هنگامی که دکمه را فشار می دهید ، مدار بسته می شود و پین ورودی قادر به خواندن یک مقدار منطقی بالا است ، که سپس توسط اسکریپتی که نوشتم برای شبیه سازی کلیک چپ ماوس پردازش می شود. به دلیل عدم وجود آهن لحیم کاری ، از نوار چسب برای اتصال جامپرها با دکمه استفاده کردم.
مرحله 3: توسعه Python Script برای کنترل سری اشاره گر ماوس
من از کتابخانه Pyautogui Python برای کنترل اشاره گر ماوس استفاده کردم. دلیل استفاده از این کتابخانه این بود که هم در لینوکس و هم در پلتفرم ویندوز کار می کند. به منظور کنترل اشاره گر ماوس روی رزبری پای من ، ابتدا Pi خود را به یک صفحه نمایش متصل کردم. سپس ، از API های زیر ارائه شده توسط کتابخانه برای کنترل اشاره گر ماوس استفاده کردم:
- pyautogui.move (0 ، 200 ، 2) # ماوس را در عرض 2 ثانیه 200 پیکسل به سمت پایین حرکت می دهد
- pyautogui.click () # ماوس را کلیک کنید
به منظور فیلتر کردن داده های خطای ناشی از شتاب سنج ، از میانگین یابی و سایر روشهای فیلترینگ استفاده کردم که به راحتی از طریق کد پیوست قابل درک است. API pyautogui.move (0 ، y) به گونه ای مورد استفاده قرار گرفت که نشانگر ماوس می تواند همزمان بالا یا پایین یا چپ-راست برود. این به این دلیل است که شتاب سنج محورها را در جهت X ، Y و Z گزارش می کند ، اما API فقط 2 آرگومان ، محور X و Y را می گیرد. بنابراین ، این روش برای شتاب سنج من و نقشه برداری از حرکات روی صفحه بسیار مناسب بود.
مرحله 4: توسعه Python Script برای کنترل نشانگر ماوس از طریق بلوتوث
این بخش یک برنامه کاربردی پیشرفته است که در آن هر لپ تاپ دارای قابلیت بلوتوث می تواند با Raspberry Pi در یک مدل ارتباطی سرور و مشتری ارتباط برقرار کند و داده های مختصات ماوس را به صورت بی سیم منتقل کند. به منظور راه اندازی یک لپ تاپ 64 بیتی ویندوز 10 برای ارتباط بلوتوث ، باید مراحل زیر را دنبال کنید:
ویندوز 10:
- یک پورت بلوتوث COM ورودی ایجاد کنید.
- بلوتوث Pi را با بلوتوث لپ تاپ جفت کنید و Pi را قابل کشف کنید.
- Python را روی ویندوز نصب کنید.
- pip را روی ویندوز نصب کنید. Pip برای نصب کتابخانه ها در دستگاه لینوکس یا ویندوز استفاده می شود.
- pyautogui را در Windows با استفاده از: pip install pyautogui نصب کنید
- پس از نصب pyautogui بر روی دستگاه ، Pybluez را در Windows با استفاده از دستور زیر در ترمینال Windows با استفاده از: pip install PyBluez-win10 نصب کنید. PyBluez ارتباط بلوتوث را در رایانه های شخصی ویندوز و لینوکس فعال می کند.
-
برای توسعه برنامه روی لپ تاپ Windows 10 ، ما باید Microsoft Visual Studio (15-20 گیگابایت فضای مورد نیاز) و ابزارهای ساخت آن را نصب کنیم. بنابراین ، همراه با PyBluez ، ما باید دستورالعمل های زیر را دنبال کنیم ،
- "Visual Studio Installer" را بارگیری و اجرا کنید:
-
"Visual Studio Build Tools 2017" را نصب کنید ، "Visual C ++ build tools" و "Universal Windows Platform tools build" را علامت بزنید.
- git clone
- سی دی پیبلوئز
python setup.py install
- اگر دستورالعمل های بالا به درستی رعایت شود ، اجرای پایتون در ترمینال ویندوز و وارد کردن ماژول pyautogui و بلوتوث مطابق تصویر بالا باید بدون خطا کار کند.
- در کتابخانه pybluez که روی دستگاه Windows نصب شده است ، به آدرس: pybluez-master / example / simple / rfcomm-server.py بروید و با استفاده از python rfcomm-server.py اجرا کنید. اگر ترمینال بدون خطا به حالت انتظار می رود ، برای تنظیم بلوتوث روی Pi به قسمت زیر بروید. در صورت وجود خطا در نصب pybluez ، برای اشکال زدایی به مسائل GitHub مراجعه کنید.
Raspbian در Raspberry Pi:
- PyBluez را روی Pi نصب کنید
- مثال سرور را روی ویندوز اجرا کنید. سپس ، در Pi ، به pybluez-master / samples / simple / rfcomm-client.py بروید و اجرا کنید. اگر دو دستگاه شروع به برقراری ارتباط کرده اند ، اکنون بلوتوث روی هر دو دستگاه راه اندازی شده است. برای درک بیشتر نحوه عملکرد سوکت با پایتون ، به این پیوند از MIT مراجعه کنید.
برخی از تجزیه و تحلیل داده های اضافی برای ارسال داده های محورها از Pi به رایانه مورد نیاز است ، زیرا داده ها به صورت بایت ارسال می شوند. برای اطلاعات بیشتر در مورد ارتباط داده سرویس گیرنده و سرور به کد پیوست مراجعه کنید.
مرحله 5: تعبیه شتاب سنج و دکمه روی دستکش
هنگامی که شتاب سنج به خوبی به هم متصل می شود ، سیستم اسکلت چیزی شبیه به تصویر اول در این مرحله به نظر می رسد.
از آنجا که سطح دستکش صاف نیست ، من از یک کارت اعتباری ساختگی استفاده می کردم که هر از گاهی به صندوق پستی من می آمد. طبق تصویر دوم این مرحله ، من کارت اعتباری ساختگی را در سطح بالای دستکش با نوار چسب وصل کردم. روی کارت ، شتاب سنج خود را وصل کردم. این تنظیمات آنقدر قوی بود که شتاب سنج من را ثابت نگه داشت و بتواند حرکات من را به طور دقیق ردیابی کند.
توصیه شده:
تغییر صفحه رقص L-tek برای نظرسنجی در 1000Hz در ویندوز و لینوکس: 9 مرحله
تغییر صفحه رقص L-tek برای نظرسنجی در 1000Hz در ویندوز و لینوکس: چرا این کار را می کنید؟ اگر تا به حال روی یک آهنگ 125 BPM به نمودار رفته اید ، ممکن است تعجب کنید که این بوی اسپایکی چیست؟ چرا زمان بندی به اسلات های گسسته تقسیم می شود؟ ITG و DDR دارای پنجره های زمان بندی فوق العاده محکمی هستند و با این
نقشه برداری کنترل کننده بازی کامپیوتر (لینوکس و ویندوز): 5 مرحله
PC Game Controller Mapping (لینوکس و ویندوز): اگر در حال شروع بازی در رایانه شخصی هستید ، ممکن است چند مرحله برای رسیدن به آنجا داشته باشید. امروز ، من نحوه استفاده از کنترلر بازی USB را حتی با قدیمی ترین بازی های رایانه ای به صورت رایگان به شما نشان خواهم داد. تکنیک
کنترل کننده بازی مبتنی بر آردوینو - کنترل کننده بازی Arduino PS2 - بازی Tekken With DIY Arduino Gamepad: 7 مرحله
کنترل کننده بازی مبتنی بر آردوینو | کنترل کننده بازی Arduino PS2 | بازی Tekken With DIY Arduino Gamepad: سلام بچه ها ، بازی کردن همیشه سرگرم کننده است اما بازی با کنترلر بازی سفارشی DIY خود سرگرم کننده تر است. بنابراین ما در این دستورالعمل یک کنترلر بازی با استفاده از arduino pro micro ایجاد می کنیم
ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله
ESP8266 RGB LED STRIP WIFI کنترل | NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi | RGB LED STRIP Smartphone Control: سلام بچه ها در این آموزش می آموزیم که چگونه از nodemcu یا esp8266 به عنوان ریموت IR برای کنترل نوار LED RGB استفاده کنید و Nodemcu توسط تلفن هوشمند از طریق وای فای کنترل می شود. بنابراین اساساً می توانید RGB LED STRIP را با تلفن هوشمند خود کنترل کنید
مینیاتور تقویت کننده قفل پوشیدنی (و سیستم سونار برای پوشیدنی ها و غیره): 7 مرحله
مینیاتور تقویت کننده قفل پوشیدنی (و سیستم سونار برای پوشیدنی ها و غیره): یک تقویت کننده قفل مینیاتوری ارزان قیمت بسازید که می تواند در قاب عینک تعبیه شود و یک سیستم دید سونار برای نابینایان ایجاد کند یا یک سونوگرافی ساده دستگاهی که به طور مداوم بر قلب شما نظارت می کند و از یادگیری ماشینی انسان برای هشدار دادن به