Оглавление:

Игровой контроллер USB Paddle: 7 шагов (с изображениями)
Игровой контроллер USB Paddle: 7 шагов (с изображениями)

Видео: Игровой контроллер USB Paddle: 7 шагов (с изображениями)

Видео: Игровой контроллер USB Paddle: 7 шагов (с изображениями)
Видео: Лучшие настройки DualSense Edge для PS5 для Call of Duty MWIII 2024, Ноябрь
Anonim
Игровой контроллер USB Paddle
Игровой контроллер USB Paddle
Игровой контроллер USB Paddle
Игровой контроллер USB Paddle
Игровой контроллер USB Paddle
Игровой контроллер USB Paddle

У моего сына был вечер ретро-видеоигр на свой день рождения, и утром я решил посмотреть, смогу ли я сделать из своего тайника пару 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 мм с кнопкой
  • 3д принтер
  • разные (нить, провода, припой, паяльник, горячий клей)

Шаг 1. Подготовьте плату и среду Arduino

Подготовьте плату и среду Arduino
Подготовьте плату и среду Arduino
Подготовьте плату и среду Arduino
Подготовьте плату и среду Arduino
  1. Припаяйте шесть выводов к середине платы stm32f103c8t6.
  2. Проверьте сопротивление между A12 и 3,3 В. Он должен быть 1,5 КБ для полной совместимости с USB. На многих платах вместо этого стоит 10К. Если у вас один из них, в идеале припаяйте резистор 1,8 кОм от A12 к 3,3 В, хотя вам может повезти и ваши компьютеры будут работать с 10 кОм.
  3. Установите загрузчик. Инструкции приведены в Шаге 2 данного Руководства. Следует обратить внимание на то, какой размер флэш-памяти сообщает STM Demonstrator. Если это 32 КБ, у вас поддельный stm32f103c8, который, вероятно, является переименованным stm32f103c6. Этот проект все еще должен работать с этим, но обратите внимание, что у вас есть поддельная доска для будущего шага.
  4. Установите Arduino, Arduino Zero и ядро на основе libmaple Роджера, следуя инструкциям в шаге 3 инструкции, которую вы использовали на предыдущем шаге. Игнорируйте инструкции библиотеки на этом шаге.
  5. Загрузите последнюю версию моей библиотеки USB Composite и распакуйте ее в папку Arduino / Libraries.
  6. Загрузите мой эскиз лопастных контроллеров и распакуйте его в папку Arduino.
  7. В Arduino перейдите в Инструменты | Доска | Стандартная серия STM32F103C, если у вас нет поддельной платы c6, и в этом случае выберите вместо нее Generic STM32F103C6 / поддельный STM32F103C8. Если вы не уверены, какой у вас есть, на самом деле безопаснее выбрать поддельный вариант.

Шаг 2. Загрузите

Загрузить
Загрузить

Подключите плату к USB-адаптеру вашего компьютера, загрузите эскиз лопастного контроллера и нажмите кнопку «Загрузить» (стрелка вправо). Если все пойдет хорошо, скетч должен быть загружен, и плата должна появиться на вашем компьютере в виде двухкоординатного двухкнопочного джойстика под названием «Stelladaptor». В Windows вы можете проверить это с помощью Windows-R, joy.cpl [ввод].

Конечно, это ничего не даст, пока вы не соберете остальное оборудование.

Шаг 3. Распечатайте

Распечатать
Распечатать
  1. Загрузите файлы stl и / или scad со страницы моей Thingiverse для этого проекта. Обратите внимание, что рукоятка лопасти здесь изменена.
  2. Если ширина корпуса вашего микропереключателя отличается от 12 мм, вам необходимо настроить параметр ширины кнопки в файле paddlemain-standalone.scad. Вы можете сделать это в OpenSCAD или в настройщике Thingiverse.
  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,3 В (3,3)
  • P3 на плату GND (G)

Весло 1:

  • P2 на плату A1
  • S2 на плату A2

Весло 2:

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

Теперь проверьте соединения, подключившись к компьютеру и используя программу тестирования джойстика. В Windows, Windows-R, joy.cpl [ввод], выберите Stelladaptor, нажмите «Свойства». Paddle 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: Понг

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

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

Один из лучших способов играть в понг - использовать эмулятор уровня схемы DICE, если ваш компьютер достаточно быстр, чтобы использовать его на полной скорости. (У меня ноутбук с Windows, но Raspberry PI 3+ работает слишком медленно.) Я рекомендую версию 0.8.

Если вы используете режим Stelladaptor в лопастях, перейдите в Настройки | Сконфигурируйте входы… в DICE и выберите «Джойстик 1» и «Абсолютный» для манипулятора игрока 1, а также установите горизонтальное и вертикальное положение для оси X Joy 1. Затем сделайте то же самое для ракетки Player 2, за исключением оси Y.

Если ваш компьютер слишком медленный для DICE, я сделал версию Python3 + pygame, время и функциональность которой должны быть очень близки к исходному Pong (я благодарен доктору Хьюго Холдену за помощь в этом отношении).

Рекомендуемые: