فهرست مطالب:

Xbox 360 Controller Accelerometer/gyro Steering Mod: 7 Step
Xbox 360 Controller Accelerometer/gyro Steering Mod: 7 Step

تصویری: Xbox 360 Controller Accelerometer/gyro Steering Mod: 7 Step

تصویری: Xbox 360 Controller Accelerometer/gyro Steering Mod: 7 Step
تصویری: Steam Controller Mod - Softer Bumper & Touchpad Clicks 2024, نوامبر
Anonim
Xbox 360 Controller Accelerometer/gyro Steering Mod
Xbox 360 Controller Accelerometer/gyro Steering Mod

من با کنترلر Xbox 360 Assetto Corsa بازی می کنم. متأسفانه فرمان با چوب آنالوگ بسیار سخت است و من فضا برای نصب چرخ ندارم. من سعی کردم به راههایی فکر کنم که بتوانم مکانیزم فرمان بهتری را به کنترلر وارد کنم ، وقتی به ذهنم رسید که می توانم از کل کنترلر به عنوان فرمان استفاده کنم.

چوب آنالوگ دارای دو پتانسیومتر است. یکی حرکت عمودی و دیگری حرکت افقی را اندازه گیری می کند. ولتاژ 1.6 ولت را در هر یک قرار می دهد و ولتاژ تولید شده در برف پاک کن را اندازه گیری می کند تا مشخص شود که چوب چقدر حرکت کرده است. این بدان معناست که می توان حرکت چوب را با تغذیه ولتاژ خاصی به پین برف پاک کن کنترل کرد. (اطلاعات بیشتر در اینجا:

این حالت از آردوینو برای محاسبه زاویه قرائت شتاب سنج و تبدیل آن به حرکت چوب آنالوگ از طریق DAC استفاده می کند. بنابراین ، باید با هر بازی که از چوب آنالوگ به عنوان ورودی استفاده می کند ، کار کند.

مرحله 1: شما نیاز دارید:

ابزارها:

  • آهن لحیم کاری
  • لحیم کاری
  • مکنده/بافتن لحیم کاری
  • استریپر سیمی
  • یک پیچ گوشتی ، شاید یک Torx بسته به پیچ های کنترل کننده شما (من متقاطع هستند)
  • چسب (ترجیحا چسب فوق العاده قوی نباشد تا بعداً جدا شود)
  • یک آداپتور USB به سریال برای برنامه ریزی Arduino

مواد:

  • کنترل Xbox 360 (دیروز!)
  • Arduino Pro Mini (یا کلون) (ترجیحاً 3.3 ولت. اگر از نسخه 5 ولت استفاده می کنید ، احتمالاً به مبدل افزایش ولتاژ نیاز دارید)
  • ژیروسکوپ/شتاب سنج MPU-6050
  • MCP4725 DAC (دو مورد اگر می خواهید هر دو محور را کنترل کنید)
  • مقداری سیم نازک
  • یک تخته نان تا بتوانید قبل از لحیم کاری همه چیز را آزمایش کنید (اختیاری ، اما توصیه می شود)

مرحله 2: کنترل کننده را جدا کنید

کنترل کننده را جدا کنید
کنترل کننده را جدا کنید
کنترل را جدا کنید
کنترل را جدا کنید
کنترل را جدا کنید
کنترل را جدا کنید

هفت پیچ وجود دارد که باید بردارید. شش مورد از آنها واضح است ، اما هفتم پشت یک برچسب است. من فرض می کنم که حذف آن ضمانت شما را باطل می کند ، بنابراین با مسئولیت خود ادامه دهید. بسیاری از راهنماها می گویند شما به پیچ گوشتی Torx احتیاج دارید ، اما من یک پیچ گوشتی هستم ، بنابراین کنترل کننده خود را بررسی کنید.

پس از آن ، جلد پشت را با دقت جدا کنید. اگر جلو را بکشید ، دکمه ها بیرون می ریزند و احتمالاً در سراسر اتاق می روند. آن را از پایین بلند کنید. سپس دو موتور ارتعاش را از برق بکشید. (وزن کم باید در سمت چپ باشد ، و وزن آن در سمت راست است) PCB را بیرون بیاورید و درپوش های لاستیکی روی میله های آنالوگ را بردارید. آنها به سادگی کنار می روند.

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

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

مرحله 3: قطعات را در جای خود بچسبانید

قطعات را در جای خود بچسبانید
قطعات را در جای خود بچسبانید
قطعات را در جای خود بچسبانید
قطعات را در جای خود بچسبانید

متوجه خواهید شد که فاصله زیادی بین پشت PCB و کیس وجود دارد. این باعث می شود که همه سخت افزارها را بدون حذف هیچ چیز در کیس قرار دهید.

من بعداً متوجه شدم ، اما این زمان خوبی برای جدا کردن دکمه تنظیم مجدد در آردوینو است. در غیر اینصورت ، اگر یکی از پیچ ها را هنگام مونتاژ مجدد بیش از حد محکم کنید ، روی قسمت پشتی قاب فشار می آورد و باعث می شود پروژه متوقف شود.

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

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

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

DAC (ها) در گوشه سمت چپ پایین قرار دارند. اگر می خواهید هر دو محور را کنترل کنید ، در اینجا فاصله کافی برای قرار دادن دو DAC ، یکی روی دیگری ، وجود دارد. نیازی به چسباندن آنها نیست. آنها فقط با اتصالات لحیم شده همان جا می مانند. اگر کارت را بین آنها می چسبانید ، مطمئن شوید که کارت را قطع کرده اید تا SCL ، SDA ، VCC و GND قابل دسترسی باشند ، زیرا از هر دو طرف به آنها دسترسی خواهید داشت.

اگر از دو DAC استفاده می کنید ، فراموش نکنید که jumper آدرس را تغییر دهید و مقاومت های کششی را روی یکی از آنها غیرفعال کنید ، همانطور که در اینجا توضیح داده شده است: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -converter-hookup-guide

مرحله 4: سیم ها را لحیم کنید

سیمها را لحیم کنید
سیمها را لحیم کنید
سیمها را لحیم کنید
سیمها را لحیم کنید
سیمها را لحیم کنید
سیمها را لحیم کنید

حالا باید همه چیز را به هم وصل کنید. VCC ، GND ، SDA و SCL از همه 2/3 دستگاه ها به ترتیب باید به VCC ، GND ، A4 و A5 در آردوینو متصل شوند. DAC ها سخت ترین قسمت هستند. اگر دو عدد دارید ، باید آنها را به هم وصل کنید ، در حالی که از جایی خارج می شوید ، می توانید برق و خطوط را به شتاب سنج وصل کنید ، در حالی که سیم های OUT را جدا نگه دارید.

پین OUT در DAC باید به پین PCB کنترل کننده متصل شود که قبلاً برای پین پتانسیومتر افقی میانی برای چوب آنالوگ استفاده می شد. یعنی جایی که چوب آنالوگ بود ، یک ردیف سه پایه در بالا وجود دارد. آن را به وسط وصل کنید. اگر DAC دیگری دارید ، آن را به همین ترتیب به پین پتانسیومتر عمودی (ردیف سمت چپ) وصل کنید. هنگامی که ماشه تعویض می شود ، نمی توانید از پشت به پین ها برسید ، بنابراین باید سیم را به جلوی تخته بکشید. یک "دیوار" پلاستیکی مدور در اطراف ناحیه چوب آنالوگ وجود دارد ، اما خوشبختانه یک فاصله مناسب در آن وجود دارد که می توانید سیم ها را از طریق آن عبور دهید. اطمینان حاصل کنید که سیم ها مانع اتصال پیچ در قسمت جلویی کیس نمی شوند.

برنامه اولیه من این بود که آردوینو را با 5 ولت از کابل USB متصل به پین RAW تغذیه کنم ، اما وقتی آن را امتحان کردم ، کار نکرد. آردوینو چیزی اجرا نکرد و هم آردوینو و هم کنترلر بعد از چند ثانیه خاموش شدند. با این حال ، من متوجه شدم که خروجی ثابت 3.3 ولت از دو پین در جلوی برد در نزدیکی سوکت محیطی مشکی وجود دارد ، احتمالاً برای تغذیه لوازم جانبی. با VCC و RAW کار می کند ، اما من VCC را انتخاب کردم زیرا ولتاژ مناسب است و به من این امکان را می دهد که آن را به سیم VCC در DAC که قبلاً در انتهای برد قرار دارد لحیم کنم و در سیم ها صرفه جویی کنم.

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

توصیف همه اینها با کلمات دشوار است ، بنابراین من تصاویر و نمودار خام را وارد کرده ام.

مرحله 5: آردوینو را برنامه ریزی کنید

حالا باید آردوینو را برنامه ریزی کنید. این امر نیاز به جابجایی کابل USB روی کنترلر دارد تا بتوانید به پین های سریال آردوینو دسترسی پیدا کنید. من کدی را که استفاده کردم قرار داده ام. به کتابخانه Adafruit MCP4725 نیاز دارد ، که می توانید آن را در اینجا پیدا کنید:

همانطور که هست ، کد به شما اجازه می دهد تا تمام دامنه حرکت چوب آنالوگ را با حرکت دادن کنترلر 90 درجه به چپ به 90 درجه به راست ، به طور مساوی طی کنید و با نگه داشتن آن در وسط ، آن را در وسط نگه دارید.

این زاویه کنترل کننده را با محاسبه مماس معکوس نیروی محور محور X تقسیم بر نیروی محور محور Z می گیرد. این بدان معنی است که اگر کنترل کننده عمودی ، مسطح یا هر زاویه ای در بین باشد ، کار می کند. (اطلاعات بیشتر در اینجا:

روی کنترلر من کار می کند ، اما سایر کنترلرها ممکن است نیاز به ولتاژهای متفاوتی داشته باشند و آن را از هم تراز خارج کنند. من فکر می کنم بهترین راه برای پیدا کردن محدوده ولتاژ ، آزمایش و خطا است. بسیاری از بازی ها یک اسلایدر برای حرکت چوب آنالوگ به شما نشان می دهند ، اما دقیق ترین راهی که برای تعیین حرکت پیدا کردم استفاده از jstest در لینوکس است. (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) به جای گرافیک ، عددی بین -32 ، 767 تا 32 ، 767 به شما می دهد ، بنابراین دقیقاً می دانید که چوب کجاست. هر دو کنترلر و USB آردوینو را به آداپتور سریال وصل کنید ، jstest را بارگذاری کرده و مقادیر مختلف DAC را تا رسیدن به بالا و پایین دامنه امتحان کنید و هریک را یادداشت کنید. برای من 1 ، 593 - 382 بود.

خط 36 مورد توجه ویژه است:

dacvalue = (کنترل کنترل + 2.5617859169446084418) / 0.0025942135867793503208 + 0.5؛

فوراً مشخص نیست که چه کار می کند. به سادگی ، زاویه کنترل کننده (در رادیان اندازه گیری می شود و بین 1.57 and و -1.57 ~) و آن را به مقدار بین 1 ، 593 و 382 برای DAC تبدیل می کند. اگر محدوده DAC متفاوتی دارید ، باید آن خط را تغییر دهید.

خط را می توان به صورت زیر نوشت:

dacvalue = (controllerangle +) / + 0.5؛

با و بودن اعدادی که باید تغییر دهید. برابر با محدوده زاویه کنترل کننده (pi) تقسیم بر محدوده کل مقادیر DAC است. (بالای محدوده منهای پایین محدوده) این امر باعث می شود تا ولتاژ را تغییر دهید ، اگرچه نتایج خارج از محدوده مورد نظر شما خواهد بود. به همین دلیل است که شما نیاز دارید. برابر است با ضرب در انتهای محدوده به علاوه نصف دامنه حرکت کنترل کننده. (pi / 2) با افزودن نیمی از دامنه حرکت مطمئن می شوید که عدد منفی نیست و افزودن ضرب در پایین محدوده باعث می شود مطمئن شوید که با محدوده مورد نظر شما هماهنگ است.

هنگام تبدیل اعشار به عدد صحیح ، C ++ گرد نمی شود. در عوض ، اعشار را قطع می کند ، بنابراین 9.9 به 9 تبدیل می شود. با افزودن 0.5 در انتها مطمئن می شوید که هر چیزی بیش از نصف به عدد صحیح بعدی می رود ، بنابراین گرد می شود.

پس از بارگذاری برنامه خود ، مطمئن شوید که با jstest کار می کند.

مرحله 6: کنترل کننده را دوباره مونتاژ کنید

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

مرحله 7: بهبودهای احتمالی

برخی پیشرفت ها وجود دارد که می توان انجام داد. این شامل:

  • استفاده از سیم آهنربای کمتر دست و پا گیر
  • همه چیز را روی یک PCB نصب کنید که برای قرارگیری در کیف کنترل طراحی شده است
  • اتصال مجدد چوب آنالوگ سمت چپ و اتصال پایه ها به ورودی های آنالوگ در آردوینو تا بتوان از آنها برای تنظیم آردوینو استفاده کرد
  • تهیه قطعه قاب پشتی برای کنترلر بی سیم و قرار دادن پروژه در محفظه باتری (این امر نیاز به برش سوراخ برای کابل USB دارد)

توصیه شده: