Mündəricat:
- Addım 1: Lazım olacaq:
- Addım 2: Nəzarətçini ayırın
- Addım 3: Komponentləri yerinə yapışdırın
- Addım 4: Telləri Lehimləyin
- Addım 5: Arduino proqramlaşdırın
- Addım 6: İdarəçini yenidən yığın
- Addım 7: Mümkün təkmilləşdirmələr
Video: Xbox 360 Nəzarətçi Accelerometer/girro Sükan Modu: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Xbox 360 nəzarətçimlə Assetto Corsa oynayıram. Təəssüf ki, analoq çubuqla sükan idarə etmək çox çətin deyil və təkər qurmaq üçün yerim yoxdur. Bütün idarəedicini sükan çarxı kimi istifadə edə biləcəyimi düşündüyüm zaman idarəediciyə daha yaxşı bir sükan mexanizmi bağlaya biləcəyimi düşünməyə çalışdım.
Analoq çubuqda iki potensiometr var. Biri şaquli hərəkəti, biri üfüqi hərəkəti ölçür. Hər birinə 1.6V keçirir və çubuğun nə qədər hərəkət etdiyini təyin etmək üçün silecekdə istehsal olunan gərginliyi ölçür. Bu o deməkdir ki, silecek piminə müəyyən bir gərginlik verərək çubuq hərəkətini idarə etmək mümkündür. (daha çox məlumat burada:
Bu mod, accelerometer oxunuşlarından bucağı hesablamaq və DAC vasitəsilə analoq çubuq hərəkətinə çevirmək üçün bir Arduino istifadə edir. Buna görə, analoq çubuğu giriş olaraq istifadə edən hər hansı bir oyunla işləməlidir.
Addım 1: Lazım olacaq:
Alətlər:
- Lehimleme dəmir
- Lehim
- Lehim emici/örgü
- Tel çıxarıcı
- Bir tornavida, bəlkə də idarəedicinizdəki vintlərdən asılı olaraq bir Torx (mənimki başlıqdır)
- Yapışqan (tercihen super güclü yapışqan deyil, buna görə də sonradan parçalana bilər)
- Arduino proqramlaşdırmaq üçün USB -dən seriya adapteri
Materiallar:
- Xbox 360 Nəzarətçisi (duh!)
- Arduino Pro Mini (və ya bir klon) (tercihen 3.3V. 5V versiyasını istifadə edirsinizsə, ehtimal ki, bir qədər artan gərginlik çeviricisinə ehtiyacınız olacaq)
- MPU-6050 giroskop/akselerometr
- MCP4725 DAC (hər iki oxu idarə etmək istəyirsinizsə iki)
- Bir az nazik tel
- Lehimdən əvvəl hər şeyi sınaya biləcəyiniz bir çörək taxtası (isteğe bağlı, lakin tövsiyə olunur)
Addım 2: Nəzarətçini ayırın
Sökməli olduğunuz yeddi vida var. Onlardan altısı açıqdır, amma yeddisi etiketin arxasındadır. Güman edirəm ki, silmək zəmanətinizi ləğv edir, buna görə də öz riski ilə hərəkət edin. Bir çox bələdçi Torx tornavidasına ehtiyacınız olduğunu söyləyir, amma mənimki çarpazdır, buna görə nəzarətçinizi yoxlayın.
Bundan sonra arxa qapağı diqqətlə çıxarın. Ön tərəfi götürsəniz, düymələr dağılacaq və yəqin ki, bütün otağa keçəcək. Aşağıdan qaldırın. Sonra iki vibrasiya motorunu ayırın. (kiçik çəkisi olan biri solda, böyük çəkisi isə sağda olmalıdır) PCB -ni çıxarın və analoq çubuqların üzərindəki rezin qapaqları çıxarın. Sadəcə çıxarırlar.
Növbəti şey, sol analog çubuğu çıxarmağımızdır ki, girişimizə müdaxilə etməsin, amma sol tətik mexanizmi yolda. Sökmək üçün lövhənin ön tərəfindəki potensiometrdən üç sancağı açmalısınız, sonra mexanizmi PCB -dən ayırın.
Sonra, sol analog çubuğu tutan 14 sancağı soyun. Sonra çubuğu çıxarın.
Addım 3: Komponentləri yerinə yapışdırın
PCB -nin arxası ilə korpus arasında kifayət qədər boşluq olduğunu görəcəksiniz. Bu, heç bir şeyi çıxarmadan bütün avadanlıqları çantaya qoymağa imkan verir.
Yalnız sonra başa düşdüm, amma Arduino -da sıfırlama düyməsini açmaq üçün yaxşı bir vaxt olardı. Əks təqdirdə, işin arxasına basacaq və vintləri yenidən yığarkən çox sıxarsanız, layihənin işləməyinə səbəb olacaq.
İzolə etmək üçün hər bir PCB -nin arxasına nazik bir kart yapışdırdım, sonra nəzarətçinin PCB -nə yapışdırdım. Yapışqan istifadə etməkdən çəkindim, amma daha yaxşı bir yol düşünə bilmədim.
Şəkildəki mövqelər tapa biləcəyim ən yaxşı birləşmədir. Arduino sol tərəfdədir, sıfırlama düyməsi olan kənar sağ tətik mexanizmindən plastik parçaya qarşı, digər tərəfi də telin altında və küncü ağ konnektora mümkün qədər yaxındır. Davada bir az qabarıqlıq var, amma onu qoymaq üçün daha yaxşı bir yer tapa bilmədim.
Akselerometr telin sağ tərəfindədir. Mümkün qədər düz və düz olmalıdır, əks halda ofseti kompensasiya etmək üçün daha sonra bir kod yazmalı ola bilərsiniz. Korpusun arxasında çıxmamaq üçün diqqətli olmalı olduğunuz bəzi çıxıntılı plastik parçalar olduğunu unutmayın. Çıxan plastik parçalara dodaq boyası kimi yapışqan və rəngarəng bir şey qoya biləcəyinizi, sonra iz buraxdığını görmək üçün arxa qapağı taxa biləcəyinizi gördüm.
DAC (lər) sol alt küncdədir. Hər iki oxu idarə etmək istəyirsinizsə, bir -birinin üstünə iki DAC yığmaq üçün burada kifayət qədər boşluq var. Onları yapışdırmaq lazım deyil. Yalnız lehimli bağlantılarla olduqları yerdə qalacaqlar. Aralarında kart yapışdırırsınızsa, SCL, SDA, VCC və GND -ni əlçatan etmək üçün kartı kəsdiyinizə əmin olun, çünki hər iki tərəfdən də onlara daxil olacaqsınız.
İki DAC istifadə edirsinizsə, ünvan tullananını dəyişdirməyi və burada təsvir edildiyi kimi onlardan birində çəkmə rezistorlarını deaktiv etməyi unutmayın: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -çevirici-bağlama bələdçisi
Addım 4: Telləri Lehimləyin
İndi hər şeyi birləşdirməlisiniz. Bütün 2/3 cihazlarından VCC, GND, SDA və SCL, müvafiq olaraq Arduino üzərindəki VCC, GND, A4 və A5 -ə qoşulmalıdır. DAC -lar ən çətin hissədir. İkiniz varsa, onları bir -birinə bağlamalısınız, bir yerdən çıxarkən güc və xətləri akselerometrə bağlaya bilərsiniz, Çıxış tellərini ayrı saxlayaraq.
DAC -dakı Çıxış pimi, analoq çubuq üçün orta üfüqi potansiyometr pimi üçün istifadə olunan nəzarətçinin PCB -dəki pinə bağlanmalıdır. Yəni, analoq çubuğun olduğu yerdə, yuxarıda üç sancaq sırası var. Ortaya bağlayın. Başqa bir DAC varsa, eyni şəkildə şaquli potansiyometr pininə (soldakı sıra) bağlayın. Tətik dəyişdirildikdə arxadan sancaqlara girə bilməyəcəksiniz, buna görə lövhənin önünə bir tel çəkməlisiniz. Analoq çubuq sahəsinin ətrafında dairəvi bir plastik "divar" var, amma xoşbəxtlikdən içərisində telləri keçirə biləcəyiniz rahat bir boşluq var. Tellərin korpusun ön hissəsindəki vida dirəyinə mane olmadığından əmin olun.
Orijinal planım, Arduino -nu RAW pininə qoşulmuş USB kabelindən 5V ilə gücləndirmək idi, amma sınadığımda alınmadı. Arduino heç bir iş görmədi və həm Arduino, həm də nəzarətçi bir neçə saniyə sonra söndü. Bununla birlikdə, ehtimal ki, periferik cihazları gücləndirmək üçün qara periferik yuvanın yaxınlığında, lövhənin ön hissəsindəki iki sancaqdan sabit 3.3V çıxış olduğunu kəşf etdim. Həm VCC, həm də RAW ilə işləyir, amma VCC -ni seçdim, çünki bu artıq düzgün gərginlikdir və onu lövhənin altına yaxın olan DAC -da VCC telinə lehimləməyimə və tellərə qənaət etməyimə imkan verdiyindən.
Ətrafında işləməli olduğunuz bir çox plastik hissənin çıxdığını unutmayın, ancaq telləri yerinə yapışdırsanız, yalnız bir dəfə narahat olmağınız lazımdır.
Bütün bunları sözlərlə təsvir etmək çətindir, buna görə şəkillər və kobud bir diaqram daxil etdim.
Addım 5: Arduino proqramlaşdırın
İndi Arduino proqramlaşdırmalısınız. Bunun üçün USB kabelini nəzarətçiyə köçürmək lazımdır ki, Arduino üzərindəki seriyalı pinlərə daxil olasınız. İstifadə etdiyim kodu daxil etdim. Burada tapa biləcəyiniz Adafruit MCP4725 kitabxanası lazımdır:
Olduğu kimi, kod, idarəedicini 90 dərəcə sola 90 dərəcə sağa doğru hərəkət etdirərək, analoq çubuğunun bütün hərəkət aralığını bərabər şəkildə keçməyə və düz tutaraq ortada saxlamağa imkan verir.
X oxu g qüvvəsinin Z oxu g qüvvəsinə bölünmüş tərs tangensini hesablayaraq nəzarətçinin bucağını alır. Bu, nəzarətçinin şaquli, düz və ya aralarında hər hansı bir açı olduğu təqdirdə işlədiyi deməkdir. (daha çox məlumat burada:
Nəzarətçimdə işləyir, amma digər idarəedicilər onu hizalamadan çıxarıb fərqli gərginlik tələb edə bilər. Düşünürəm ki, gərginlik aralığını tapmağın ən yaxşı yolu sınaq və səhvdir. Bir çox oyun sizə analoq çubuq hərəkəti üçün bir kaydırıcıyı göstərəcək, ancaq hərəkəti təyin etmənin ən doğru yolu Linux -da jstest -dir. (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) Qrafikdən çox -32, 767 ilə 32, 767 arasında bir rəqəm verir, buna görə də çubuğun harada olduğunu dəqiq bilirsiniz. Həm nəzarətçini, həm də Arduino USB -ni seriya adapterinə qoşun, jstest yükləyin və aralığın yuxarı və aşağı hissəsinə çatana qədər fərqli DAC dəyərlərini sınayın və hər birini qeyd edin. Mənim üçün 1 593 - 382 idi.
Xüsusi maraq 36 -cı sətirdir:
dacvalue = (nəzarətçi açısı + 2.5617859169446084418) / 0.0025942135867793503208 + 0.5;
Nə etdikləri dərhal aydın deyil. Sadəcə olaraq, nəzarətçinin bucağını alır (radianlarla ölçülür və ~ 1.57 ilə ~ 1.57 arasında) və DAC üçün 1, 593 ilə 382 arasında olan bir dəyərə çevirir. Fərqli bir DAC aralığınız varsa, bu xətti dəyişdirməlisiniz.
Xətti belə yazmaq olar:
dacvalue = (nəzarətçi açısı +) / + 0.5;
Nömrələrlə birlikdə olmaq və dəyişdirmək lazımdır. DAC dəyərlərinin ümumi aralığına bölünən nəzarətçi açısının (pi) aralığına bərabərdir. (aralığın üstü ilə aralığın alt hissəsi) Nəticələr istədiyiniz diapazondan kənarda olsa da, gərginliyi dəyişdiyinizə qədər əldə edir. Buna görə ehtiyacınız var. aralığın dibi ilə üstəgəl nəzarətçinin hərəkət aralığının yarısı ilə bərabərdir. (pi / 2) Hərəkət aralığının yarısını əlavə etmək, bunun mənfi bir rəqəm olmadığını və aralığın alt hissəsi ilə vurulmasının istədiyiniz aralıqla sinxronizasiya olunmasını təmin edir.
Ondalıkları tamsayıya çevirərkən C ++ yuvarlaqlaşmır. Bunun əvəzinə ondalı kəsir, beləliklə 9.9 9 olur. Sonda 0,5 əlavə etmək, yarısından yuxarı olan hər hansı bir şeyin növbəti tamsayıya keçməsini təmin edir, beləliklə yuvarlaqlaşdırılır.
Proqramınızı yüklədikdən sonra onun jstest ilə işlədiyinə əmin olun.
Addım 6: İdarəçini yenidən yığın
Nəzarətçini, sol analoq çubuğu çıxarmaqla ayırdığınız kimi bir yerə yığın. İndi işləməlidir. Görürəm ki, heç bir gecikmə yoxdur və analoq çubuq istifadə etməkdən daha yaxşıdır. Bir akselerometrdən istifadə etdiyi üçün ani hərəkətlərdən təsirlənir, ancaq fərqinə varmaq üçün kənara çıxmalısan.
Addım 7: Mümkün təkmilləşdirmələr
Bəzi təkmilləşdirmələr edilə bilər. Bunlara daxildir:
- Daha az çətin maqnit teli istifadə etməklə
- Hər şeyi nəzarətçi qutusuna yerləşdirmək üçün hazırlanmış bir PCB -yə yapışdırın
- Sol analog çubuğu yenidən bağlamaq və ayaqları Arduinonun analoq girişlərinə bağlamaq üçün Arduino -nu tənzimləmək üçün istifadə edilə bilər.
- Simsiz nəzarətçi üçün arxa korpus parçasını almaq və layihəni batareya bölməsinə qoymaq (bunun üçün USB kabeli üçün bir çuxur kəsmək lazım olacaq)
Tövsiyə:
BBC Micro: bit və Scratch - İnteraktiv Sükan və Sürüş Oyunu: 5 addım (şəkillərlə)
BBC Micro: bit və Scratch - İnteraktiv Sükan və Sürüş Oyunu: Bu həftə sinif tapşırıqlarımdan biri yazdığımız bir Scratch proqramı ilə əlaqə yaratmaq üçün BBC Micro: bit istifadə etməkdir. Düşündüm ki, gömülü bir sistem yaratmaq üçün ThreadBoard -dan istifadə etmək üçün mükəmməl bir fürsətdir! Sıfırdan ilham aldığım üçün
Ən asan karton USB sükan: 6 addım (şəkillərlə birlikdə)
Ən Asan Karton USB Sükan: Karantin olduğu üçün evdə qaldığımız üçün bir çox video oyunu oynamağa meylliyik. Yarış oyunları indiyə qədərki ən yaxşı oyunlardan biridir, ancaq klaviaturadan istifadə etmək cansıxıcı olur və Xbox və ya PS nəzarətçinizdən istifadə etmək daha çətindir. Bu səbəbdən də mənə qərar verdim
Dump və 4WS Dörd Sükan ilə Tonka Truck RC Dönüşümü: 6 Addım (Şəkillərlə)
Dump və 4WS Dörd Sükan ilə Tonka Truck RC Dönüşümü: Bir Tonka yük maşınının RC konvertasiyasının orijinal bir fikir olmadığını qəbul edirəm, amma düşündüyümdə, ilk olduğunu düşünürdüm … İnternetdə axtarış edənə qədər, D'oh. Bəli, bu əvvəllər də edilmişdi, amma fikrimcə, hamı bunu çətin şəkildə etdi və uğursuz oldu
Sadə Xbox 360 Rapid Fire Modu: 8 addım (şəkillərlə)
Sadə Xbox 360 Sürətli Atəş Modu: Əminəm ki, Call Of Duty, Halo, Counter Strike və ya Battlefield kimi oyunlarda onlayn oynamısınızsa, modifikasiya edilmiş bir nəzarətçinin nə edə biləcəyini gördünüz. P90 kimi Barret 50 cal çəkin. YENİLƏNİB: Orada
Xbox 360 Rumble Powered Rapid Fire Modu: 6 addım
Xbox 360 Rumble Powered Rapid Fire Modu: Bütün xülya mikroçiplər olmadan xbox 360 nəzarətçinizi modlaşdırmağın asan yolu və hələ də aşkarlanmır (SO FAR). (MODELLƏMƏSİNİZDƏ SİZİN NƏZARƏTÇİNİZƏ YARATILAN HƏR ZƏRƏRƏ SORUMLU DEYİLƏM ---- ÖZ RİSKİNİZDƏ DAVAM EDİN) ŞƏKİLDƏN TƏSSÜF EDİN