فهرست مطالب:

جوی استیک USB DIY MPU-6050: 5 مرحله
جوی استیک USB DIY MPU-6050: 5 مرحله

تصویری: جوی استیک USB DIY MPU-6050: 5 مرحله

تصویری: جوی استیک USB DIY MPU-6050: 5 مرحله
تصویری: [模組] GY-61 ADXL335 as USB joystick on STM32F103 2024, نوامبر
Anonim
جوی استیک USB DIY MPU-6050
جوی استیک USB DIY MPU-6050

با Microsoft Flight Simulator 2020 ، به سرعت متوجه شدم استفاده از صفحه کلید برای انجام یک برنامه چقدر دشوار است. با جستجوی آنلاین ، جوی استیک با قیمت مناسب برای خرید پیدا نکردم. اکثر خرده فروشان آنلاین آنها را در انبار نداشتند. محبوبیت MS Flight Simulator و همه گیری COVID 19 همه سهام جوی استیک موجود را از بین برد. تنها گزینه من این بود که خودم یکی را بسازم.

اکثر جوی استیکهای موجود از پتانسیومترهای پایه برای تعیین زوایای جوی استیک و ارسال اطلاعات محور x و y به کامپیوتر استفاده می کنند. این به خوبی کار می کند اما ساخت جوی استیک را پیچیده می کند. و به مرور زمان پتانسیومترها ممکن است فرسوده شوند به جای استفاده از پتانسیومتر ، تصمیم گرفتم با برد سنسور شتاب سنج/ژیروسکوپ اطلاعاتی را در زوایای چوب به کامپیوتر ارسال کنم.

با محبوبیت ریزپردازنده های مختلف آردوینو و حسگرهای مختلف ، هزینه ساخت یک پروژه آردوینو بسیار مقرون به صرفه می شود. یکی از بردهای متداول شتاب سنج/ژیروسکوپ ، MPU-6050 است. در کانادا ، هزینه آن در آمازون حدود 7 دلار است. من کالای خود را از eBay از چین به مراتب کمتر تحویل گرفتم ، اما زمان حمل 3 ماه یا بیشتر بود.

www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…

هر برد Arduino کار می کند ، اما استفاده از برد مبتنی بر ATmega32u4 بسیار ساده تر خواهد بود ، زیرا ATmega32u4 دارای پشتیبانی HID (دستگاه رابط انسانی) است. پس از برنامه ریزی برد ، می توانید از آن در هر رایانه ویندوز 10 و بدون نیاز به نرم افزار اضافی استفاده کنید. هنگامی که USB به برق متصل است ، ویندوز 10 به طور خودکار آن را به عنوان یک جوی استیک تشخیص می دهد. (استفاده از سایر انواع برد آردوینو برای این پروژه ساخت ساده بسیار پیچیده است).

من برد آردوینو لئوناردو را انتخاب می کنم. 17 دلار از آمازون

www.amazon.ca/KEYESTUDIO-Leonardo-Developm…

این 2 دستگاه الزامات اصلی این پروژه هستند. موارد کوچکتر دیگر مانند سیم کشی و دکمه های فشاری نیز ضروری هستند. در این پروژه ، من فقط از دو دکمه برای سادگی استفاده کردم.

دسته جوی استیک از یک لوله آب قراضه PVC ساخته شده است. این را می توان به راحتی با هر لوله سفت و محکمی جایگزین کرد.

پایه جوی استیک یک درب فنر است که روی یک تکه چوب ثابت شده است.

درب فنر از Home Depot با قیمت 2.83 دلار آمریکا در دسترس است.

www.homedepot.ca/product/everbilt-spring-d…

مرحله 1: اتصال MPU6050 و دکمه های فشاری به برد آردوینو لئوناردو

اتصال MPU6050 و دکمه های فشار به برد آردوینو لئوناردو
اتصال MPU6050 و دکمه های فشار به برد آردوینو لئوناردو
اتصال MPU6050 و دکمه های فشار به برد آردوینو لئوناردو
اتصال MPU6050 و دکمه های فشار به برد آردوینو لئوناردو
اتصال MPU6050 و دکمه های فشار به برد آردوینو لئوناردو
اتصال MPU6050 و دکمه های فشار به برد آردوینو لئوناردو

فقط 4 اتصال در MPU 6050 استفاده می شود. آنها برچسب VCC ، GND ، SCL و SDA دارند.

VCC را در Arduino Leonardo به 5 ولت یا 3.3 ولت وصل کنید. (MPU 6050 می تواند از 5 ولت یا 3.3 ولت استفاده کند. مهم نیست)

GND را به هر GND در Arduino Leonardo وصل کنید.

SCL را به SCL در آردوینو لئوناردو وصل کنید.

SDA را به آداوینو لئوناردو به SDA وصل کنید.

من فقط از دو دکمه فشاری برای این منظور استفاده می کنم.

اولین دکمه برای تنظیم مجدد مرکز جوی استیک استفاده می شود. در این مثال ، یک سر دکمه به GND و یک سر به PIN 13 متصل می شود.

دکمه دوم فشار به عنوان دکمه جوی استیک استفاده می شود. در این مثال ، به PIN 9 و GND متصل است.

در صورت نیاز می توانید دکمه های اضافی را در پروژه خود اضافه کنید.

مرحله 2: ساختن پایگاه جوی استیک

ساخت پایگاه جوی استیک
ساخت پایگاه جوی استیک
ساخت پایگاه جوی استیک
ساخت پایگاه جوی استیک
ساخت پایگاه جوی استیک
ساخت پایگاه جوی استیک

یک تکه بلوک چوبی پیدا کنید. هرچه سنگین تر بهتر. این پایه جوی استیک را پایدارتر می کند.

همانطور که در تصویر نشان داده شده است ، درپوش درب فنری را در مرکز بلوک چوبی پیچ کنید.

از یک تکه لوله کوتاه به عنوان دسته جوی استیک استفاده کنید. من از یک لوله PVC خراشیده استفاده کردم. سیم را طوری بپیچید که سنسور شتاب سنج/ژیروسکوپ بالای لوله نشسته باشد.

سپس لوله را روی دریچه فنر قرار دهید. من از نوار برقی برای چسباندن سنسور در بالا استفاده کردم.

مرحله 3: راه اندازی Arduino IDE

Arduino IDE را بارگیری و نصب کنید.

من از Arduino 1.8.13 برای این پروژه استفاده کردم. Arduino Web Editor برای این پروژه نیز قابل استفاده است.

2 کتابخانه استفاده می شود.

1. MPU6050_tockn توسط tockn

github.com/Tockn/MPU6050_tockn

یا می توانید آن را در منوی "مدیریت کتابخانه" پیدا کنید.

2. کتابخانه جوی استیک توسط متیو هیرونیموس

github.com/MHeironimus/ArduinoJoystickLibr…

این یکی در حال حاضر فقط از وب سایت GitHub در دسترس است.

روی بارگیری کد و بارگیری ZIP کلیک کنید. فایل ZIP را در فهرست کتابخانه های Arduino خود استخراج کنید.

در مورد من ، E: / PinChung / Documents / Arduino / libraries است

مرحله 4: برنامه آردوینو

Pin_Joystick.ino را بر روی Arduino IDE بارگذاری کرده و در برد لئوناردو کامپایل و بارگذاری کنید.

مطمئن شوید که برد Arduino Leonardo انتخاب شده است و شماره پورت در COM سمت راست انتخاب شده است: در منوی Tools.

مدتی متوجه شدم ، برنامه را نمی توان با کد خطا درگاه COM در دسترس قرار داد. دو بار فشار دادن دکمه تنظیم مجدد روی صفحه لئوناردو هنگام کامپایل ، ممکن است کمک کند. راه اندازی مجدد ویندوز 10 نیز ممکن است به آزادسازی پورت COM کمک کند.

پس از بارگذاری برنامه روی برد لئوناردو ، ویندوز 10 باید بطور خودکار جوی استیک لئوناردو را تشخیص دهد. در نوار جستجوی Windows 10 ، Game Controllers را تایپ کنید ، Setup USB Game Controllers را اجرا کنید.

Leonardo Joystick را انتخاب کرده و روی Properties کلیک کنید. حرکت جوی استیک و دکمه جوی استیک شماره 1 باید توسط ویندوز 10 برداشته شود.

اگر جوی استیک در مرکز قرار ندارد ، وقتی آن را رها می کنید ، روی دکمه بازنشانی مرکز جوی استیک که تازه ساختیم کلیک کنید. کنترلرهای بازی USB باید نقطه جوی استیک را در مرکز نشان دهند. نیازی به کالیبراسیون جوی استیک در برنامه USB Game Controller نیست.

نکته جانبی: برای کسانی که با آردوینو لئوناردو آشنایی ندارند ، وقتی دستگاه به عنوان جوی استیک ، ماوس یا صفحه کلید پیکربندی شده باشد ، پورت سریال کار نمی کند. بنابراین "Serial.print ()" کار نمی کند. همچنین ، MPU6050 از کتابخانه سیم i2c استفاده می کند و از پین های SDA و SLC استفاده می کند. در لئوناردو ، SDA و SCL هر دو PIN 2 و PIN 3 را اشغال می کنند ، بنابراین از این 2 پین برای موارد دیگر استفاده نکنید.

مرحله 5: آزمایش جوی استیک

من آن را در Microsoft Flight Simulator 2020 آزمایش کردم و بسیار خوب کار می کند. من گاهی اوقات باید کلید مرکزی را فشار دهم تا جوی استیک صفر شود. مقدار سنسور MPU6050 ممکن است با گذشت زمان کمی تغییر کند.

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

توصیه شده: