Съдържание:

USB контролер за гребло: 7 стъпки (със снимки)
USB контролер за гребло: 7 стъпки (със снимки)

Видео: USB контролер за гребло: 7 стъпки (със снимки)

Видео: USB контролер за гребло: 7 стъпки (със снимки)
Видео: Архитектура ЭВМ | Основы Операционных Систем | Ассемблер | 01 2024, Ноември
Anonim
USB контролер за гребло
USB контролер за гребло
USB контролер за гребло
USB контролер за гребло
USB контролер за гребло
USB контролер за гребло

Синът ми имаше вечер за ретро видеоигри за рождения си ден и сутринта на деня реших да видя дали мога да направя чифт USB контролери за гребла за Pong с помощта на 3D принтер и електроника от скривалището ми. Въпреки че успях да ги накарам да работят основно навреме, хората в крайна сметка бяха твърде заети с други игри за Pong.

Контролерите могат да се използват за Pong с емулатор на ниво DICE верига или с моята доста точна версия на pygame, за игри Atari 2600 с емулатор и за подобна на Etch-a-Sketch функционалност с програма за рисуване като Tux Paint.

Има три превключващи се режима:

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

Консумативи

Ще имаш нужда:

  • stm32f103c8t6 синьо хапче
  • 2x линеен потенциометър (препоръчвам 20K-100K)
  • 2x микропревключвател с ширина 12 мм с бутон
  • 3D принтер
  • различни (нишки, проводници, спойка, поялник, горещо лепило)

Стъпка 1: Подгответе борда и средата на Arduino

Подгответе борда и средата на Arduino
Подгответе борда и средата на Arduino
Подгответе борда и средата на Arduino
Подгответе борда и средата на Arduino
  1. Запояйте шестте щифта за заглавки в средата на вашата платка stm32f103c8t6.
  2. Проверете съпротивлението между A12 и 3.3V. Тя трябва да бъде 1,5K за по -пълна USB съвместимост. Вместо това много дъски имат 10K. Ако вашият е един от тях, в идеалния случай запоявайте в 1.8K резистор от A12 до 3.3V, въпреки че може да имате късмет и компютрите ви да работят с 10K.
  3. Инсталирайте буутлоудър. Има инструкции в Стъпка 2 на тази инструкция. Едно нещо, което трябва да се отбележи, е какъв е размерът на светкавицата, докладван от STM Demonstrator. Ако е 32K, имате фалшив stm32f103c8, който вероятно е преименуван stm32f103c6. Този проект все още трябва да работи с това, но отбележете, че имате фалшивата дъска за бъдеща стъпка.
  4. Инсталирайте Arduino, Arduino Zero и ядрото на libmaple на Roger, следвайки инструкциите в Стъпка 3 на Instructable, което сте използвали в предишната стъпка. Игнорирайте инструкциите на библиотеката в тази стъпка.
  5. Изтеглете последната версия на моята USB Composite библиотека и я разархивирайте във вашата папка Arduino/Libraries.
  6. Изтеглете моята скица на paddlecontrollers и я разархивирайте във вашата папка Arduino.
  7. В Arduino отидете на Инструменти | Дъска | Обща серия STM32F103C, освен ако нямате фалшива платка c6, в този случай вместо това изберете Generic STM32F103C6/фалшива STM32F103C8. Ако не сте сигурни кой имате, изборът на фалшива опция всъщност е по -безопасен.

Стъпка 2: Качете

Качване
Качване

Включете платката в USB адаптера на компютъра си, заредете скицата на контролера на лопатката и щракнете върху бутона Качване (стрелка, насочена надясно). Ако всичко върви добре, скицата трябва да се качи и платката трябва да се покаже на вашия компютър като двуосен джойстик с два бутона, наречен „Stelladaptor“. В Windows можете да проверите това с Windows-R, joy.cpl [enter].

Разбира се, това няма да направи нищо, докато не сглобите останалия хардуер.

Стъпка 3: Отпечатайте

Печат
Печат
  1. Изтеглете stl и/или scad файлове от моята страница Thingiverse за този проект. Моля, обърнете внимание, че копчето за гребло е променено от тук.
  2. Ако ширината на корпуса на микропревключвателя е различна от 12 мм, ще трябва да регулирате параметъра за ширина на бутона във файла paddlemain-standalone.scad. Можете да направите това в OpenSCAD или в Thingiverse Customizer.
  3. Може да се наложи да промените измерванията във файла paddleknob.scad, за да пасне на вашия потенциометър.
  4. Отпечатайте тези файлове (направете само едно копие на "2x" файловете, ако искате само едно гребло). Използвах PLA, но ABS също трябва да работи добре.

    • 2x paddlemain.stl
    • 2x paddleknob.stl
    • 1x преобразувател на лопатки.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 към борда A2

Гребло 2:

  • P2 към борда на A3
  • S2 към борда на A4

Сега тествайте връзките, като се свържете с компютъра си и използвате програма за тестване на джойстик. В Windows, Windows-R, joy.cpl [enter], изберете Stelladaptor, щракнете върху Properties. Гребло 1 трябва да контролира оста X и първия бутон; гребло 2 трябва да контролира оста Y и втория бутон.

Стъпка 5: Окончателно сглобяване

Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване

Микропревключвателите могат да бъдат залепени (горещото лепило ми свърши работа) на техните места отстрани на кутията за гребла. Капачките на копчетата могат да се закопчат с малко горещо лепило за стабилност.

Потенциометърът се прикрепя към големия отвор в горната част на кутията за гребла. Копчето трябва да се плъзга и да се придържа. Увеличете отворите със свредло според нуждите. Натиснете долния капак, като добавите малко горещо лепило, ако желаете.

Синята табла за хапчета се побира вътре в плъзгача на печатната платка, която след това се завинтва към дъното на конверторната кутия, която също има капак, който може да я покрие.

Добавих малко Shoe Goo, където проводниците се срещат с корпуса, за да защитят проводниците. И аз залепих етикети "1" и "2" на греблата.

Стъпка 6: Режими на работа

Режими на работа
Режими на работа
Режими на работа
Режими на работа

Лопатките имат три режима на работа. Можете да превключите режима на работа, като натиснете определена комбинация от бутони, докато ги включите в USB порт, освобождавайки, след като светодиодите на платката престанат да мигат. След като превключите режима на работа, той ще бъде записан във флаш паметта и ще остане, докато не го промените следващия път. (Така че, ако не искате да променяте режима, не натискайте нито един бутон, докато включвате лопатките в USB порт.) Ето опциите:

  • Само ляв бутон за гребло: Един двуосен джойстик с два бутона, като всяка ос и бутон се управляват от едно гребло. Освен това лопатките се идентифицират като Stelladaptor, прекратен USB адаптер за контролери Atari 2600, така че емулаторите на Atari 2600 като Stella и Z26, които са съвместими със Stelladapter, трябва да работят перфектно.
  • И двата бутона за гребло: Всяко гребло показва отделен джойстик. Джойстикът има един работен бутон и завъртането на лопатката премества джойстика по диагонал, така че или оста X, или Y работи за греблото.
  • Само десен бутон за гребло: Греблата се показват като абсолютна мишка с два бутона. Вече можете да използвате това подобно на Etch-a-Sketch с програма за рисуване.

Стъпка 7: Понг

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

Pong беше страхотната оригинална игра с гребла. Препоръчвам оригиналната версия, тъй като клонингите често не успяват да включат цялата прекрасна фина функционалност, като например промените в скоростта с повтарящи се удари, ъгълът се променя в зависимост от частта от греблото, която удря топката, или фината, но не лесно предвидима позиция на сервиса след пропуск. За внимателен анализ на оригинала вижте тук.

Един от най-добрите начини за игра на Pong е с емулатора на ниво DICE схема, ако компютърът ви е достатъчно бърз, за да го използвате на пълна скорост. (Моят лаптоп с Windows е, но Raspberry PI 3+ е твърде бавен.) Препоръчвам версия 0.8.

Ако използвате режима Stelladaptor в лопатките, отидете на Настройки | Конфигурирайте входове… в DICE и изберете Джойстик 1 и Абсолютен за Играч 1 Paddle и задайте хоризонтално и вертикално на Joy 1 X-ос. След това направете същото за Player 2 Paddle, с изключение на Y-ос.

Ако вашият компютър е твърде бавен за DICE, направих версия на Python3+pygame, чиито тайминг и функционалност са предназначени да бъдат много близки до оригиналния Pong (благодарен съм за помощта от д -р Hugo Holden в това отношение).

Препоръчано: