Mundarija:

Sim poygasi tugmasi qutisi: 8 qadam
Sim poygasi tugmasi qutisi: 8 qadam

Video: Sim poygasi tugmasi qutisi: 8 qadam

Video: Sim poygasi tugmasi qutisi: 8 qadam
Video: Dodge Challenger: 1970 to 2023 The History, Options, & Models 2024, Iyul
Anonim
Sim poyga tugmasi qutisi
Sim poyga tugmasi qutisi

Sim poygasi narkomanlariga xush kelibsiz!

Mashinaning barcha boshqaruv elementlarini xaritaga kiritish uchun tugmachalari tugayaptimi? Ehtimol, sizga tugma qutisi kerak bo'ladi! Ushbu ko'rsatmada biz noldan yaratamiz. Tugmalar qutisida 32 (!) Tugma holati bo'ladi. Ushbu tugmachani ishlatish uchun qo'shimcha dasturiy ta'minot talab qilinmaydi. Siz tugma matritsasini sozlashni va Arduino -ga yuklash uchun kod yozishni (yoki nusxalashni) o'rganasiz.

Tugmalar qutisi bir vaqtning o'zida bosilgan ko'p tugmalarni qo'llab -quvvatlamasligini bilish juda muhimdir.

Qani boshladik!

1 -qadam: tayyorgarlik

Tayyorgarlik
Tayyorgarlik

Tugmalar qutisini yaratish uchun sizga ba'zi asboblar, tugmalar va boshqa narsalar kerak bo'ladi. O'zingizning xohishingizga ko'ra tugmachani yaratishingiz mumkin.

Elektronika:

  • Tugmalar
  • Oʻchadi
  • Rotary kodlovchi
  • Arduino Pro Micro
  • Mini USB -dan USB -kabelgacha
  • Simlar

Asboblar:

  • Matkap
  • Lehim
  • Kaliper
  • Tornavidalar
  • To'sar
  • Kalit

Dasturiy ta'minot:

  • Arduino IDE
  • Photoshop/Paint (ixtiyoriy; qo'lda chizish mumkin)

Boshqa:

  • Qoplama (quti; sotib olish mumkin yoki maxsus 3D bosma)
  • Karbonli vinil o'rash (ixtiyoriy)
  • Aylanadigan kodlovchi tugmalar
  • Qopqoqlarni almashtirish (ixtiyoriy)
  • Yorliqli printer (ixtiyoriy)
  • Kauchuk qistirmalari

Agar sizda hamma narsa (yoki boshlash uchun etarli) bo'lsa, biz tugmalar qutisi tartibini loyihalashni boshlashimiz mumkin.

2 -qadam: qutining tartibini loyihalash

Ushbu qadam uchun zarur bo'lgan vositalar:

Photoshop/Paint (ixtiyoriy; qo'lda chizish mumkin)

Tugma qutisi dizayni har kim uchun har xil bo'lishi mumkin. Ammo, bu ko'rsatma uchun biz quyidagilardan iborat tartibni ishlatamiz.

  • 4 marta uch tomonlama o'tish tugmachalari
  • 2 marta bir tomonlama o'tish tugmachalari
  • 10 marta oddiy tugmalar
  • Oddiy tugmachali 4x aylanuvchi kodlovchi

Uch tomonlama o'tish tugmachalari:

O'tish kalitlarining ko'p turlari mavjud. Ba'zilar bir zumda, ba'zilari esa orqaga qaytguncha joyida qoladilar. Qaysi turni ishlatish sizga bog'liq, lekin men bir zumda kalitlarni ishlatishni maslahat beraman, chunki bu tugma qutisi bir vaqtning o'zida ko'p sonli tugmachalarni faollashtira olmaydi. O'tish tugmachalari uch tomonlama (yoqish/o'chirish/yoqish) bo'lgani uchun bizda sakkizta (4x2) tugma mavjud.

Kalitlarni bir tomonlama almashtirish:

Bularni oddiy tugmalar (o'chirish/yoqish) deb hisoblash mumkin. Bular ham bir lahzali yoki almashtiruvchi bo'lishi mumkin. Shunga qaramay, qaysi birini tanlash shaxsiy xohishingizga bog'liq. Bu bizga ikkita (2) mavjud tugmachani beradi.

Oddiy tugmalar:

Bu kabi tugmachalarni bosish (o'chirish/yoqish) orqali foydalanish mumkin. Bu bizga o'nta (10) tugmachani beradi.

Oddiy tugma bilan aylanadigan kodlovchi:

Ko'pchilik (agar hammasi bo'lmasa) aylanadigan kodlovchi har ikki tomonga cheksiz burilishi mumkin. Har safar ularni yo'nalishga aylantirsangiz, u tugmani bosish sifatida ishlatiladi. Bu aylanuvchi kodlovchilarni bosish mumkin, ularga boshqa tugma beriladi. Aylanadigan enkoderlar o'n ikkita (12 = 4x3; chapga burish/o'ngga burish/surish) tugmachalarini beradi.

32 tugma:

Ularning barchasini birlashtirish bizga 32 (8+2+10+12) tugmachani bosish imkonini beradi!

Tartibdan qoniqdingizmi? Qurilishni boshlash vaqti keldi!

3 -qadam: o'lchash va burg'ulash

O'lchash va burg'ulash
O'lchash va burg'ulash
O'lchash va burg'ulash
O'lchash va burg'ulash

Ushbu qadam uchun zarur bo'lgan vositalar:

  • Kaliper
  • Matkap
  • Elektronika (tugmalar, kalitlar va boshqalar)

Tugmalar qutisiga qo'shmoqchi bo'lgan barcha tugmalarni o'lchang. Agar siz elektronikaning o'lchamlarini topishda qiynalayotgan bo'lsangiz, diametrini bilish uchun (raqamli) kaliperdan foydalaning.

Qoplamaning yuzidagi elektronikaning markaziy nuqtalarini belgilang va kerakli o'lchamdagi teshiklarni burang. Qoplamani biroz estetik jihatdan yoqimli qilishni xohlaysizmi? Tugmalar o'rnatilishini kuting!

Teshiklarni burg'ilashni tugatgandan so'ng, biz uni haqiqiy tugma qutisiga o'xshatib qo'yishimiz mumkin!

4 -qadam: tugmachalarni, aylanuvchi va almashtirgichlarni joylashtiring

Tugmachalarni, aylanuvchi va almashtirgichlarni joylashtiring
Tugmachalarni, aylanuvchi va almashtirgichlarni joylashtiring
Tugmachalarni, aylanuvchi va almashtirgichlarni joylashtiring
Tugmachalarni, aylanuvchi va almashtirgichlarni joylashtiring

Ushbu qadam uchun zarur bo'lgan vositalar:

  • Elektronika (tugmalar, kalitlar va boshqalar)
  • Kalit
  • Vinil karbonli o'ram (ixtiyoriy)
  • To'sar (ixtiyoriy)

Sizning barcha elektron qurilmalaringiz uni burab qo'yish uchun yong'oq bilan birga kelishi kerak. Agar unday bo'lmasa; ularni o'lchab, to'g'ri o'lchamdagi nonni sotib oling.

Agar siz tugmachangiz ko'rinishini yaxshilashni xohlasangiz (shaxsiy fikringiz), siz karbonli tolali vinil qoplamadan foydalanishingiz mumkin. Teshiklarni burg'ilagan korpus yuzining o'lchamiga (va biroz kattaroq) kesib oling. Vinilni qo'llang va burchaklarni orqa tomonga o'rang. Bu o'rash yopilganda yopilish joyida qolishiga ishonch hosil qiladi. Teshiklarni to'sib qo'ygan ortiqcha vinilni kesuvchi yordamida olib tashlash mumkin.

Qoplamani kiyganingizdan (yoki olmaganingizdan) siz tugmachangizning old qismini yaratish uchun elektronikaga o'rnatishingiz mumkin. Sizda haqiqatan ham o'xshash narsaga ega bo'lishingiz kerak! Afsuski, u hali ishlamayapti …

5 -qadam: Kabel sxemasini loyihalash

Kabel sxemasini loyihalash
Kabel sxemasini loyihalash

Ushbu qadam uchun zarur bo'lgan vositalar:

Photoshop/Paint (ixtiyoriy; qo'lda chizish mumkin)

Matritsani yaratish:

Matritsadan foydalanish bizga vaqtni tejaydi va keraksiz simlar va lehimlarni ko'p beradi. Men o'zim tafsilotlarni batafsil bayon qilmayman, lekin agar siz matritsa kontseptsiyasiga befarq bo'lsangiz, ushbu maqolani ko'rib chiqishingizni maslahat beraman.

O'z matritsangizni yarating yoki ushbu yo'riqnomaning sxemasidan foydalaning. Matritsada biz beshta guruhdan foydalanamiz. Guruhlar Arduino -dagi quyidagi pinoutlarga ulangan:

  • 15: to'rtta aylanadigan kodlovchi
  • A0: beshta tugma
  • A1: ikkita uch tomonlama o'tish va bitta tugma
  • A2: ikkita uch tomonlama o'tish va bitta tugma
  • A3: beshta tugma

6 -qadam: Lehimlash

Lehimlash
Lehimlash
Lehimlash
Lehimlash

Ushbu qadam uchun zarur bo'lgan vositalar:

  • Lehimlash temir
  • Lehim
  • Elektronika (korpusga o'rnatilgan)
  • Arduino Pro Micro
  • Simlar

Majburiy emas:

Agar siz lehimlashdan xavotirda bo'lsangiz, avval kodni keyingi bosqichdan yuklang. Bu sizning ulanishlaringizni tekshirishga imkon beradi

Biz oldingi bosqichda ishlab chiqilgan matritsani haqiqiy tugmalar qutisiga qo'llamoqchimiz. Buning uchun biroz vaqt ajrating, ayniqsa, agar siz birinchi marta lehim qilsangiz.

Ba'zi maslahatlar:

  • Bir vaqtning o'zida bitta guruhni bajaring
  • Vaqti -vaqti bilan tekshirish uchun Arduino -ni kompyuteringizga ulang
  • Plastik tugmalarni haddan tashqari qizdirmang, chunki ular erib ketishi va aloqalarni uzishi mumkin
  • Juda ko'p lehim ishlatmang, kamroq yaxshi
  • Har bir guruh/tuproq uchun turli xil rangli simlardan foydalaning

7 -qadam: Kodni yozish

Ushbu qadam uchun zarur bo'lgan vositalar:

  • Arduino IDE
  • Joystick kutubxonasi
  • Keypad.h (Arduino IDE> Sketch> Kutubxonani kiritish> Kutubxonalarni boshqarish …> Klaviaturani qidiring va Mark Stenli va Aleksandr Brevig yaratgan klaviaturani o'rnating)

#qo'shing #qo'shing

#foydalanishni belgilang

#NUMROTARIESni aniqlang 4 #NUMBUTONSni aniqlang 24 #NUMROWSni aniqlang 5 #NUMCOLSni aniqlang 5

bayt tugmalari [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}, };

tuzilish rotariesdef {

bayt pin 1; bayt pin 2; int ccwchar; int cwchar; o'zgaruvchan imzosiz char holati; };

rotariesdef aylanuvchi [NUMROTARIES] {

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

#DIR_CCW 0x10 ni aniqlang

#DIR_CW 0x20 ni belgilang #R_START 0x0

#ifdef YARIM_QADAM

#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 imzosiz jadval [6] [4] RST_ST_R_R_R_R_R_R_R_R_R_R_R_R_R_R_T_R_T_R_T_R_T_R_T_R_T_R_TR_R_CR 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 | DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},}; #boshqa

const imzosiz jadval [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 rowPins [NUMROWS] = {21, 20, 19, 18, 15};

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

Klaviatura buttbx = Klaviatura (makeKeymap (tugmalar), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, yolg'on, yolg'on, yolg'on, yolg'on, yolg'on, yolg'on, yolg'on, yolg'on);

bo'sh o'rnatish () {

Joystick.begin (); rotary_init ();}

void loop () {

CheckAllEncoders ();

CheckAllButtons ();

}

bekor CheckAllButtons (bekor) {

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

bekor rotary_init () {

uchun (int i = 0; i

imzosiz char rotary_process (int _i) {

imzosiz char pinstate = (digitalRead (rotaries [_i].pin2) << 1) | digitalRead (aylanuvchi [_i].pin1); aylanuvchi [_i].shtat = jadval qaytish (rotatorlar [_i]. davlat & 0x30); }

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

imzosiz char natijasi = rotary_process (i); if (natija == DIR_CCW) {Joystick.setButton (aylanuvchi .ccwchar, 1); kechikish (50); Joystick.setButton (aylanuvchi .ccwchar, 0); }; if (natija == DIR_CW) {Joystick.setButton (aylanuvchi .cwchar, 1); kechikish (50); Joystick.setButton (aylanuvchi .cwchar, 0); }; }}

  1. USB kabelini ulab, Arduino Pro Micro -ni kompyuteringizga ulang
  2. Kodni yuklash uchun Asboblar> Kengash: …> Arduino/Genuino Micro -ga o'ting va Arduino turini tanlang.
  3. To'g'ri USB portini tanlash uchun Asboblar> Port:> COM x (Arduino/Genuino Micro) ga o'ting.
  4. Eskizni tekshiring, yuqori chap burchakdagi ✓ tugmasini bosing (Fayl ostida).
  5. Arduino -ga yuklash uchun yonidagi → ni bosing

8 -qadam: Qurilmangizga qo'shing

Qurilmangizga qo'shing
Qurilmangizga qo'shing

Tabriklaymiz! Siz shu qadar uzoqqa keldingiz. Endi poyga vaqti keldi!

Tavsiya: