فهرست مطالب:

تفنگ سبک Wiimote دقیق برای تمشک PI: 9 مرحله (همراه با تصاویر)
تفنگ سبک Wiimote دقیق برای تمشک PI: 9 مرحله (همراه با تصاویر)

تصویری: تفنگ سبک Wiimote دقیق برای تمشک PI: 9 مرحله (همراه با تصاویر)

تصویری: تفنگ سبک Wiimote دقیق برای تمشک PI: 9 مرحله (همراه با تصاویر)
تصویری: تفنگ لگویی پی ۹۰ LEGO P90 Gun 2024, جولای
Anonim
تفنگ سبک Wiimote دقیق برای Raspberry PI
تفنگ سبک Wiimote دقیق برای Raspberry PI
تفنگ سبک Wiimote دقیق برای Raspberry PI
تفنگ سبک Wiimote دقیق برای Raspberry PI

به طور معمول ، Wii Remote که به عنوان تفنگ سبک استفاده می شود ، برای بازی های یکپارچهسازی با سیستمعامل مانند NES Duck Hunt دقیق نیست ، زیرا Wii Remote در واقع نقطه ای از تلویزیون را که به آن اشاره شده است ، انتخاب نمی کند. نمی شود! ریموت Wii دارای یک دوربین مادون قرمز در جلو است که خط LED های مادون قرمز را در نوار سنسور می بیند ، اما نمی تواند بداند که تلویزیون (یا در چه جهت) از نوار فاصله دارد یا تلویزیون چقدر بزرگ است. شبیه سازها و بازی ها در این مورد با نشان دادن موهای زائد یا نشانگر هدف گیری دیگر کار می کنند ، اما این یک تجربه دقیق شلیک به هدف نیست.

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

سخت افزار این پروژه ساده است. چهار LED مادون قرمز در محفظه های ساده چاپ سه بعدی وجود دارد که می توان آنها را به بالا و پایین محفظه تلویزیون چسبانده و به شارژر USB متصل کرد. به علاوه ، در صورت نداشتن محفظه تفنگ Wii ، من یک دسته ساده چاپ سه بعدی و نماهایی دارم که می توانید به Wii Remote وصل کنید (هرچند برای صرفه جویی در پلاستیک ، من خودم را ترکیبی بین چوب و پلاستیک چاپ سه بعدی کردم).

ساخت نرم افزار مبتنی بر پایتون سخت تر از سخت افزار بود و در حال حاضر فقط لینوکس است. این LED ها و Wii Remote را کالیبره می کند و سپس از محاسبات هموگرافی برای شبیه سازی ماوس مطلق استفاده می کند که در شبیه ساز NES fceumm Retroarch (و احتمالاً برخی شبیه سازهای دیگر) در Raspberry PI 3B+من به خوبی کار می کند.

تدارکات

  • از راه دور Wii
  • چهار LED مادون قرمز 940 نانومتری 5 میلی متری
  • کابل USB قدیمی با پلاگین نوع A کار می کند
  • Raspberry PI 3 یا سایر رایانه های لینوکس با پشتیبانی بلوتوث
  • چاپگر سه بعدی و فیلامنت (اختیاری)

مرحله 1: زنجیره LED مادون قرمز

زنجیره LED مادون قرمز
زنجیره LED مادون قرمز
زنجیره LED مادون قرمز
زنجیره LED مادون قرمز

یک کابل USB قدیمی با سوکت نر نوع A تهیه کنید (معمولاً کابل های شارژ تلفن من در انتهای میکرو USB خراب می شوند ، بنابراین من کابلهای با سوکت نر نوع A کارکرده دارم). در واقع ، اگر کابل های داده باشند تا زمانی که خطوط برق کار می کنند خراب است. انتهای دیگر را قطع کنید. از نظر تئوری کابل قرمز باید +5V و رنگ مشکی زمین باشد ، اما آن را با مولتی متر بررسی کنید (آن را به شارژر وصل کنید و سپس ولتاژ بین سیم قرمز و سیاه را بررسی کنید).

از آنجا که LED های مادون قرمز حدود 1.2-1.3 ولت ولتاژ دارند ، من فقط چهار مورد از آنها را به صورت حلقه سری به کابل USB لحیم کردم. مطمئن شوید که سیم هایی که لحیم کرده اید به اندازه کافی بلند هستند تا بتوانید LED ها را در پایین تلویزیون و دو عدد را در بالا قرار دهید ، با مقدار مناسب فضای افقی بین LED ها (حدود 10 اینچ یا بیشتر).

دقیق تر برای ایجاد حلقه LED:

  • طرف منفی (کاتد ، پای کوتاهتر ، با لبه صاف) اولین LED را به سیم USB +5V وصل کنید
  • طرف مثبت LED اول (آند ، پایه بلندتر ، با لبه گرد) را به سمت منفی LED دوم وصل کنید
  • تکرار کنید تا LED دوم به سوم و سوم به چهارم متصل شود
  • سپس جنبه مثبت چهارمین LED را با سیم به سیم USB متصل کنید.

برای تمیزتر ساختن وسایل ، هنگام انجام اتصالات می توانید از لوله های کوچک کننده حرارتی استفاده کنید. در غیر این صورت ، از نوار برقی برای جلوگیری از شورت استفاده کنید.

مطمئن شوید که اتصال کوتاه ندارید. سپس آن را به شارژر USB وصل کرده و با مشاهده LED ها با دوربین تلفن ، بررسی کنید که نور مادون قرمز ساطع می کند. (بسیاری از دوربین های تلفن به مادون قرمز حساس هستند.)

مرحله 2: به تلویزیون وصل کنید

به تلویزیون وصل کنید
به تلویزیون وصل کنید
به تلویزیون وصل کنید
به تلویزیون وصل کنید
به تلویزیون وصل کنید
به تلویزیون وصل کنید

اکنون ، دو عدد از LED ها را در قسمت زیرین تلویزیون و دو عدد را در قسمت بالایی تلویزیون وصل کنید. فاصله افقی باید حدود ده اینچ باشد. اگر بیش از حد باشد ، ممکن است با دید دوربین Wii Remote در ضبط همه آنها مشکل داشته باشید. اما اگر آنها بیش از حد نزدیک باشند ، شهود هندسی من می گوید که دقت کمتری خواهید داشت.

برای آزمایش ، LED ها را با نوار برقی چسباندم ، و سپس برای اتصال دائمی ، چهار کلیپ LED مرتب و منظم را طراحی و چاپ کردم (فایلها در اینجا هستند) که آنها را به شدت به تلویزیون چسباندم. شما باید LED ها را تا آنجا که می توانید به صفحه نمایش تلویزیون نزدیک کنید ، بدون اینکه حاشیه آنها را از مکانی که در آن عکاسی می کنید مبهم کند.

مرحله 3: نرم افزار را نصب کنید

در حال حاضر نرم افزار فقط لینوکس است. تنظیمات زیر برای Raspberry PI 3 with Raspbian Stretch طراحی شده است. سایر سیستم های لینوکس نیاز به تغییراتی دارند. در مدلهای قبلی به دانگل بلوتوث احتیاج دارید و این را نیز باید از خط فرمان اجرا کنید:

sudo get-apt bluetooth را نصب کنید

مرحله A: udev

بعد ، یک فایل در /etc/udev/rules.d/wiimote.rules ایجاد کنید که حاوی یک خط واحد باشد:

KERNEL == "uinput" ، MODE = "0666"

برای مثال می توانید این کار را با ویرایشگر متن یا با تایپ موارد زیر در خط فرمان انجام دهید:

sudo sh -c 'echo KERNEL == / "uinput \"، MODE = / "0666 \"> /etc/udev/rules.d/wiimote.rules'

و سپس udev را مجدداً راه اندازی کنید:

sudo /etc/init.d/udev راه اندازی مجدد کنید

مرحله B: cwiid

در مرحله بعد ، به بسته cwiid اصلاح شده من نیاز خواهید داشت. در اینجا کمی مودار می شود زیرا در حالت ایده آل شما نیاز دارید که آن را روی Raspberry PI خود بسازید ، اما باید اعتراف کنم که من از بسته هایی که باید برای کارکردن آنها نیاز به نصب داشته باشید ، غافل شده ام. برای انجام این کار سه گزینه وجود دارد.

گزینه B1: خودتان را بسازید

سی دی

git clone https://github.com/arpruss/cwiid-1 autoconf./ پیکربندی make -C libcwiid sudo make -C libcwiid install make -C پایتون sudo make -C نصب پایتون

متأسفانه ، این شانس بسیار خوب است که شما تعدادی از وسایل مورد نیاز برای ساخت آن را از دست داده اید و./configure شکایت خواهد کرد. می توانید به همه مواردی که از آن شکایت دارد نگاه کنید و sudo apt install را روی همه آنها اجرا کنید.

گزینه B2: از فایلهای باینری من استفاده کنید

سی دی

wget https://github.com/arpruss/cwiid-1/releases/download/0.0.1/cwiid-rpi.tar.gz tar zxvf cwiid-rpi.tar.gz cd cwiid sudo make install

مرحله C: کتابخانه های پایتون

در نهایت ، موارد پشتیبانی را برای اسکریپت پایتون من دریافت کنید:

sudo pip3 uinput numpy pygame opencv-python را نصب کنید

sudo apt-get install libatlas-base-dev sudo apt-get install libjasper-dev sudo apt-get install libqtgui4 sudo apt-get نصب python3-pyqt5

مرحله D: lightgun.py

سرانجام ، اسکریپت پایتون من را دریافت کنید:

سی دی

git clone

اگر همه چیز خوب پیش رفته است ، اکنون ~/lightgun.py دارید که می توانید از آن برای کالیبراسیون تفنگ سبک استفاده کنید.

مرحله 4: کالیبراسیون قسمت اول: مرکز دوربین

کالیبراسیون قسمت اول: مرکز دوربین
کالیبراسیون قسمت اول: مرکز دوربین
کالیبراسیون قسمت اول: مرکز دوربین
کالیبراسیون قسمت اول: مرکز دوربین
کالیبراسیون قسمت اول: مرکز دوربین
کالیبراسیون قسمت اول: مرکز دوربین

کالیبراسیون دو جنبه دارد. اولین مورد این است که مرکز دوربین را در هر Wiimote کالیبره کنید. این امر مستلزم استفاده از دوربین برای گرفتن دو تصویر از LED ها در اطراف صفحه تلویزیون شما است ، یکی با ریموت سمت راست بالا و دیگری با آن وارونه.

برای جلوگیری از فشار دادن دکمه ها هنگام قرار دادن Wii Remote در جلوی آن ، و برای اینکه Wii Remote دارای ارتفاع ثابت باشد ، می توانید ابزار کالیبراسیون را که اینجا قرار داده ام به صورت سه بعدی چاپ کنید. شما اساساً به چیزهایی نیاز دارید که ضخامت آنها 10.5 میلی متر است که می توانید آنها را در زیر Wii Remote قرار دهید وقتی در جلوی آن قرار دارد. من در واقع از مقداری تخته سه لا برای صرفه جویی در پلاستیک استفاده کردم.

LED های خود را روشن کرده و مطمئن شوید که Raspberry PI یا رایانه دیگر شما در تلویزیون نمایش داده می شود. یک صفحه کلید را وصل کنید (روی ssh کار نمی کند) یا از VNC استفاده کنید. سپس اجرا کنید:

python3 ~/lightgun/lightgun.py -M

اگر همه چیز خوب پیش رفت ، یک صفحه نمایش تمام صفحه دریافت خواهید کرد که از شما می خواهد 1+2 را روی Wii Remote فشار دهید. این کار را بکن. چراغ ها از راه دور Wii چشمک می زنند و سپس چراغ های 1 و 4 روشن می مانند. همچنین یک مستطیل کوچک سبز رنگ در بالای صفحه مشاهده خواهید کرد که نمای آن را از دوربین Wii Remote مشاهده می کنید. Wii Remote را به سمت LED ها نشانه رفته و اگر همه چیز خوب پیش رفت ، چهار LED را مشاهده می کنید که شماره آنها از 1 تا 4 است.

اکنون باید یک سطح جامد با لبه تیز مانند میز قهوه خوری پیدا کنید که بتوانید به صفحه تلویزیون اشاره کنید و به Wii Remote این امکان را بدهد تا همه LED ها را با Wii Remote در لبه تراز ببیند. با تراز کردن سمت راست Wii Remote به سمت بالا ، با سمت ریموت در برابر لبه سطحی شروع کنید ، مطمئن شوید که هر چهار LED دیده می شوند. سپس SPACE را روی صفحه کلید خود فشار دهید (یا Nunchuck را وصل کنید و در صورت راحت تر C را فشار دهید). سپس از شما خواسته می شود تا Wii Remote را بچرخانید. اکنون ، مطمئن شوید که با استفاده از ابزار کالیبراسیون یا چیزهای دیگر ، 10.5 میلی متر از سطح شما بالاتر قرار گرفته است و تقریباً در همان مکان قبلی (به عنوان مثال ، در یک لبه سطح شما قرار گرفته است). دوباره SPACE را فشار دهید.

اگر همه چیز خوب پیش رفت ، اکنون به مرحله کالیبراسیون LED می روید. بله ، این پیچیده است! اما شما یک اسلحه سبک بسیار دقیق خواهید داشت. فقط قیمتش همین است

توجه: اگر مانند من شما Wii زیر تلویزیون دارید ، Wii به دو دلیل باید خاموش شود: اول ، اگر Wii روشن است ، به Wiimote متصل می شود و دوم ، LED های مادون قرمز نوار سنسور با این پروژه. به دلایل مشابه ، هنگام استفاده از Wii ایده خوبی است که LED های اطراف تلویزیون را از برق بکشید.

مرحله 5: کالیبراسیون مرحله دوم: LED ها

مرحله کالیبراسیون II: LED ها
مرحله کالیبراسیون II: LED ها
مرحله کالیبراسیون II: LED ها
مرحله کالیبراسیون II: LED ها

حالا شما باید به نرم افزار بگویید که LED ها در اطراف لبه تلویزیون قرار دارند. یک صفحه کالیبراسیون را مشاهده می کنید که چهار پیکان را نشان می دهد ، یکی از آنها (روشن) و سه تای آنها خاکستری شده است ، در اطراف لبه تلویزیون. از +/- برای تغییر جهت تغییر فلش مورد نظر خود استفاده می کنید.

برای هر یک از چهار فلش اطراف لبه ، این کار را انجام دهید:

  1. چپ/راست را روی Wiimote فشار دهید تا فلش ها را تا جایی که می توانید دقیقاً به سمت LED مربوطه نشان دهید ، حرکت دهید.
  2. برای تغییر طول پیکان روی Wiimote را فشار دهید تا طول پیکان تغییر کند تا فاصله فلش با فاصله بین LED و لبه نمایشگر تلویزیون مطابقت داشته باشد. به عبارت دیگر ، طول فلش باید برابر با فاصله از نوک پیکان تا LED باشد.

هنگامی که چهار پیکان شما درست است (و شاید حتی زودتر) وقتی Wiimote را روی صفحه نشان می دهید ، یک خط قرمز متقاطع مشاهده خواهید کرد. می توانید بررسی کنید که این جایی است که باید باشد. (به یاد داشته باشید که شما باید به اندازه کافی دور باشید تا Wiimote بتواند همه LED ها را ببیند. همچنین مهم است که هیچ منبع مادون قرمز دیگری در میدان دید وجود نداشته باشد. من یک بار به دلیل بازتاب نور خورشید از سر پیچ روی مشکل داشتم میز تلویزیون.)

سرانجام ، یک پیکان پنجم وجود دارد که تنها زمانی نشان داده می شود که از چهارمین پیکان LED یا - از اولین (+) را فشار دهید (و به طور پیش فرض طول آن صفر است ، بنابراین فقط یک پیکسل است). این پیکان تنظیم می کند که چقدر بالاتر از دوربین Wii Remote عکس ثبت شود. مسئله این است: شما در امتداد سطح بالای Wii Remote مشاهده خواهید کرد. اما دوربین در واقع در فاصله ای زیر آن سطح ، در وسط مستطیل مشکی در جلوی ریموت Wii واقع شده است. اگر عکس هایی را که دوربین به آن اشاره می کند ثبت کنیم ، حدود 8 میلی متر زیر سطح بالای Wii Remote ثبت می شود. شما می توانید این موضوع را با توجه به این نکته که در امتداد سطح بالا مشاهده می کنید ، بررسی کنید ، مرکز موهای متقاطع توسط دوربین پنهان می شود.

می توانید با این وضعیت زندگی کنید ، یا می توانید این پیکان پنجم را برای نرم افزار تنظیم عکس ها با بالای Wii Remote افزایش دهید ، یا می توانید فایل های قابل چاپ سه بعدی را برای جبهه های آهنی تنظیم کنید تا این کار جبران شود (اما جبران خسارت فقط برای یک فاصله خاص تا تلویزیون). من خودم برای تراز نرم افزاری رفتم.

برای خروج از کالیبراسیون و ذخیره همه داده ها در فهرست ~/.wiilightgun ، HOME را از راه دور Wii فشار دهید.

مرحله 6: آزمایش و استفاده کنید

تست و استفاده کنید
تست و استفاده کنید
تست و استفاده کنید
تست و استفاده کنید
تست و استفاده کنید
تست و استفاده کنید

احتمالاً می خواهید اسلحه سبک خود را امتحان کنید. فقط کافی است یک شبیه ساز پایانه (یا یک اسکریپت) اجرا کنید:

python3 ~/lightgun/lightgun.py -t

شما باید همزمان دکمه های 1+2 را فشار دهید ، و پس از آن اگر همه چیز خوب پیش رفت ، تا زمانی که lightgun.py در حال اجرا است ، تفنگ سبک یک ماوس مطلق دو دکمه را تقلید می کند. دکمه ماشه دکمه ماوس 1 و دکمه A دکمه ماوس 2 است. برای خروج ctrl-c را فشار دهید.

اکنون فقط باید شبیه سازها و/یا بازی های خود را برای کار با ماوس مطلق پیکربندی کنید. متأسفانه ، این همیشه آسان نخواهد بود.

یکی از چیزهای سرگرم کننده ای که ممکن است امتحان کنید روش من در اردک اردک iminurnamez است:

سی دی

git clone https://github.com/arpruss/duck-duck-shoot cd duck-duck-shoot python play_game.py

برای بازی های NES ، از Libretro fceumm core در Retroarch استفاده می کنم. به منوی Options رفته و Zapper را به صورت صفحه لمسی تنظیم کنید. (پیکربندی آن به عنوان ماوس در واقع کار نمی کند ، زیرا fceumm انتظار دارد حرکت موشكی نسبی باشد تا موش با موقعیت مطلق.)

اگر بازی های خود را با یک اسکریپت شروع می کنید ، می توانید قسمتی را که بازی یا شبیه ساز را شروع می کند ویرایش کنید تا بگوید:

python3 ~/lightgun/lightgun.py -t -B 30 "فرمان شروع بازی"

سپس در 30 ثانیه اول اجرای بازی (از این رو گزینه -B 30) ، می توانید با نگه داشتن 1+2 تفنگ سبک خود را به هم متصل کنید.

به هر حال ، اسکریپت lightgun.py همچنین می تواند برای بازی های عمومی Wii Remote با Retroarch استفاده شود. فقط کافی است گزینه -o را اضافه کنید و عملکردهای lightgun خاموش می شوند و در عوض Wii Remote به صورت افقی کار می کند و سه دکمه به ترتیب 1 ، 2 و B هستند. توابع مربوط به Retroarch دیگر در نگاشت های lightgun.py وجود دارد که با خواندن کد آنها را پیدا خواهید کرد. به عنوان مثال ، کلید منهای به عنوان یک تغییر عمل می کند و همراه با dpad ذخیره و بارگیری را کنترل می کند (بالا/پایین = تغییر شماره ذخیره ؛ چپ = بازیابی ؛ راست = ذخیره).

مرحله 7: دسته تفنگ و هدف گیری

دسته تفنگ و هدف گیری
دسته تفنگ و هدف گیری
دسته تفنگ و هدف گیری
دسته تفنگ و هدف گیری
دسته تفنگ و هدف گیری
دسته تفنگ و هدف گیری

می توانید از Wii Remote به تنهایی به عنوان تفنگ استفاده کنید و در بالای آن مشاهده کنید. همچنین می توانید یکی از قاب های تفنگ تجاری را برای آن خریداری کنید. اما از آنجا که ریموت اصلی Wii نمی تواند به عنوان یک تفنگ دیدنی استفاده شود ، بدنه آن دارای مناظر آهنی نیست و دیدهای آهنی دقت را تا حد زیادی بهبود می بخشد.

من یک سیستم سه بعدی ساده با قابلیت چاپ سه بعدی طراحی کردم: یک دسته کشویی که درست پشت ماشه قرار دارد (بنابراین کمی شبیه فازر سری اصلی Star Trek به نظر می رسد) و مناظر کشویی. فایلهای قابل چاپ اینجاست. اگر می خواهید با هزینه چوب قراضه در مصرف پلاستیک صرفه جویی کنید ، می توانید کاری را که من انجام دادم انجام دهید و به جای چاپ تمام دسته ، فقط قسمتی را که Wiimote در آن قرار دارد چاپ کنید و یک قطعه چوبی را بریده و آن را پیچ کنید.

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

توجه: ارتفاع برجستگی ها کمی نابرابر است ، با این که برجستگی دید جلو کمی پایین تر باشد ، تا بتوانید ارتفاع برجستگی های خود را هنگامی که در فاصله 2.5 متری (فاصله من تا تلویزیون) مشاهده می کنید جبران کنید. اگر فاصله شما با تلویزیون بسیار متفاوت است ، می توانید آن را در فایل های OpenSCAD قرار دهید. به هر حال ، این تنظیم ممکن است زیر تحمل چاپگر باشد. همچنین ، اگر تنظیمات عمودی را در نرم افزار انجام نداده اید ، می توانید با تنظیم extraSightAdjust بر روی چیزی در حدود -8 (در میلی متر) ، تعدادی تنظیمات دیگر را به نماهای نرم افزار اضافه کنید.

مرحله 8: کالیبراسیون III (اختیاری): تنظیم خوب

اگر می خواهید دقت بیشتری داشته باشید ، می توانید اجرا کنید:

python3 ~/lightgun/lightgun.py -d

(برای نمایشی) و با دقت نگاه کنید که آیا مناظر با موهای متقاطع همخوانی دارند یا خیر. در غیر این صورت ، exit/.wiilightgun/wiimotecalibration را خارج کرده و به صورت دستی ویرایش کنید و مختصات x و y مرکز دوربین را کمی تنظیم کنید تا دید را تنظیم کنید. به عنوان مثال ، تفنگ من کمی به سمت راست شلیک می کرد ، بنابراین من مختصات x را از 529 به 525 تغییر دادم. احتمالاً اعداد همه متفاوت خواهد بود.

مرحله 9: ضمیمه: الگوریتم

پیوست: الگوریتم
پیوست: الگوریتم

کد شبیه سازی ماوس تقریباً به شرح زیر عمل می کند.

  • دکمه های پردازش را فشار می دهد.
  • داده ها را از دوربین بگیرید و برای کالیبراسیون دوربین محور تنظیم کنید.
  • اگر کمتر از سه LED در دوربین قابل مشاهده است:

    آخرین موقعیت موس را نگه دارید

  • اگر سه یا چهار LED قابل مشاهده است:

    • از داده های شتاب سنج Wiimote برای بدست آوردن جهت Wiimote و تعیین اینکه کدام تصویر دوربین LED مربوط به کدام LED فیزیکی است ، استفاده کنید.
    • اگر چهار LED قابل مشاهده است:

      • هموگرافی بین تصاویر دوربین LED و مکان های LED (در مختصات صفحه) را محاسبه کنید.
      • از هموگرافی برای محاسبه محل مطابقت صفحه با مرکز میدان دید دوربین استفاده کنید.
      • برای تنظیم مرکز لوله اسلحه مجازی در زیر خط دید ، تنظیمات Y را انجام دهید. این یک الگوریتم تا حدودی kludgy است اما کار می کند.
      • موقعیت ماوس را روی موقعیت صفحه تنظیم شده تنظیم کنید.
    • اگر سه LED قابل مشاهده است:

      • از OpenCV برای حل مشکل P3P بین تصاویر دوربین LED و مکان های فیزیکی LED استفاده کنید. این تا چهار راه حل ایجاد می کند.
      • در صورت موفقیت:

        • اگر قبلاً محاسبه مکان موفقیت آمیزی داشته ایم ، راه حلی را انتخاب کنید که LED گم شده را به آخرین موقعیت مشاهده شده یا محاسبه شده آن LED نزدیک کند.
        • اگر قبلاً محاسبه مکان موفق را نداشته ایم ، راه حلی را انتخاب کنید که عنوان شتاب سنج را به بهترین نحو پیش بینی می کند.
        • از بهترین راه حل برای محاسبه محل چهارم LED استفاده کنید.
        • بقیه کارها را مانند چهار مورد LED انجام دهید.
      • در صورت عدم موفقیت:

        آخرین موقعیت موس را نگه دارید

توصیه شده: