Mündəricat:

Yolda Nəzarətçi: 8 addım
Yolda Nəzarətçi: 8 addım

Video: Yolda Nəzarətçi: 8 addım

Video: Yolda Nəzarətçi: 8 addım
Video: 8 hikoya | @AbdukarimMirzayev2002 2024, Noyabr
Anonim
Yolda Nəzarətçi
Yolda Nəzarətçi
Yolda Nəzarətçi
Yolda Nəzarətçi
Yolda Nəzarətçi
Yolda Nəzarətçi

Ağıllı telefonunuzda oyun oynamağı xoşlayırsınız? Dokunmatik ekran idarəetmələri ilə oyundan bezmisiniz? Bluetooth nəzarətçinizi doldurmağı unutmusunuz? Aldığınız, amma heç istifadə etmədiyiniz yolda bunun üçün istifadəyə ehtiyacınız varmı?

Niyə yolda öz əlinizlə idarə etməyəsiniz?

Əminəm ki, oyuna olduqca gecikmişəm (pun nəzərdə tutulmuşdur), amma bu yaxınlarda köhnə smartfonumun emulyasiya vasitəsi ilə retro oyunlar oynaya bildiyini kəşf etdim. Böyüdükcə Game Boy sistemlərinin böyük bir pərəstişkarı idim və saatlarla oynadığım və gözlərimi uzun avtomobil gəzintilərində sıxdığım üçün batareyam bitməmişdən və ya günəş üfüqdən çox uzağa getməmişdən əvvəl bir qənaət nöqtəsi tapmağa çalışdığımı xatırladım. ekranıma bax. İndi telefonumda oynaya bilərəm və nostalji hiss edə bilərəm, amma arxa işıqlı gözəl bir ekranla. Təşəkkürlər texnologiya!

İmtina: Oyun emulyasiyası təsirli bir mövzudur və bəzi hallarda piratçılığın xəttini kəsir. Zəhmət olmasa özünüzü tərbiyə edin və məsuliyyətlə oynayın!

Fon:

Qısayol klaviaturası hazırladıqdan sonra bu layihəni davam etdirmək qərarına gəldim. Arduino klaviatura kitabxanasını öyrənərkən və qısa yollar taparkən bəzi test düymələrini WASD -ə bağladım. Dərhal PC oyunlarımla işləməyə başladı və təkərlər döndü. Təxminən eyni vaxtda telefonumda audio kitablar üçün yer qalmadı və modelimin microSD kartlara icazə vermədiyi üçün telefonumla USB flash sürücüsünü necə istifadə edəcəyimi araşdırdım. OTG haqqında o vaxt öyrəndim. OTG, ona qoşulmuş cihazı gücləndirmək üçün telefonunuzun batareyasından istifadə edir. Bura klaviatura, siçan və flash sürücülər daxildir. Telefon 5v cihazlarını gücləndirə bilər və arduino micro -nın işləməsi üçün nə lazım olduğunu təxmin edə bilər? Cənnətdə hazırlanmış bir matç idi.

Təchizat

Arduino Micro

Prototip lövhəsi

12 x 6 mm düymələr (klassik çörək taxtasının toxunma ani açarlarından istifadə etdim)

Lehimləmə Dəmiri və Lehim

3D printer

Yolda (OTG) kabel; Özüm etdim

Mikro USB şarj kabeli

Addım 1: Dizayn

Dizayn
Dizayn
Dizayn
Dizayn
Dizayn
Dizayn

Nəzarətçimin portativ olmasını və Super Nintendo dövrünə qədər oyun oynamaq üçün lazım olan bütün düymələri təklif etməsini istədim. Bu o deməkdir ki, 12 düyməyə ehtiyacım olacaq. İstiqamət yastığı (d-pad) üçün dörd, A, B, X, Y, Başlat, Seç, Sol Tetik və Sağ Tetik üçün səkkiz. Həm də simmetrik olmasını istədiyim əlavə bir tələbim var idi ki, hər iki əlimdən istifadə edərək bir əllə oynayım. Bu əlavə tələb qəribə gələ bilər, amma bəzi kontekstdə qeyd etmək istəyirəm ki, son vaxtlar özümü yuxuda olan bir körpə tutduğumu və məhdud oyun vaxtımda yalnız bir əlimdən istifadə etdiyimi qeyd etməliyəm.

Müəyyən edilmiş tələblərə uyğun olaraq nəzarətçimi CAD -da dizayn etməyə başladım. Mən şəxsən OnShape -dən istifadə edirəm, amma bir çox insanın Fusion360 ilə də uğur qazandığını bilirəm. Bu saytda öz yaradıcılığını hazırlayan digər insanlara tez bir zamanda qışqırmaq istəyirəm. Çətin işdir! Hazırladığım dizayn çox sadə idi, amma razı qalmağım üçün hələ çox saat çəkdi. Bunu yazarkən belə etmək istədiyim bir çox inkişafları görürəm.

(Vaxt imkan verdikdə Thingiverse -də.stl fayllarını yerləşdirməyi planlaşdırıram. Fayllar orada olacaq, belə ki, faylları buraya davamlı yükləmədən yeniləyə bilərəm.)

Addım 2: Yaradıcılığınızı çap edin

Yaradıcılığınızı çap edin!
Yaradıcılığınızı çap edin!

Cəmi bir neçə aydır istifadə etdiyim Ender 3 printerim var. 3D çapa girmək istəyirsinizsə, işə başlamaq üçün əla bir printerdir. Bu layihə üçün hissələrimi ölçənə qədər bunun necə olduğunu başa düşmədim. Bu layihəyə qədər yalnız masa üstü oyunlar üçün mini çap etmək üçün istifadə edirdim. Minislər əla çıxdı və ölçülərə o qədər də əhəmiyyət vermədim. Nəticələrdən məmnun qalmağımdan əvvəl bir neçə kalibrləmə kubu və yeni bir filament rulonu aldı.

Addım 3: Prototip lövhənizi hazırlayın

Prototip lövhənizin hazırlanması
Prototip lövhənizin hazırlanması
Prototip lövhənizin hazırlanması
Prototip lövhənizin hazırlanması

Düymələri prototip lövhəsinə lehimləməzdən əvvəl, çörək taxtasındakı bütün düymələri sınadım və eyni zamanda arduino kodumu sınadım. Sonrakı bir addımda kodu keçəcəyəm.

Prototip lövhənizi ölçüsünə endirmək üçün ən yaxşı vaxtdır. Çap edilmiş nəzarətçi korpusunu bələdçi olaraq istifadə edin və hər şeyin üst -üstə düşdüyündən əmin olmaq üçün düymələrə quru oturun. Sadəcə bir az tel kəsdim və artıq lövhəni kəsdim, sonra kənarlarını təxminən 150 qranit zımpara ilə zımparaladım.

Arduino micro -nun daxili çəkmə rezistorlarından istifadə etdiyimiz üçün idarəedicinin naqilləri həqiqətən sadədir. Bütün düymələr bir girişə və yerə gedir. İstifadə etdiyim düymələr ümumi 6 mm toxunma ani açarlarıdır.

Düymələri arduinoya lehimləmək, həll etmək üçün əyləncəli kiçik bir tapmaca idi. Düymələrdən bəziləri arduinonun altındaydı və arduinonu prototip lövhəsinə lehimləməzdən əvvəl altından tellər çıxarmalı oldum. Lövhənin düymə tərəfinə yaxından baxsanız, istiqamətləndirici pad üçün sağa və sola qaçırdım.

Xüsusi dizaynım üçün yuxarı və aşağı istiqamətli düymələri (sol və sağ istiqamət düymələrini əldən verdim) əlavə uzun tellərlə birlikdə prototip lövhəsinə lehimlədim, sonra lövhəni çevirib arduino lehimlədim. Düymələri təsadüfi olaraq bir -bir lehimlədiyim üçün diaqramım yoxdur (kifayət qədər maraq varsa birini yükləyə bilərəm). Arduino bərkidildikdən sonra lövhəni düymə tərəfinə çevirdim, qalan düymələri və tellərini lehimlədim.

Addım 4: İsteğe bağlı: Nəzarətçi korpusunu düzəldin

Son montajdan əvvəl zımpara etmək, boşluqları doldurmaq və nəzarətçi korpusunu rəngləmək yaxşı vaxtdır. Dərhal istifadə edəcəyim bir şeyə sahib olmaq istədiyim üçün prototipim üçün bu addımı atmağı seçdim. İstər -istəməz dizaynımı daha cilalanmış bir şeyə təkmilləşdirdiyim zaman ona layiq olduğu ağrını verərəm.

Addım 5: Son Quraşdırma

Final Məclisi
Final Məclisi

İndi bütün düymələrinizi və tamamlanmış prototip lövhənizi korpusa yerləşdirməyin vaxtıdır. Dizaynım üçün #4-24 x 1/2 təbəqə metal vintlərdən istifadə etdim. İşi görürlər, amma istədiyim qədər uyğun gəlmir.

Addım 6: Arduino proqramlaşdırın

Lövhəni hələ dizayn edərkən və ya hər şeyi prototip lövhəsinə lehimlədikdən sonra bu addımı daha əvvəl etmək istəyə bilərsiniz. Bunun öz bölməsində olmasını sevirəm.

Kod gördüyüm arduino proqramlarına nisbətən çox sadədir. Yalnız hər düyməyə bir klaviatura dəyəri təyin etməliyik və arduino hansı düymələrin basıldığını yoxlamaq və bu məlumatları telefonumuza göndərmək üçün keçəcəkdir.

Maraqlananlar üçün retro oyunlarımı oynamaq üçün retroArch tətbiqindən istifadə edirəm. İstifadə etdiyim düymələr retroArch üçün istifadə olunan standart klaviatura düzeni üçün təyin edilmişdir.

#include #include "Keyboard.h" #define NUM_BUTTONS 12 const uint8_t BUTTON_PINS [NUM_BUTTONS] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // a = 'x' // b = 'z' // x = 's' // y = 'a' // sol çiyin = 'q' // sağ çiyin = 'w' // seçin = 'rshift '// start =' daxil edin '// yuxarı =' düymə: yuxarı '// aşağı =' düymə: aşağı '// sol =' düymə: sol '// sağ =' açar: sağ 'const char BUTTON_KEYS [NUM_BUTTONS] = {KEY_RETURN, KEY_DOWN_ARROW, KEY_UP_ARROW, KEY_LEFT_ARROW, KEY_RIGHT_ARROW, KEY_RIGHT_SHIFT, 'z', 'x', 's', 'a', 'q', 'w'}; Sıçrama * düymələri = yeni Sıçrama [NUM_BUTTONS]; void setup () {for (int i = 0; i <NUM_BUTTONS; i ++) {button .attach (BUTTON_PINS , INPUT_PULLUP); düymələr .aralıq (25); } // klaviatura üzərində nəzarəti başlat: Keyboard.begin (); } void loop () {// dəyərin dəyişdiyini yoxlayın (int i = 0; i <NUM_BUTTONS; i ++) {düymələri . ulduz (); əgər (düymələr . düşdü ()) {Keyboard.press (BUTTON_KEYS ); } if (düymələr .rose ()) {Keyboard.release (BUTTON_KEYS ); }}}

Addım 7: Oyunlarınızı oynayın

Oyunlarınızı Oynayın!
Oyunlarınızı Oynayın!

Alternativ olaraq, bu nəzarətçi, OTG kabeli olmayan bir PC ilə əsas düymələri və ya makroları göndərmək üçün istifadə edilə bilər. Bir dostum da var idi ki, belə bir nəzarətçinin tablet çəkmək üçün də faydalı ola biləcəyini söyləmişəm, baxmayaraq ki, əvvəllər heç vaxt qarışmamışam.

Ümid edirəm bu Təlimatı faydalı tapdınız. Aşağıda proses zamanı öyrəndiklərimi və fərqli etmək istədiklərimi öyrənmək istəyənlər üçün öyrənilmiş dərslər bölümü var.

Addım 8: Öyrənilən dərslər

CAD:

Keçmişdə heç vaxt CAD proqramı ilə çox qarışmamışam və bu dizaynla yolda öyrənməli oldum. Əvvəlcə Wii Nunchuk kimi əllərinizə uyğun daha dik bir dizaynla getdim. Üzvi formalarla dizayn etməklə bağlı məhdud bilgim mənim uğursuzluğum idi. Bəlkə də Intructables -ı CAD dizayn sinifinə almalıyam.

Düymələr:

İstifadə etdiyim düymələr istədiyimdən daha yüksək idi (xüsusən də kiminsə oyanmasına mane olmaq istəyərkən). Daha sakit düymələr tapmaq istərdim. Düymələr və düymə qapaqları arasında yayların olması, quruluşun daha cilalanmış hiss olunmasına kömək edəcək. Düymələrdə zövqümə görə çox boşluq var.

Lehimləmə:

Mən lehimləmə təcrübəsiyəm və çox möhkəm əllərim yoxdur. Bütün bu kiçik telləri hər yerə lehimləmək, gözlədiyimdən daha uzun çəkdi. Yenidən etməli olsaydım, dəmiri tutmazdan əvvəl tellərimin hara gedəcəyini mütləq xəritəyə salardım. Bu, arduino prototip lövhəsinə yapışdırıldıqdan sonra kəşf etdiyim səhvləri azaldacaq və mənə vaxt qazandıracaqdı.

Tövsiyə: