Мазмуну:

Go Controllerде: 8 кадам
Go Controllerде: 8 кадам

Video: Go Controllerде: 8 кадам

Video: Go Controllerде: 8 кадам
Video: 220 В переменного тока от 12 В 90 А Автомобильный генератор переменного тока 1000 Вт DIY 2024, Июль
Anonim
Go Controllerде
Go Controllerде
Go Controllerде
Go Controllerде
Go Controllerде
Go Controllerде

Сиз смартфонуңузда оюн ойногонду жакшы көрөсүзбү? Сенсордук сенсордук экрандын көзөмөлү менен оюндан чарчадыңызбы? Bluetooth контроллерин кубаттоону унутуп жатасызбы? Бул үчүн сиз сатып алган, бирок эч качан колдонбогон кабелде колдонушуңуз керекпи?

Эмне үчүн өзүңүздү контролердо түзбөйсүз?

Мен оюнга абдан кечигип жатканымга ишенем (оюнга арналган), бирок жакында эле эски смартфонум эмуляция аркылуу ретро оюндарды ойной аларын билдим. Чоңоюп, мен Game Boy системасынын чоң күйөрманы болчумун жана бир нече саат бою ойногондугумду жана батареям өлгөнгө чейин же күн горизонттон өтө алыс болгондо куткаруу пунктун табууга аракет кылып, узун машинада жүргөндө көзүмдү чөгөргөнүмдү эстейм. менин экранды карагыла. Азыр мен телефонумда ойноп, ностальгияны тартуулай алам, бирок арткы жарык экраны жакшы. Рахмат технология!

Disclaimer: Оюн эмуляциясы - бул тема жана кээ бир учурларда каракчылыктын чегине жетет. Сураныч, өзүңүздү тарбиялап, жоопкерчилик менен ойноңуз!

Фон:

Мен жарлык баскычын жасагандан кийин бул долбоорду улантууну чечтим. Arduino клавиатурасынын китепканасын үйрөнүп, жарлыктар менен иштеп жатканда, мен кээ бир тест баскычтарын WASDге байладым. Ал дароо менин PC оюндарым менен иштей баштады жана дөңгөлөктөр бурулду. Ошол эле учурда менде аудиокитептер үчүн телефонумда орун калбай калды жана USB флешкасын телефонум менен кантип колдонуу керектигин карадым, анткени менин моделим microSD карталарына уруксат бербейт. Ошондо мен OTG жөнүндө билдим. OTG ага туташкан түзмөктү иштетүү үчүн телефонуңуздун батареясын колдонот. Буга клавиатура, чычкан жана флешка кирет. Телефон 5v түзмөктөрүн кубаттап, arduino micro иштеши үчүн эмне талап кылынарын биле алат? Бул асманда жасалган матч болчу.

Жабдуулар

Arduino Micro

Прототип тактасы

12 х 6мм баскычтар (мен классикалык нан тактасынын бир нече ирет өчүргүчтөрүн колдондум)

Паяльник жана Лайк

3D принтер

Жолдо (OTG) кабели; Мен өзүмдүкүн жасадым

Micro USB кубаттоо кабели

1 -кадам: Дизайн

Дизайн
Дизайн
Дизайн
Дизайн
Дизайн
Дизайн

Мен контроллеримдин портативдүү болушун жана Super Nintendo дооруна чейин оюндарды ойноо үчүн керектүү болгон бардык баскычтарды сунушташын кааладым. Бул мага 12 баскыч керек экенин билдирген. Багыттоо аянтчасы үчүн төрт (d-pad) жана A, B, X, Y, Start, Select, Left Trigger жана Right Trigger үчүн сегиз. Менде симметриялуу болушун каалаган кошумча талап бар болчу, мен аны бир колум менен бир кол менен ойной алам. Бул кошумча талап кызыктай көрүнүшү мүмкүн, бирок кээ бир контекстти айтуу үчүн, жакында эле мен дайыма уктап жаткан баланы кармап калганымды жана чектелген оюн убактымда бир колумду колдонгонумду айтуум керек.

Аныкталган талаптар менен мен контроллеримди CADда иштеп чыгууну чечтим. Мен жеке өзүм OnShapeти колдоном, бирок Fusion360 менен көптөгөн адамдар ийгиликке жеткенин билем. Мен бул сайттагы башка адамдарга өздөрүнүн чыгармаларын ойлоп чыгаргым келет. Бул оор жумуш! Мен ойлоп тапкан дизайн өтө жөнөкөй болчу, бирок мага канааттануу үчүн дагы көп саат өттү. Мен муну жазып жатканымда, мен жасагым келген көптөгөн жакшыртууларды байкадым.

(Мен пландап жатам, бирок.stl файлдары Thingiverse боюнча. Мүмкүн болгондо файлдар ошол жерде болот, ошондуктан мен бул жерде файлдарды дайыма жүктөп туруп эле жаңырта алам.)

2 -кадам: Жаратууңузду басып чыгарыңыз

Жаратууңузду басып чыгарыңыз!
Жаратууңузду басып чыгарыңыз!

Менде бир нече ай гана болгон Ender 3 принтери бар. Бул 3D принтерге киргиңиз келсе, баштоо үчүн эң сонун принтер. Мен бул долбоордун бөлүктөрүн ченемейинче, бул кандайча болгонун түшүнгөн жокмун. Бул долбоорго чейин мен аны стол үстүндөгү оюндар үчүн мини басып чыгаруу үчүн гана колдонгом. Мини сонун чыкты жана мен өлчөмдөргө анча маани бербедим. Жыйынтыктарга ыраазы болгонго чейин бир нече калибрлөө кубдорун жана жиптин жаңы түрмөгүн алышты.

3 -кадам: Прототип тактаңызды даярдоо

Прототип тактаңызды даярдоо
Прототип тактаңызды даярдоо
Прототип тактаңызды даярдоо
Прототип тактаңызды даярдоо

Прототип тактасына кнопкаларды ширетүүдөн мурун, мен нандын үстүндөгү бардык баскычтарды сынап көрдүм жана ошол эле учурда менин arduino кодумду сынап көрдүм. Мен кодду кийинки кадамда карап чыгам.

Азыр прототип тактаңызды өлчөмүнө чейин кыскартуунун эң жакшы мезгили. Басып чыгарылган контроллериңиздин корпусун колдонмо катары колдонуңуз жана бардык нерселер туура келгенине ынануу үчүн баскычтарды кургатыңыз. Мен жөн эле зым үзүндүлөрүн алып, ашыкча тактайларды кесип алдым, анан тегерете тегиздиктерин 150дөй кумдуу кагаз менен сүртүм.

Контроллердин зымдары чынында эле жөнөкөй, анткени биз arduino microдун ички тартуу резисторлорун колдонуп жатабыз. Бардык баскычтар кирүүгө жана жерге барат. Мен колдонгон баскычтар жалпы 6мм тийүү моменттери.

Ардуинонун баскычтарын ширетүү - чечүү үчүн кызыктуу кичинекей табышмак. Кээ бир баскычтар ардуинонун астында болчу, мен ардуинону прототип тактасына ширетүүдөн мурун анын астынан зымдарды чыгарууга туура келди. Эгерде сиз тактанын баскычы жагын жакшылап карасаңыз, мен багыттоочу аянтчаны солго жана оңго сагындым.

Өзүмдүн конструкциям үчүн мен өйдө жана ылдый багыттоочу баскычтарды (солго жана оңго багыттоочу баскычтарды сагындым) прототип тактасына, кээ бир кошумча узун зымдар менен кошо тактайды оодарып, ардуинону ширеттим. Менде схема жок, анткени мен көбүнчө баскычтарды туш келди туш келди (эгер кызыкчылык болсо, бирин жүктөп коюшум мүмкүн). Ардуино корголгондон кийин, мен тактанын арткы бетине буруп, калган баскычтарды жана алардын зымдарын ширеттим.

4 -кадам: Кошумча: Контролеруңуздун корпусун көтөрүңүз

Акыркы жыйынга чейин кум, боштуктарды толтуруу жана контроллердин корпусун сырдоо үчүн жакшы убакыт. Мен бул кадамды прототипим үчүн өткөрүп жиберүүнү чечтим, анткени мен дароо колдоно турган нерсеге ээ болгум келди. Дизайнымды сөзсүз жакшыртылган нерсеге жакшыртканда, мен ага татыктуу болгон оор жумушту берем.

5 -кадам: Акыркы жыйын

Акыркы жыйын
Акыркы жыйын

Азыр бардык баскычтарыңызды жана толтурулган прототип тактасын корпуска салууга убакыт келди. Мен дизайн үчүн #4-24 x 1/2 барак металл бурамаларын колдондум. Алар жумушту бүтүрүшөт, бирок мен каалагандай туура келбейт.

6 -кадам: Сиздин Arduino программаңыз

Сиз бул кадамды эртерээк тактанын дизайнын жасап жатканда же бардыгын прототип тактасына кошкондон кийин кылгыңыз келиши мүмкүн. Мен муну өзүнүн бөлүмүндө болгонду жакшы көрөм.

Код мен көргөн ардуино программаларына салыштырмалуу абдан жөнөкөй. Бизге ар бир баскычка клавиатура маанисин ыйгаруу керек жана arduino кайсы баскычтар басылганын текшерип, ошол маалыматты биздин телефонго жөнөтөт.

Кызыккандар үчүн мен ретро оюндарын ойноо үчүн retroArch колдонмосун колдоном. Мен колдонгон баскычтар retroArch үчүн колдонулган демейки клавиатура жайгашуусуна коюлган.

#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}; // a = 'x' // b = 'z' // x = 's' // y = 'a' // сол ийин = 'q' // оң ийин = 'w' // тандоо = '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'}; Чыгуу * баскычтары = жаңы Чыгуу [NUM_BUTTONS]; void setup () {for (int i = 0; i <NUM_BUTTONS; i ++) {button .attach (BUTTON_PINS , INPUT_PULLUP); баскычтар . интервал (25); } // клавиатуранын үстүнөн башкарууну инициализациялоо: Keyboard.begin (); } void loop () {// маани өзгөргөнүн текшерүү (int i = 0; i <NUM_BUTTONS; i ++) {button .update (); if (баскычтар .fell ()) {Keyboard.press (BUTTON_KEYS ); } if (баскычтар .rose ()) {Keyboard.release (BUTTON_KEYS ); }}}

7 -кадам: Оюндарыңызды ойноңуз

Оюндарыңызды ойноңуз!
Оюндарыңызды ойноңуз!

Же болбосо, бул контроллерди OTG кабели жок ЖК менен колдонуп, баскычтарды же макростарды жөнөтүүгө болот. Менин дагы бир досум бар болчу, мындай контроллер планшеттерди тартуу үчүн пайдалуу болушу мүмкүн, бирок мен буга чейин эч качан чаташкан эмесмин.

Мен бул Нускаманы пайдалуу деп таптыңыз деп үмүттөнөм. Төмөндө бул процессте мен эмнени үйрөнгөнүмдү жана башкача кылгым келгендерди кызыккандар үчүн сабактар бөлүмү келтирилген.

8 -кадам: алынган сабактар

CAD:

Мен эч качан CAD программасы менен көп чаташкан эмесмин жана бул дизайн менен баратып үйрөнүшүм керек болчу. Башында мен Wii Nunchuk сыяктуу сиздин колуңузга туура келе турган түз дизайн менен бардым. Органикалык фигуралар менен дизайн боюнча менин чектүү билимим менин кулашым болду. Балким, мен Intructablesти CAD дизайн классына кошушум керек.

Баскычтар:

Мен колдонгон баскычтар мен каалагандан да катуураак болду (айрыкча, кимдир бирөөнү ойготпоого аракет кылганыңда). Мен тынчыраак баскычтарды тапкым келет. Баскычтардын жана баскычтын капкактарынын ортосуна булактарды кошуу, курулушту жылтыратуу үчүн бир топ жолду басып өтмөк. Баскычтарда менин табитиме өтө боштук бар.

Lehim:

Мен ширетүүдө башталгычмын жана анча туруктуу колдорум жок. Ошол кичинекей зымдардын баарын бардык жерде ширетүү мен ойлогондон алда канча узак убакытка созулду. Эгерде мен муну дагы бир жолу жасашым керек болсо, мен темирди кармоодон мурун зымдарымдын кайда өтөрүн аныктап көрсөтмөкмүн. Бул ардуинону прототип тактасына чаптагандан кийин тапкан каталарымды жеңилдетет жана мага убакытты үнөмдөмөк.

Сунушталууда: