فهرست مطالب:
- مرحله 1: لوازم
- مرحله 2: محوطه
- مرحله 3: مدار
- مرحله 4: اتمام سخت افزار
- مرحله 5: نرم افزار
- مرحله ششم: پایان
- مرحله 7: ضمیمه..دوم..دوم
- مرحله 8: منابع اضافی
تصویری: Arduino Keyboard Joystick Extender Box و کنترل صدا با استفاده از Deej: 8 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:51
پروژه های Tinkercad »
چرا
مدتی است که می خواهم یک جوی استیک کوچک برای کنترل عناصر رابط کاربری یا سایر کارهای کوچکتر در بازی ها و شبیه سازها اضافه کنم (MS Flight Sim ، Elite: Dangerous ، Star Wars: Squadrons و غیره).
همچنین ، برای Elite: Dangerous ، من با مخلوط کردن سطح صدا از صدای خارجی (موسیقی ساخته شده در عین حال خوب ، پس از ساعت ها در رنگ مشکی تکراری می شود) ، صدای بازی و پشتیبانی از کوله پشتی خارجی ، مشکل داشتم.
میکسر منبع ساخته شده در ویندوز بسیار خوب است ، اما دردسر تغییر صفحه و اسلایدرهای کنترل ماوس در وسط بازی است. به نظر می رسید داشتن جعبه کنترل صفحه کلید گسترده. دیجی راه حلی است که من پیدا کردم.
چگونه
من اخیراً در مورد آردوینو آموخته ام و در reddit با پروژه deej برخورد کردم. به نظر می رسید که این دو مشکل را در یک بسته مفید حل می کند. و به من این امکان را می دهد که یک قاب سه بعدی زیبا طراحی و چاپ کنم.
دیژ چیست؟
(از سایت) deej یک ** میکسر حجم دهنده سخت افزار منبع باز ** برای رایانه های شخصی ویندوز و لینوکس است. به شما امکان می دهد از لغزنده های واقعی (مانند DJ!) برای ** کنترل یکپارچه حجم برنامه های مختلف ** (مانند پخش کننده موسیقی ، بازی که بازی می کنید و جلسه چت صوتی) بدون نیاز به توقف استفاده کنید. شما انجام می دهید
نسخه من
برای کوچک نگه داشتن جعبه ، من دستگیره ها (پتانسیومتر خطی دوار (گلدان = مقاومت)) را به جای کشویی انتخاب کردم. از نظر عملکردی آنها یکسان عمل می کنند. طرح های فعلی و محبوب deej شامل جوی استیک نیستند ، بنابراین این کمی ترکیبی از طراحی خواهد بود. در غیر این صورت ، این یک ساختار نسبتاً مستقیم است.
Deej با Arduino Nano ، Pro Micro یا Uno کار خواهد کرد ، اما Nano و Pro Micro توسط توسعه دهنده "به طور رسمی توصیه می شود". من Arduino Pro Micro را انتخاب کردم زیرا جوی استیک را می خواستم و کتابخانه Arduino Joystick از آن پشتیبانی می کند. همچنین وقتی می خواهم از عملکرد خاموش صفحه کلید رسانه (به جای "بی صدا نرم") با دکمه جوی استیک استفاده کنم ، می توانم از کتابخانه صفحه کلید آردوینو استفاده کنم ، اما این راه دورتر است.
مرحله 1: لوازم
جعبه
بارگیری فایل های STL (طراحی شده در Tinkercad):
- فایل های ضمیمه در Prusa (https://www.prusaprinters.org/)
- Thingiverse (به زودی)
سخت افزار (واحد تولید)
- 1x Arduino Pro Micro
- 4 برابر 10k دوار (دستگیره) پتانسیومترها (نه کنترل کننده های روتاری ، از گلدان استفاده کنید)
- 1 جوی استیک آردوینو KY-023
- کابل شبکه 5 فوت قراضه cat5
- 1x کابل میکرو USB A به USB B (USB A اتصال دهنده بزرگ مربع است ، USB B micro چیزی است که در Arduino Pro Micro وجود دارد)
- LED قرمز 1x 5 میلی متر
- مقاومت 1x 220 اهم
من قطعات اضافی در اطراف داشتم ، بنابراین فکر کردم یک واحد توسعه برای آزمایش چیزها ایجاد می کنم. فقط اتصال چیزها به یک تخته نان ، تجسم چیز نهایی را آسان تر می کند.
- 1x Arduino Pro Micro
- 4 برابر 10k دوار (دستگیره) پتانسیومترها (کنترل کننده های روتاری نیستند ، از گلدان استفاده کنید)
- سوئیچ 1x دکمه لحظه ای (کلید تنظیم مجدد سخت)
- 1x کابل میکرو USB A به USB B (USB A اتصال دهنده بزرگ مربع است ، USB B micro چیزی است که در Arduino Pro Micro وجود دارد)
- انواع سیم های بلوز
- تخته نان
- LED قرمز رنگ 1 x 5 میلی متر
-
مقاومت 1x 220 اهم
مرحله 2: محوطه
طراحی
من برخی از طرحهای دیگر را که در گالری انجمن deej نمایان شده بودند ، دوست داشتم ، بنابراین از ویژگیهایی که دوست داشتم استفاده کردم:
- طراحی و چاپ آسان
- مانع سایر وسایل جانبی رومیزی من نشوید
- برای محکم کردن محفظه از پیچ یا بست استفاده نکنید
- زیبایی ظاهری مشابه صفحه کلید
من دو نمونه اولیه را طراحی و چاپ کردم قبل از اینکه به این طرح نهایی بپردازم. من دوست دارم یک نسخه فیزیکی برای بازی در فضایی که از آن استفاده می کنم داشته باشم ، زیرا به من حس بهتری از نحوه عملکرد شیء نهایی می دهد.
من به طور مختصر طراحی را در Fusion360 شروع کردم ، اما آن را به خوبی Tinkercad نمی دانم ، بنابراین کار را عوض کرد و آنجا کار کرد.
از آنجا که می خواستم یک طرح بدون پیچ داشته باشم ، یک جعبه تودرتو ایجاد کردم. نمونه اولیه دارای یک درب نازک و یک جعبه عمیق برای همه چیز بود. طرح دوم آن را با یک درب عمیق و یک جعبه پایین کم عمق عوض کرد. فقط باید Arduino Pro Mini را نگه داشت تا واقعاً نیازی به بزرگ بودن نداشته باشد. همچنین نمادهای برجسته را در خود جای داده است.
طرح سوم تغییر کرد تا فضای کنار صفحه کلید من مناسب باشد.
چاپ
من جعبه را در PLA چاپ کردم ، برنامه ای برای تعویض رشته / لایه از سیاه به قرمز برای درپوش که در آن آیکون ها به تازگی قابل مشاهده بودند ، برنامه ریزی کردم و مجدداً در قسمت باقیمانده به سیاه برگشتم.
مشکل
در تمام این موارد ، جوی استیک یک مشکل بود. حتی در طراحی سوم ، چوب در یک جا با پایه ها برخورد می کند. تکرار بعدی دارای ترخیص بهتر است. من می توانستم بیشتر روی طراحی کار کنم اما می خواستم به مرحله بعدی یعنی نصب بروم.
مرحله 3: مدار
بدترین کار سیم کشی تا کنون
خوب ، این اولین پروژه کامل آردوینو من است. بله ، من قبلاً کارهایی را روی تخته نان انجام داده ام و از یکی برای ساخت نسخه توسعه دهنده آن استفاده می کنم ، اما در مورد ساخت و مونتاژ ، این اولین مورد من است. بنابراین سیم کشی من شبیه مزخرف به نظر می رسد. اونجا این چیزی نیست:)
به روز رسانی: من از آن زمان یکی دیگر را ساخته ام و سیم کشی در آنجا بسیار زیبا تر است. تصاویر رو ببینید:)
واحد تولید - چه چیزی در کجا اتفاق می افتد
Arduino Pro Micro یک تخته کوچک کوچک است و در قسمت قالب بندی شده در پایه قرار می گیرد. دستگیره ها و جوی استیک در سوراخ های مربوطه در درب قرار می گیرند. اما تا زمانی که مسابقه لحیم کاری را به دست نیاورید ، چیزی را نصب نکنید.
سیم کشی
من هیچ سیم مدار مناسب نداشتم ، اما یک رول باقی مانده از کابل شبکه جامد cat5 داشتم ، بنابراین من از آن استفاده کردم. این کمی سفت تر و شاید شکننده تر از سیم مدار رشته ای است ، اما کار می کند.
با قرار دادن اجزاء در تقریبی موقعیت نهایی نصب آنها ، فاصله هر سیم را برآورد کردم ، برای شل شدن و غیره کمی بیشتر اضافه کردم ، سپس سیم را برش و برش دادم. خیلی سستی گذاشتم.
با توجه به نمودار سیم کشی ، من نقاط مشترک (سیاه) و VCC (قرمز) را تا جایی که نشان داده شده است به دستگیره ها و جوی استیک اجرا کردم. از آنجا که کابل شبکه در این رنگ ها وجود ندارد ، من فقط یک رنگ را انتخاب کردم و سیم کشی خود را با عملکرد مطابقت دادم.
قابلمه فردی. خطوط آنالوگ (زرد) تا پین A0 - A3 اجرا شد. خطوط جوی استیک (نارنجی) ، همچنین آنالوگ ، تا پایه های I و O 8 و 9 اجرا می شدند. اینها باید در کد Arduino به عنوان A8 و A9 به عنوان Analog تعیین شوند.
پین سوئیچ جوی استیک (آبی) تا پین 7 اجرا شد. این یک پین دیجیتالی در کد است.
عایق کاری
از آنجا که این سیم سفت در یک فضای کوچک قرار می گیرد ، تصمیم گرفتم اتصالات لحیم کاری خود را با یک چسب سالم از چسب مذاب عایق بندی کنم. سپس همه چیز را سر جای خود قرار دهید و با استفاده از نسخه کد Arduino AnalogInput Code یک تست ساده روی تخته و گلدان ها انجام دهید - برای خواندن همه گلدان ها اصلاح شده است.
نسخه دوم
دو تصویر آخر بالا جعبه بعدی را که می سازم نشان می دهد. این دستگاه دارای 5 دکمه و یک دکمه فشاری لحظه ای برای قطع صدا است. جوی استیک ندارد. جعبه هم اندازه
مرحله 4: اتمام سخت افزار
وقتی Joystick را نصب کردم ، متوجه شدم فاصله زیادی بین برد آن و هدرهای پین باقی مانده در Pro Micro وجود ندارد.
پس از کمی خم شدن دقیق سربرگ ها و استفاده مجدد از چسب مذاب داغ (برای عایق کاری) ، محفظه به درستی بسته شد.
نصب گلدان ها بدون هیچ مشکلی انجام شد.
دوباره با سیم
سیم های جامد کمی سفت هستند و اگر بیش از حد خم شوند ، می توانند شکننده شوند ، بنابراین آنها را با دقت (بدون گوشه های تیز) در فضای موجود تا کنید. برخی از قطعات من بسیار طولانی بودند و نیاز به کمی تا شدن اضافی داشتند.
هنگامی که همه چیز در جای خود قرار گرفت ، کافی است پایه را در بالای صفحه قرار دهید و باید با سخت افزار کار را تمام کنید….
اما صبر کنید ، چیزهای بیشتری وجود دارد
البته ، پس از چند هفته استفاده ، تصمیم گرفتم که به یک نشانگر نیاز داشته باشم تا به من اطلاع دهد وضعیت عملکرد MUTE با کد نرم چگونه است.
پس از ویرایش کد برای افزودن قابلیت LED (بخش بعدی را ببینید) ، به سرعت LED / سیم / مقاومت را لحیم کردم و آنها را به برد وصل کردم.
من زمان بیشتری را برای سوراخ کردن قسمت بالای بدنه صرف کردم ، زیرا نمی خواستم قسمت بالایی را خراب کنم. من یک نقطه مرکزی را مشخص کردم ، آن را دندانه زدم ، سپس یک دست مته را چرخاندم تا سوراخ ایجاد شود.
بایگانی دقیق اضافی ، سوراخ را تمیز کرده و یک فشار خوب محکم را تضمین می کند تا اطمینان حاصل شود که LED بیش از حد از سطح بالا بیرون نمی زند.
مرحله 5: نرم افزار
بررسی اجمالی
بنابراین ، این یک فرایند دو بخشی است.
- نحوه کار Deej را بشناسید و بفهمید و فایل Config.yaml را ویرایش کنید
- کد Arduino را برای مطابقت با سخت افزار و ویژگی های مورد نظر ویرایش کنید
- کتابخانه Arduino Joystick را دریافت کنید
در مورد من ، من این ویژگی ها را می خواستم:
- دستگیره های کنترل سطوح (میکروفون و خروجی)
- سوئیچ بی صدا
- جوی استیک 2 محور توسط ویندوز برای استفاده از برنامه شناخته شده است
سطوح
دیج تا حد زیادی از اولین نکته مراقبت می کند. من این عملکرد را تغییر ندادم
سوئیچ بی صدا
اوایل تصمیم گرفته بودم که از پرس/سوئیچ در جوی استیک به عنوان دکمه خاموش عملکردی استفاده کنم.
هنگامی که کد را بررسی می کنید ، می بینید که من (در ابتدا) استفاده از بی صدا "نرم" را انتخاب کرده ام - هنگامی که دکمه را فشار می دهید ، میزان MIC به صفر کاهش می یابد (و LED روشن می شود). وقتی دوباره فشار داده شود ، صدای MIC به حالت قبلی باز می گردد و LED خاموش می شود.
سرانجام من به دنبال پیاده سازی کتابخانه صفحه کلید Arduino برای تغییر وضعیت بی صدا از طریق مجموعه کد کیبورد رسانه های گسترده هستم.
اجرای جوی استیک
این امر مستلزم استفاده از کتابخانه Arduino Joystick است تا اطمینان حاصل شود که جوی استیک به عنوان یک دستگاه HID توسط ویندوز و در نتیجه توسط هر بازی/برنامه ای شناخته می شود.
وقتی صحبت از کد نویسی می شود ، من یک کمی احمق هستم و متوجه شدم که اسناد کتابخانه Joystick در قسمت اجرای واقعی کمی کمیاب است - اما کمی جستجوی متمرکز گوگل مرا به نمونه های دیگری کشاند که به من کمک کرد بفهمم چه اتفاقی می افتد. برای اطلاع از جزئیات ، قسمت منابع را در انتها بررسی کنید.
تنها کاری که باید انجام می دادم این بود که پین های X/Y را شناسایی کنم ، وضعیت آنها را بخوانم و به کتابخانه جوی استیک ارسال کنم. آردوینو به عنوان یک لئوناردو در ویندوز ظاهر شد و به درستی به عنوان یک دستگاه جوی استیک پیکربندی شده بود.
من توانستم آن را در Elite Dangerous ، در کنار تنظیمات HOTAS موجود ، راه اندازی کنم و Joystick همه چیز را به درستی کنترل کند و با HOTAS در تضاد نباشد. همچنین در Star Wars: Squadrons به خوبی کار می کند - من آن را به عنوان یک ضامن سریع برای راه اندازی سپرها در هنگام جنگ انتخاب کرده ام.
فایل هایی که با تنظیم Joystick من کار می کنند
من فایلهای فعلی (اکتبر 2020) خود را در Codepile بارگذاری کرده ام.
- کد آردوینو (فایل.ino)
- Deej config.yaml
مرحله ششم: پایان
خوب ، این یکی تمام شده است. کار می کند و من از نحوه ترکیب آن بسیار راضی هستم. و من کمی بیشتر در مورد طراحی سخت افزار ، ادغام و برنامه نویسی آردوینو آموختم.
مرحله 7: ضمیمه..دوم..دوم
VLC - پخش کننده صوتی و تصویری فوق العاده کمی عجیب است که در آن سطح صدا ، وقتی از خارج کنترل می شود ، از 0 تا 27 درصد افزایش می یابد. این امر هنگام تنظیم سطح با استفاده از کنترل صدا رابط درون برنامه ای ، فقط با کنترل های خارجی مانند Deej اتفاق نمی افتد.
توسعه دهنده Deej به سرعت یک راه حل درون VLC پیدا کرد که کار را انجام می دهد ، تصویر بالا را ببینید:
"… اگر می خواهید این رفتار" ردیابی "را غیرفعال کنید ، می توانید با تغییر ماژول خروجی صدا VLC این کار را انجام دهید. من در اینجا سعی کردم از DirectX استفاده کنم. برای اعمال تغییرات باید VLC را راه اندازی مجدد کنید. (هنوز هم یک جلسه صوتی در ویندوز داشته باشید و بتوانید آن را از طریق deej کنترل کنید ، این فقط از حرکت نوار حجم VLC با آن جلوگیری می کند)"
مرحله 8: منابع اضافی
یافت شده از طریق Goog قدرتمند ، بدون ترتیب خاصی فهرست شده است…
- کتابخانه جوی استیک آردوینو (v2) - برای ادغام جوی استیک مورد نیاز است
- راهنمای اتصال Sparkfun Pro Micro - منبع خوبی در مورد این آردوینو است
- deej - نرم افزاری که دستگیره ها را هدایت می کند
- انواع اتصالات USB - چه کسی می دانست انواع بسیار زیادی وجود دارد؟
- Arduino Pro Micro Analog Pinouts
- Arduino Leonardo Gaming Joystick - لئوناردو شبیه Pro Micro است ، فقط بزرگتر است
- پورت Arduino Pro Micro (Clone) شناسایی نشد (راه حل) - هنگامی که Pro Micro خود را آجر می کنید (من انجام دادم)
- آردوینو لئوناردو/میکرو به عنوان کنترل کننده بازی/جوی استیک
- مثال استفاده از کلید چندرسانه ای برای قطع صدا - با استفاده از کتابخانه HID Project
- کد نمونه کتابخانه HID Project برای توقف / پخش رسانه
- مثال کد دیگری که کنترلر گیم پد را نشان می دهد.
- ArduinoGamingController_updated - توضیحات خوب درباره استفاده از کتابخانه جوی استیک
- چیزی برای محاسبه مقاومت LED - برای اینکه بدانید در پروژه خود به چه اندازه مقاومت نیاز دارید
- کتابخانه نمادها - flaticon.com - منبع تصاویر استفاده شده در بالای دستگیره ها
- رمزگشای رنگ مقاومتی دیگر - روی یک رنگ و ویولا کلیک کنید!
توصیه شده:
اتوماسیون پرحرف -- صدا از آردوینو -- خودکار کنترل صدا -- HC - 05 ماژول بلوتوث: 9 مرحله (همراه با تصاویر)
اتوماسیون پرحرف || صدا از آردوینو || خودکار کنترل صدا || HC - 05 ماژول بلوتوث: …………………………. لطفا برای ویدیوهای بیشتر به کانال YouTube من مشترک شوید …. …. در این ویدئو ما یک Automatation Talkative ساخته ایم. هنگامی که یک فرمان صوتی را از طریق تلفن همراه ارسال می کنید ، دستگاه های خانگی روشن می شود و بازخورد ارسال می کند
MIDI/Arduino کنترل صدا 8 بیتی صدا (AY-3-8910): 5 مرحله
MIDI/Arduino Controlled 8-sound Sound Generator (AY-3-8910): یک ژنراتور 8 بیتی با صدای یکپارچهسازی با سیستمعامل ایجاد کنید و آن را از طریق MIDI کنترل کنید. این طراحی تا حدی از علاقه مندان Chiptune که مدارهای آردوینو را برای پخش فایلهای Chiptune و برخی از آنها الهام گرفته اند ، الهام گرفته است. ایده های من برای ادغام صدای منفی بازی های ویدئویی اولیه
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 را با تلفن هوشمند خود کنترل کنید
DIY کنترل منطقی کنترل صدا با استفاده از مقاومت خازن ترانزیستورها: 6 مرحله
DIY Funny Sound Sound Control Logic Circuit with Only Resistors Capacitors Transistors: امروزه روند افزایشی در طراحی مدارها با IC (مدار مجتمع) وجود داشته است ، بسیاری از عملکردها باید در مدارهای قدیم توسط مدارهای آنالوگ انجام شود ، اما در حال حاضر نیز توسط IC قابل انجام است که پایدارتر و راحت تر است و آسان است
کنترل صدا صدا چراغ های الکترونیکی RGB LED و موارد دیگر با کورتانا و آردوینو اتوماسیون خانگی: 3 مرحله
کنترل صوتی چراغ های الکترونیکی RGB LED و موارد دیگر با کورتانا و آردوینو اتوماسیون خانگی: مانند ایده کنترل چیزها با صدای خود؟ یا دوست ندارید برای خاموش کردن چراغ از تخت بلند شوید؟ اما آیا همه راه حل های موجود مانند google home بسیار گران هستند؟ اکنون می توانید خودتان آن را با زیر 10 دلار تهیه کنید. و حتی بهتر از آن بسیار آسان است