Mündəricat:

Sim Yarışı Düymə Qutusu: 8 addım
Sim Yarışı Düymə Qutusu: 8 addım

Video: Sim Yarışı Düymə Qutusu: 8 addım

Video: Sim Yarışı Düymə Qutusu: 8 addım
Video: 🔑 ОТКРЫТИЕ КЕЙСОВ на 300 ТЫСЯЧ - ТЕСТИМ САМЫЕ ДОРОГИЕ КЕЙСЫ | CS GO Кейсы | Открытие Кейсов на Сайте 2024, Noyabr
Anonim
Sim Yarışı Düymə Qutusu
Sim Yarışı Düymə Qutusu

Xoş gəldiniz sim yarış asılısı!

Bütün avtomobil idarəetmələrinizi xəritəyə salmaq üçün düymələriniz tükənirmi? Yəqin ki, bir düymə qutusuna ehtiyacınız var! Bu Təlimat kitabında sıfırdan birini yaradacağıq. Düymə qutusunda 32 (!) Mövcud düymə vəziyyəti olacaq. Bu düymə qutusundan istifadə etmək üçün əlavə proqram tələb olunmur. Arduino yükləmək üçün bir düymə matrisi qurmağı və kod yazmağı (və ya kopyalamağı) öyrənəcəksiniz.

Düymə qutusunun eyni vaxtda basılan bir çox düyməni dəstəkləmədiyini bilmək vacibdir.

Gəlin başlayaq!

Addım 1: Hazırlıq

Hazırlıq
Hazırlıq

Düymə qutusu yaratmaq üçün bəzi vasitələrə, düymələrə və daha çox elementə ehtiyacınız olacaq. İstəyinizə görə düymə qutusu yaratmaqdan çekinmeyin.

Elektronika:

  • Düymələr
  • Keçir
  • Rotary kodlayıcılar
  • Arduino Pro Micro
  • Mini USB -dən USB kabelinə
  • Tellər

Alətlər:

  • Qazma
  • Lehim
  • Kaliper
  • Tornavidalar
  • Kəsici
  • Açar

Proqram təminatı:

  • Arduino IDE
  • Photoshop/Paint (isteğe bağlı; əl ilə çəkilə bilər)

Digər:

  • Korpus (bir qutu; alına bilər və ya xüsusi olaraq 3D çap edilə bilər)
  • Karbon vinil sarğı (isteğe bağlı)
  • Döner kodlayıcı düymələri
  • Ötürücü qapaqlar (isteğe bağlı)
  • Etiket printeri (isteğe bağlı)
  • Kauçuk tutacaq

Bütün (və ya başlamaq üçün kifayət qədər) maddələr əldə etdikdən sonra düymə qutusunun dizaynını tərtib etməyə başlaya bilərik.

Addım 2: Qutunun Layoutunu Dizayn edin

Bu addım üçün lazım olan vasitələr:

Photoshop/Paint (isteğe bağlı; əl ilə çəkilə bilər)

Bir düymə qutusunun dizaynı hər kəs üçün fərqli ola bilər. Bununla birlikdə, bu Təlimat üçün aşağıdakılardan ibarət bir düzeni istifadə edəcəyik:

  • 4x üç yollu keçid açarları
  • 2x bir tərəfli keçid açarları
  • 10 dəfə sadə düymələr
  • Sadə düymə ilə 4x dönər kodlayıcı

Üç yollu keçid açarları:

Bir çox növ keçid açarı var. Bəziləri bir anlıqdır, bəziləri isə geri dönənə qədər yerində qalır. Hansı növdən istifadə etməyiniz sizə bağlıdır, amma bu düymə qutusunun eyni anda birdən çox düyməni aktiv etməsinə qadir olmadığı üçün bir anlıq açarlardan istifadə etməyi məsləhət görürəm. Keçid açarları üç tərəfli olduğundan (açma/söndürmə/açma), bizdə səkkiz (4x2) düymə mövcuddur.

Bir tərəfli keçid açarları:

Bunlar sadə düymələr hesab edilə bilər (söndürmə/açma). Bunlar da bir anlıq və ya keçidli ola bilər. Yenə hansı şəxsi seçəcəyinizə görə. Bunlar bizə iki (2) mövcud düymə verir.

Sadə düymələr:

Bu kimi düymələrdən sadəcə basmaqla (açmaq/açmaq) istifadə etmək olar. Bunlar bizə on (10) düymə verəcək.

Sadə düymə ilə fırlanan kodlayıcılar:

Əksər dönər kodlayıcılar (hamısı olmasa da) sonsuza qədər hər iki istiqamətə çevrilə bilər. Hər dəfə onları bir düyməyə basmaq kimi istifadə etdiyiniz istiqamətə döndərin. Bu fırlanan kodlayıcılara başqa bir düymə verməklə də basmaq olar. Döner kodlayıcılar on iki (12 = 4x3; sola döndür/sağa döndür/bas) düymələri verir.

32 düymə:

Hamısının bir arada olması bizə 32 (8+2+10+12) düymə basma imkanı verir!

Layihədən razısınızmı? Tikintiyə başlamaq vaxtıdır!

Addım 3: Ölçün və qazın

Ölç və qazma
Ölç və qazma
Ölç və qazma
Ölç və qazma

Bu addım üçün lazım olan vasitələr:

  • Kaliper
  • Qazma
  • Elektronika (düymələr, açarlar və s.)

Düymə qutunuza əlavə etmək istədiyiniz bütün düymələri ölçün. Elektronikinizin ölçülərini tapmaqda çətinlik çəkirsinizsə, diametrini əldə etmək üçün (rəqəmsal) kaliperdən istifadə edin.

Kassanızın ön tərəfindəki elektronikanın mərkəz nöqtələrini qeyd edin və düzgün ölçülərdə deliklər qazın. Korpusu bir az daha estetik etmək istəyirsiniz? Düymələri bağlayaraq gözləyin!

Delikləri qazmağı bitirdikdən sonra əsl düymə qutusu kimi görünməyə başlaya bilərik!

Addım 4: Düymələri, Dönərləri və Keçidləri uyğunlaşdırın

Düymələri, Dönərləri və Keçidləri uyğunlaşdırın
Düymələri, Dönərləri və Keçidləri uyğunlaşdırın
Düymələri, Dönərləri və Keçidləri uyğunlaşdırın
Düymələri, Dönərləri və Keçidləri uyğunlaşdırın

Bu addım üçün lazım olan vasitələr:

  • Elektronika (düymələr, açarlar və s.)
  • Açar
  • Karbon vinil sarğı (isteğe bağlı)
  • Kəsici (isteğe bağlı)

Bütün elektronikləriniz vidalanması üçün bir qoz ilə gəlməlidir. Əgər olmasa; onları ölçün və uyğun ölçüdə qoz alın.

Düymə qutunuzun görünüşünü yaxşılaşdırmaq istəyirsinizsə (şəxsi rəy) karbon lifli vinil örtükdən istifadə edə bilərsiniz. Delikləri qazdığınız korpusun üzünün ölçüsünə (və bir az daha böyük) kəsin. Vinili tətbiq edin və küncləri arxa tərəfə sarın. Bu, qapaq bağlandıqda sarğının yerində qalmasını təmin edəcək. Artıq delikləri bağlayan həddindən artıq vinil bir kəsici istifadə edərək çıxarıla bilər.

Sarğı taxdıqdan sonra (və ya etmədən) düymə qutunuzun ön hissəsini yaratmaq üçün elektronikaya sığdıra bilərsiniz. İndi həqiqətən bənzər bir şeyə sahib olmalısınız! Təəssüf ki, hələ də işləmir…

Addım 5: Kabel Planını Dizayn edin

Kabel Planını Dizayn edin
Kabel Planını Dizayn edin

Bu addım üçün lazım olan vasitələr:

Photoshop/Paint (isteğe bağlı; əl ilə çəkilə bilər)

Bir matris yaratmaq:

Bir matrisdən istifadə etməklə vaxtımıza və bir çox lazımsız naqillərə və lehimləməyə qənaət edəcəyik. Özüm çox təfərrüata girməyəcəyəm, ancaq bir matris anlayışı ilə əlaqəniz yoxdursa, bu məqaləyə baxmağınızı təklif edərəm.

Öz matrisinizi dizayn edin və ya bu Təlimatçının sxemindən istifadə edin. Matrisdə beş qrupdan istifadə edəcəyik. Qruplar Arduino üzərindəki aşağıdakı pinoutlara bağlıdır:

  • 15: dörd dönər kodlayıcı
  • A0: beş düymə
  • A1: iki üç yollu keçid və bir düymə
  • A2: iki üç yollu keçid və bir düymə
  • A3: beş düymə

Addım 6: Lehimləmə

Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə

Bu addım üçün lazım olan vasitələr:

  • Lehimleme dəmir
  • Lehim
  • Elektronika (korpusunuza quraşdırılmışdır)
  • Arduino Pro Micro
  • Tellər

İsteğe bağlı:

Lehimləməkdən narahat olsanız, ilk növbədə kodu növbəti addımdan yükləyin. Bu, əlaqələrinizi yoxlamağa imkan verəcəkdir

Əvvəlki mərhələdə hazırlanmış matrisi faktiki düymə qutusuna tətbiq etmək istəyirik. Bunun üçün bir az vaxt ayırın, xüsusən də ilk dəfə lehimləyirsinizsə.

Bəzi məsləhətlər:

  • Bir anda bir qrup edin
  • Bəzən test etmək üçün Arduino'yu kompüterinizə qoşun
  • Plastik düymələri çox qızdırmayın, çünki onlar əriyib əlaqələri kəsə bilər
  • Çox lehim istifadə etməyin, daha az yaxşıdır
  • Hər qrup/torpaq üçün fərqli rəngli tellərdən istifadə edin

Addım 7: Kod yazmaq

Bu addım üçün lazım olan vasitələr:

  • Arduino IDE
  • Joystick kitabxanası
  • Keypad.h (Arduino IDE> Eskiz> Kitabxanaya Daxil Et> Kitabxanaları İdarə Edin …> Klaviatura axtarın və Mark Stanley və Alexander Brevig tərəfindən yaradılanı quraşdırın)

#daxil edin #daxil edin

#ENABLE_PULLUPS -u təyin edin

#NUMROTARIES 4 #NUMBUTONS təyin 24 #NUMROWS 5 #NUMCOLS 5 təyin et

bayt düymələri [NUMROWS] [NUMCOLS] = {

{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23}, };

struktur rotariesdef {

bayt pin1; bayt pin2; int ccwchar; int cwchar; uçucu işarəsiz char vəziyyəti; };

rotariesdef rotaries [NUMROTARIES] {

{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };

#DIR_CCW 0x10 təyin edin

#define DIR_CW 0x20 #define R_START 0x0

#ifdef YARIM_ADAM

#define R_CCW_BEGIN 0x1 #define R_CW_BEGIN 0x2 #define R_START_M 0x3 #define R_CW_BEGIN_M 0x4 #define R_CCW_BEGIN_M 0x5 const imzasız tablo [6] [4] RST_ST_RIN_RIN R_CCW_BEGIN {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START}, // R_CW_BEGIN {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START}, // R_START_M (11) {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START}, // R_CW_BEGIN_M {R_START_M, R_START_M | R_START_M | DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},}; #başqa #define R_CW_FINAL 0x1 #define R_CW_BEGIN 0x2 #define R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #define R_CCW_FINAL 0x5 #define R_CCW_NEXT 0x6

const imzasız tablo [7] [4] = {

// R_START {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START}, // R_CW_FINAL {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW} // R_CW_BEGIN {R_CW_NEXT, R_CW_BEGIN, R_START, R_START} // R_CW_NEXT {R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START} // R_CCW_BEGIN {R_CCW_NEXT, R_START, R_CCW_BEGIN, R_START} // R_CCW_FINAL {R_CCW_NEXT, R_CCW_FINAL, R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},}; #endif

bayt sıraPinləri [NUMROWS] = {21, 20, 19, 18, 15};

bayt colPins [NUMCOLS] = {14, 16, 10, 9, 8};

Keybad buttbx = Klaviatura (makeKeymap (düymələr), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, yalan, yalan, yalan, yalan, yalan, yalan, yalan, yalan, yalan, yalan);

boş quraşdırma () {

Joystick.begin (); rotary_init ();}

boşluq döngəsi () {

CheckAllEncoders ();

CheckAllButtons ();

}

yoxlayın CheckAllButtons (etibarsız) {

if (buttbx.getKeys ()) {for (int i = 0; i

boş rotary_init () {

üçün (int i = 0; i

imzasız char rotary_process (int _i) {

imzasız char pinstate = (digitalRead (rotaries [_i].pin2) << 1) | digitalRead (fırlanan [_i].pin1); rotaries [_i].state = ttable [rotaries [_i].state & 0xf] [pinstate]; qayıt (dönərlər [_i]. dövlət & 0x30); }

void CheckAllEncoders (void) {for (int i = 0; i <NUMROTARIES; i ++) {

işarəsiz char nəticə = rotary_process (i); if (nəticə == DIR_CCW) {Joystick.setButton (dönərlər .ccwchar, 1); gecikmə (50); Joystick.setButton (fırlanan .ccwchar, 0); }; if (nəticə == DIR_CW) {Joystick.setButton (dönərlər .cwchar, 1); gecikmə (50); Joystick.setButton (fırlanan .cwchar, 0); }; }}

  1. USB kabelini qoşaraq Arduino Pro Micro -nu kompüterinizə qoşun
  2. Kodu yükləmək üçün Alətlər> İdarə Heyəti:…> Arduino/Genuino Micro -ya gedərək Arduino növünü seçin.
  3. Doğru USB portunu seçmək üçün Alətlər> Port:> COM x (Arduino/Genuino Micro) bölməsinə keçin.
  4. Sol üst küncdəki ✓ düyməsini tıklayaraq eskizi yoxlayın (Faylın altında)
  5. Arduinoya yükləmək üçün yanındakı → düyməsini basın

Addım 8: Qurğunuza əlavə edin

Qurğunuza əlavə edin
Qurğunuza əlavə edin

Təbrik edirik! Sən bu qədər irəli getdin. İndi yarışma vaxtıdır!

Tövsiyə: