Mundarija:

Harakat boshqaruvchisida: 8 qadam
Harakat boshqaruvchisida: 8 qadam

Video: Harakat boshqaruvchisida: 8 qadam

Video: Harakat boshqaruvchisida: 8 qadam
Video: YO'L HARAKATI QOIDALAR VA YO'L BELGILARI TAQIQLOVCHI BELGILAR 2024, Iyul
Anonim
Harakat boshqaruvchisida
Harakat boshqaruvchisida
Harakat boshqaruvchisida
Harakat boshqaruvchisida
Harakat boshqaruvchisida
Harakat boshqaruvchisida

Sizga aqlli telefonda o'yin o'ynash yoqadimi? Sensorli ekranli boshqaruv elementlari bilan o'ynashdan charchadingizmi? Bluetooth boshqaruvchisini zaryad qilishni unutdingizmi? Buning uchun siz sotib olgan kabelni ishlatishingiz kerak, lekin hech qachon ishlatmaysizmi?

Nega o'z qo'li bilan boshqaruvchini qilmasligingiz kerak?

Ishonchim komilki, men o'yinga juda kech qoldim (o'yin maqsadli), lekin yaqinda men eski smartfonim emulyatsiya orqali retro o'yinlarni o'ynashga qodirligini aniqladim. Men o'sib ulg'ayganimda, Game Boy tizimlarining ashaddiy muxlisi edim va bir necha soat o'ynaganim va uzoq vaqt avtoulovlarda ko'zlarimni qisganim haqida xotiralarim bor edi, lekin batareyam tugashidan oldin yoki quyosh ufqdan ancha uzoqda edi. mening ekranimni ko'ring. Endi men telefonda o'ynay olaman va nostalgiya qila olaman, lekin orqa yoritilgan yaxshi ekran bilan. Rahmat texnologiya!

Ogohlantirishlar: O'yinni taqlid qilish juda ta'sirli mavzu va ba'zi hollarda qaroqchilik chizig'ini kesib o'tadi. Iltimos, o'zingizni tarbiyalang va mas'uliyat bilan o'ynang!

Fon:

Men klaviatura tugmalarini yaratgandan so'ng, bu loyihani davom ettirishga qaror qildim. Arduino klaviatura kutubxonasini o'rganayotganda va yorliqlar paydo bo'lganda, men ba'zi test tugmalarini WASD -ga bog'ladim. U darhol mening kompyuter o'yinlarim bilan ishlay boshladi va g'ildiraklar aylandi. Taxminan o'sha paytda men telefonda audiokitoblar uchun joy qolmadi va telefonimda USB flesh -diskdan qanday foydalanishni ko'rib chiqdim, chunki mening modelim microSD kartalarga ruxsat bermaydi. O'shanda men OTG haqida bilib oldim. OTG unga ulangan qurilmani quvvatlantirish uchun telefon batareyasidan zaryad oladi. Bunga klaviatura, sichqoncha va flesh -disklar kiradi. Telefon 5V qurilmalarini quvvatlantirishi va arduino micro ishlashi uchun nima kerakligini taxmin qila oladimi? Bu osmonda qilingan o'yin edi.

Ta'minotlar

Arduino Micro

Prototiplar taxtasi

12 x 6 mm tugmachalari (men klassik taxtali taktil lahzali kalitlarni ishlatardim)

Lehimlash temir va lehim

3D printer

Yo'lda (OTG) kabeli; Men o'zim yaratdim

Micro USB zaryadlovchi kabeli

1 -qadam: Dizayn

Dizayn
Dizayn
Dizayn
Dizayn
Dizayn
Dizayn

Men nazoratchim portativ bo'lishini va Super Nintendo davriga qadar o'yinlar uchun zarur bo'lgan barcha tugmalarni taklif qilishini xohlardim. Bu menga 12 tugma kerak bo'ladi degani edi. Yo'nalish paneli uchun to'rtta (d-pad) va A, B, X, Y, Boshlash, Tanlash, Chap Trigger va O'ng Trigger uchun sakkiz. Menda qo'shimcha talab bor edi, men uni nosimmetrik bo'lishini xohlardim, shuning uchun uni ikkala qo'lim bilan bir qo'lda o'ynashim mumkin edi. Bu qo'shimcha talab g'alati tuyulishi mumkin, lekin ba'zi bir kontekstni aytib o'tishim kerakki, yaqinda men o'zimni uxlab yotgan bolani ushlab turaman va o'yin cheklangan vaqtimda faqat bir qo'limdan foydalanaman.

Belgilangan talablar bilan men boshqaruvchimni SAPRda loyihalashni yo'lga qo'ydim. Men shaxsan OnShape -dan foydalanaman, lekin bilaman, ko'p odamlar Fusion360 bilan ham muvaffaqiyat qozonishadi. Men o'z saytimdagi o'z ijodini yaratgan boshqa odamlarga tezda baqirishni xohlayman. Bu qiyin ish! Men o'ylab topgan dizayn juda sodda edi, lekin meni qoniqtirishi uchun hali ko'p soat kerak bo'ldi. Men buni yozayotganimda ham, men ko'p yaxshilanishlarni ko'rmoqchiman.

(Vaqt kerak bo'lganda. Thingiverse -da.stl fayllarini o'rnatishni rejalashtirmoqdaman. Fayllar o'sha erda bo'ladi, shuning uchun ularni bu yerga fayllarni doimiy yuklamasdan yangilashim mumkin.)

2 -qadam: O'z ijodingizni chop eting

O'z ijodingizni chop eting!
O'z ijodingizni chop eting!

Menda faqat bir necha oy bo'lgan Ender 3 printeri bor. Agar siz 3D bosib chiqarishni boshlamoqchi bo'lsangiz, bu ishni boshlash uchun ajoyib printer. Men bu loyiha uchun qismlarimni o'lchagunimcha, bu qanday sodir bo'lganini tushunmadim. Ushbu loyihaga qadar men uni faqat stol usti o'yinlari uchun minislarni chop etish uchun ishlatardim. Minislar ajoyib chiqdi va men o'lchamlarga unchalik ahamiyat bermadim. Natijalardan mamnun bo'lishim uchun bir nechta kalibrlash kublari va filamentning yangi rulosi kerak bo'ldi.

3 -qadam: Prototip kartasini tayyorlash

Prototip kartangizni tayyorlash
Prototip kartangizni tayyorlash
Prototip kartangizni tayyorlash
Prototip kartangizni tayyorlash

Tugmalarni prototip taxtasiga lehimlashdan oldin men taxtadagi barcha tugmalarni sinab ko'rdim va bir vaqtning o'zida arduino kodimni sinab ko'rdim. Kodni keyingi bosqichda ko'rib chiqaman.

Endi prototip taxtasini o'lchamiga qisqartirishning eng yaxshi vaqti. Chop etilgan tekshirgich korpusini yo'riqnoma sifatida ishlating va hamma narsa to'g'ri kelishiga ishonch hosil qilish uchun tugmachalarni quriting. Men bir nechta simni oldim va ortiqcha taxtani kesib tashladim, so'ngra qirralarini 150 ga yaqin qumtosh bilan zımparaladim.

Tekshirgichning simlari juda oddiy, chunki biz arduino micro -ning ichki tortish rezistorlaridan foydalanamiz. Barcha tugmalar kirish va erga o'tadi. Men foydalanadigan tugmalar - umumiy 6 mm tezlikdagi tezkor kalitlar.

Arduino tugmachalarini lehimlash - bu hal qilish uchun qiziqarli kichik jumboq. Ba'zi tugmalar arduino ostida edi va men arduino prototip taxtasiga lehimlashdan oldin uning ostidan simlarni uzib qo'yishim kerak edi. Agar siz taxtaning tugma tomoniga diqqat bilan qarasangiz, men chapga va o'ngga yo'naltiruvchi panelni o'tkazib yubordim.

Maxsus dizayn uchun men yuqoriga va pastga yo'naltiruvchi tugmachalarni (chap va o'ng tomonli tugmachalarni o'tkazib yubordim) prototip taxtasiga lehimladim, bir nechta uzun simlar bilan, keyin taxtani ag'darib arduino lehimladim. Menda diagramma yo'q, chunki men tugmalarni birma -bir tasodifiy lehimladim (agar qiziqish bo'lsa, yuklashim mumkin). Arduino o'rnatilgandan so'ng, men taxtani tugmachaning yon tomoniga o'girdim va qolgan tugmalarni va ularning simlarini lehimladim.

4 -qadam: Majburiy emas: Boshqaruvchi korpusini ko'taring

Yakuniy yig'ilishdan oldin, zımpara qilish, bo'shliqlarni to'ldirish va boshqaruvchi korpusini bo'yash uchun yaxshi vaqt. Men prototipim uchun bu qadamni o'tkazib yubordim, chunki men darhol foydalanadigan narsaga ega bo'lishni xohladim. Agar men muqarrar ravishda dizaynimni yanada jilolangan narsaga aylantirsam, men unga munosib og'riqli ishni beraman.

5 -qadam: Yakuniy yig'ilish

Yakuniy yig'ilish
Yakuniy yig'ilish

Endi barcha tugmachalarni va to'ldirilgan prototip taxtasini korpusga qo'yish vaqti keldi. Men o'z dizaynim uchun #4-24 x 1/2 qatlamli metall vintlarni ishlatardim. Ular ishni bajarishadi, lekin men xohlagan darajada mos kelmaydilar.

6 -qadam: Arduino -ni dasturlash

Siz bu qadamni ilgari ham taxtani loyihalashda yoki hamma narsani prototip taxtasiga lehimlaganingizdan keyin qilishingiz mumkin. Men buni o'z bo'limida bo'lishini yaxshi ko'raman.

Kod men ko'rgan ko'pgina arduino dasturlariga nisbatan juda oddiy. Biz faqat har bir tugmachaga klaviatura qiymatini belgilashimiz kerak va arduino qaysi tugmalar bosilganligini tekshiradi va bu ma'lumotni telefonimizga yuboradi.

Qiziquvchilar uchun men retroArch ilovasidan foydalanib, retro o'yinlarimni o'ynayman. Men ishlatgan tugmalar retroArch uchun ishlatiladigan standart klaviatura tartibiga o'rnatiladi.

#include #include "Keyboard.h" #NUM_BUTTONS 12 const uint8_t BUTTON_PINS [NUM_BUTTONS] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} ni belgilang; // a = 'x' // b = 'z' // x = 's' // y = 'a' // chap yelka = 'q' // o'ng yelka = 'w' // tanlash = 'rshift '// start =' enter '// up =' key: up '// down =' key: down '// left =' key: left '// right =' key: right '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'}; Bounce * tugmalari = yangi pog'ona [NUM_BUTTONS]; void setup () {for (int i = 0; i <NUM_BUTTONS; i ++) {tugmalari .attach (BUTTON_PINS , INPUT_PULLUP); tugmalar . interval (25); } // klaviatura ustidan nazoratni boshlash: Keyboard.begin (); } void loop () {// qiymati o'zgarganligini tekshiring (int i = 0; i <NUM_BUTTONS; i ++) {tugmalari .update (); agar (tugmalar . tushdi ()) {Keyboard.press (BUTTON_KEYS ); } if (tugmalar .rose ()) {Keyboard.release (BUTTON_KEYS ); }}}

7 -qadam: O'yinlaringizni o'ynang

O'yinlaringizni o'ynang!
O'yinlaringizni o'ynang!

Shu bilan bir qatorda, bu tekshirgichni OTG kabeli bo'lmagan kompyuterda tugmachalarni bosish yoki makrolarni yuborish uchun ishlatish mumkin. Mening do'stim ham bor edi, u shunday nazoratchi planshetlarni chizish uchun ham foydali bo'lishi mumkinligini aytdi, lekin men ilgari hech qachon aralashmaganman.

Umid qilamanki, siz ushbu ko'rsatmalarni foydali deb topdingiz. Quyida men bu jarayonda nimani o'rgandim va boshqacha qilishni xohlardim, qiziquvchilar uchun darslar bo'limi keltirilgan.

8 -qadam: Olingan saboqlar

SAPR:

Men ilgari hech qachon SAPR dasturiy ta'minoti bilan hech qachon aralashmaganman va shu dizaynda yo'lda o'rganishga to'g'ri kelgan. Dastlab men Wii Nunchuk kabi sizning qo'llaringizga mos keladigan to'g'ri dizayn bilan bordim. Mening organik shakllar bilan loyihalash haqidagi cheklangan bilimlarim qulab tushdi. Ehtimol, men Intructables -ni SAPR dizayn sinfiga kiritishim kerak.

Tugmalar:

Men ishlatgan tugmalar men xohlaganimdan balandroq edi (ayniqsa, siz kimnidir uyg'otmaslikka harakat qilganingizda). Men tinchroq tugmachalarni topmoqchiman. Tugmalar va tugmachalar orasidagi buloqlarni o'z ichiga olgan holda, binoning yanada jilolanganligini his qilish mumkin. Tugmalar mening ta'mim uchun juda ko'p bo'shashgan.

Lehimlash:

Men lehim bilan tajribasizman va qo'llarim juda barqaror emas. Hamma joyda mayda simlarni lehimlash men kutganimdan ancha uzoq davom etdi. Agar men buni qayta -qayta qilishim kerak bo'lsa, men temirni olishdan oldin simlarim qayerga o'tishini aniq ko'rsatardim. Bu arduino -ni prototip taxtasiga yopishtirgandan keyin topgan xatolarimni yumshatadi va menga vaqtni tejaydi.

Tavsiya: