Мазмуну:

USB Paddle Game Controller: 7 кадам (Сүрөттөр менен)
USB Paddle Game Controller: 7 кадам (Сүрөттөр менен)

Video: USB Paddle Game Controller: 7 кадам (Сүрөттөр менен)

Video: USB Paddle Game Controller: 7 кадам (Сүрөттөр менен)
Video: Восьмибитный киберпанк, который мы заслужили ► 1 Прохождение Huntdown 2024, Ноябрь
Anonim
USB Paddle Game Controller
USB Paddle Game Controller
USB Paddle Game Controller
USB Paddle Game Controller
USB Paddle Game Controller
USB Paddle Game Controller

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

Контроллерлер Понг үчүн DICE райондук деңгээлдеги эмулятору менен же менин так так pygame версиям менен, Atari 2600 эмулятору бар оюндар үчүн жана Etch-a-Sketch сыяктуу функция үчүн Tux Paint сыяктуу сүрөт программасы менен колдонулушу мүмкүн.

Үч которулуу режими бар:

  • Stelladaptor калак эмуляциясы: алар Stelladaptor колдогон бардык Atari 2600 эмуляция программасы менен иштеши керек; Stelladaptor режиминде калактар эки октук эки баскычтуу джойстик катары иштейт, ар бир калак бир окту жана бир баскычты башкарат
  • кош джойстик эмуляциясы: ар бир калак бир баскыч менен джойстик катары иштейт (калактын кыймылы джойстиктин эки огунда кыймылга которулат)
  • чычкан: ар бир калак абсолюттук чычкан үчүн бир кыймылдын багытын башкарат, ал эми баскычтар - чычкан баскычтары; сүрөт программасы менен бирге сиз Etch-a-Sketchке окшош жогорку технологиялуу аппаратты ала аласыз.

Жабдуулар

Сага керек болот:

  • stm32f103c8t6 көк таблетка
  • 2x сызыктуу потенциометр (мен 20K-100K сунуштайм)
  • 2х туурасы 12 мм микросвичка баскычы менен
  • 3D принтер
  • түрдүү (жип, зым, ширетүүчү, ширетүүчү темир, ысык желим)

1 -кадам: Board жана Arduino чөйрөсүн даярдаңыз

Board жана Arduino чөйрөсүн даярдаңыз
Board жана Arduino чөйрөсүн даярдаңыз
Board жана Arduino чөйрөсүн даярдаңыз
Board жана Arduino чөйрөсүн даярдаңыз
  1. Сиздин stm32f103c8t6 тактаңыздын ортосуна алты баштыктын казыгын кошуңуз.
  2. A12 жана 3.3V ортосундагы каршылыкты текшериңиз. Толук USB шайкештиги үчүн 1,5K болушу керек. Көптөгөн тактайчалардын ордуна 10K бар. Эгерде сиз ошолордун бири болсоңуз, идеалдуу түрдө A12ден 3.3Vга чейин 1.8K каршылыгында ширетүү, бирок сиз бактылуу болуп, компьютериңиз 10K менен иштеши мүмкүн.
  3. Жүктөгүчтү орнотуңуз. Бул Нускаманын 2 -кадамында көрсөтмөлөр бар. Белгилей кетчү нерсе, STM Demonstrator билдирген флештин өлчөмү. Эгер бул 32K болсо, анда сизде stm32f103c8 деген жасалма stm32f103c6 бар. Бул долбоор дагы деле ошону менен иштеши керек, бирок келечектеги кадам үчүн жасалма такта бар экенин белгилеңиз.
  4. Мурунку кадамда колдонулган Нускаманын 3-кадамындагы көрсөтмөлөргө ылайык Arduino, Arduino Zero жана Roger libmaple негизделген өзөгүн орнотуңуз. Бул кадамда китепкана көрсөтмөлөрүн этибарга албаңыз.
  5. Менин USB Composite китепканамдын акыркы чыгарылышын жүктөп алып, Arduino/Libraries папкасынан ачыңыз.
  6. Менин paddlecontrollers эскизин жүктөп алып, Arduino папкаңыздан ачыңыз.
  7. Ардуинодо Tools | ге өтүңүз Board | Жалпы STM32F103C сериясы, эгерде сизде жасалма c6 тактасы жок болсо, анда анын ордуна Generic STM32F103C6/жасалма STM32F103C8 тандаңыз. Эгерде сизде кайсынысы бар экенине ишенбесеңиз, анда жасалма жолду тандоо коопсузураак.

2 -кадам: Жүктөө

Жүктөө
Жүктөө

Компьютериңиздин USB адаптерине тактаны сайыңыз, көзөмөлдөөчүнүн эскизин жүктөңүз жана Жүктөө баскычын чыкылдатыңыз (оңго багытталган жебе). Эгерде баары ойдогудай болсо, эскиз жүктөлүшү керек жана такта сиздин компьютериңизде "Stelladaptor" деп аталган эки огу бар эки баскычтуу джойстик катары көрүнүшү керек. Windowsто муну Windows-R, joy.cpl [enter] менен текшере аласыз.

Албетте, калган жабдыктарды чогултмайынча бул эч нерсе кылбайт.

3 -кадам: Басып чыгаруу

Басып чыгаруу
Басып чыгаруу
  1. Бул долбоор үчүн менин Thingiverse баракчамдан stl жана/же scad файлдарын жүктөп алыңыз. Сураныч, калак баскычы ушул жерден өзгөртүлгөн.
  2. Эгерде сиздин микросвичтин корпусунун туурасы 12 ммден айырмаланса, paddlemain-standalone.scad файлындагы баскычтын туурасынын параметрин тууралашыңыз керек болот. Сиз муну OpenSCAD же Thingiverse Customizerде кыла аласыз.
  3. Сиз потенциометрге туура келиши үчүн paddleknob.scad файлындагы өлчөөлөрдү тууралашыңыз керек болот.
  4. Бул файлдарды басып чыгарыңыз (эгер сиз бир калакты кааласаңыз, "2x" файлдарынын бир гана көчүрмөсүн жасаңыз). Мен PLA колдондум, бирок ABS да жакшы иштеши керек.

    • 2x paddlemain.stl
    • 2x paddleknob.stl
    • 1x paddleconverter.stl
    • 1x pcbholdernarrower.stl
    • 2x buttoncap110.stl (милдеттүү эмес)
    • 1x 12.stl (милдеттүү эмес; башка түстө басып чыгаруу жана эки калакты белгилөө үчүн клей)

4 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү

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

Ар бир калакта бир микросвичка жана бир потенциометр бар. Мультиметрди колдонуп, баскычты басуу менен туташкан/ажыратылган микро өтмөктөгү чектеш (диагоналдуу эмес) түтүкчөлөрдү аныктаңыз. Мен бул казыктарды S1 жана S2 диаграммада белгилейм. Потенциометрдеги үч казык мен жогорудан төмөн карай P1, P2 жана P3 деп белгилеп, потенциометрдин астынан карап, казыктарды оңго каратып.

Тактадагы төрт зымды калак корпусунун капталындагы тешик аркылуу басыңыз (paddlemain.stl).

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

Эки калак:

  • P1ден S1ге чейин
  • P1 бортуна 3.3V (3.3)
  • P3 GND (G) бортуна

1 -калак:

  • P2 A1ге өтүү үчүн
  • S2 А2 бортуна

2 -калак:

  • P2 A3 бортуна
  • S2 A4 бортуна

Эми туташууңузду компьютериңизге туташуу жана джойстик тест программасын колдонуу менен текшериңиз. Терезелерде Windows-R, joy.cpl [enter], Stelladaptor тандап, Properties чыкылдатыңыз. 1-калак X огун жана биринчи баскычты башкарышы керек; калак 2 Y огун жана экинчи баскычты башкарышы керек.

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

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

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

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

Көк таблетка тактасы PCB слайдынын ичине туура келет, андан кийин конвертер кутусунун түбүнө буралат, аны капкагы бар капкагы да бар.

Мен бир аз Shoe Goo коштум, анда зымдар зымдарды коргоо үчүн корпусту тосушат. А мен калактардагы "1" жана "2" этикеткаларын чаптадым.

6 -кадам: Иштөө режимдери

Иштөө режимдери
Иштөө режимдери
Иштөө режимдери
Иштөө режимдери

Калактар үч иштөө режимине ээ. Сиз USB портуна туташтырып жатканда, баскычтардын белгилүү бир комбинациясын басуу менен иштөө режимин алмаштыра аласыз. Иштөө режимин которгондон кийин, ал флеш -эске сакталат жана сиз аны кийинки өзгөртүүгө чейин калат. (Демек, сиз режимди өзгөрткүңүз келбесе, калактарды USB портуна туташтырып жатканда эч кандай баскычты баспаңыз.) Бул жерде параметрлер:

  • Сол калак баскычы: Ар бир огу жана баскычы бир калак менен башкарылган эки огу бар эки баскычтуу джойстик. Мындан тышкары, калактар Stelladaptor деп аталат, Atari 2600 контроллери үчүн токтотулган USB адаптери, ошондуктан Stelladapter шайкеш келген Stella жана Z26 сыяктуу Atari 2600 эмуляторлору кемчиликсиз иштеши керек.
  • Эки калак баскычы: Ар бир калак өзүнчө джойстикти көрсөтөт. Джойстиктин бир иштөө баскычы бар, ал эми калакты айлантуу джойстикти диагоналдуу жылдырат, ошондуктан X же Y огу калак үчүн иштейт.
  • Оң калак баскычы: Калактар эки баскычтуу абсолюттук чычкан катары көрсөтүлөт. Сиз муну Etch-a-Sketchке окшош эле чийме программасы менен колдоно аласыз.

7 -кадам: Понг

Понг
Понг
Понг
Понг

Понг - оригиналдуу калак оюну. Мен оригиналдуу версияны сунуштайм, анткени клондор көбүнчө бардык кооз тымызын функцияларды камтыбайт, мисалы, кайталанган соккулардагы ылдамдыктын өзгөрүшү, калактын топко тийген бөлүгүнө, же тымызын, бирок оңой болжолдонбогон позициясына жараша бурчу өзгөрөт. сагындым кийин кызмат. Түпнускага кылдат талдоо үчүн бул жерден караңыз.

Понг ойноонун эң жакшы ыкмаларынын бири, эгер сиздин компьютериңиз аны толук ылдамдыкта колдонууга жетиштүү болсо, DICE схемасындагы эмулятор менен иштөө. (Менин Windows ноутбугум, бирок Raspberry PI 3+ өтө жай.) Мен 0.8 версиясын сунуштайм.

Эгерде сиз калактарда Stelladaptor режимин колдонсоңуз, Орнотуулар | Киргизүүлөрдү DICEде конфигурациялаңыз жана 1-оюнчу калакчасы үчүн Джойстик 1ди жана Абсолюттукту тандаңыз, жана Горизонталдык менен Вертикалдуу экөөнү Joy 1 X-Axisке коюңуз. Андан кийин Y-Axis менен кошпогондо, Player 2 Paddle үчүн ушундай кылыңыз.

Эгерде сиздин компьютер DICE үчүн өтө жай болсо, мен Python3+pygame версиясын түздүм, анын убактысы жана иштеши оригиналдуу Понгго абдан жакын болушу керек (мен бул боюнча доктор Уго Холдендин жардамына ыраазымын).

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