Оглавление:

Контроллер Go: 8 шагов
Контроллер Go: 8 шагов

Видео: Контроллер Go: 8 шагов

Видео: Контроллер Go: 8 шагов
Видео: Контроллер Denon DJ Prime GO - Scratch DJ EQ 2024, Июль
Anonim
Контроллер на ходу
Контроллер на ходу
Контроллер на ходу
Контроллер на ходу
Контроллер на ходу
Контроллер на ходу

Вы любите играть в игры на своем смартфоне? Вы устали от игр с неуклюжим сенсорным управлением? Ненавижу забывать заряжать контроллер Bluetooth? Вам нужен кабель, который вы купили, но никогда не используете?

Почему бы не сделать свой собственный контроллер на ходу?

Я уверен, что довольно поздно начал игру (каламбур), но недавно я обнаружил, что мой старый смартфон может играть в ретро-игры с помощью эмуляции. Когда я рос, я был большим поклонником систем Game Boy, и у меня остались приятные воспоминания о том, как я часами играл и напрягал глаза во время долгих поездок на машине, отчаянно пытаясь найти точку сохранения, пока не разрядился аккумулятор или солнце не было слишком далеко за горизонтом, чтобы увидеть мой экран. Теперь я могу играть на своем телефоне и испытывать ностальгию, но с красивым экраном с подсветкой. Спасибо технологиям!

Отказ от ответственности: эмуляция игр - это щекотливая тема, которая в некоторых случаях обходится стороной с пиратством. Пожалуйста, учитесь и играйте ответственно!

Фон:

Я решил продолжить этот проект после создания сочетания клавиш. Изучая библиотеку клавиатуры Arduino и придумывая сочетания клавиш, я привязал некоторые из тестовых кнопок к WASD. Он сразу же начал работать с моими компьютерными играми, и это заставило меня крутиться. Примерно в то же время на моем телефоне закончилось место для аудиокниг, и я решил, как использовать USB-накопитель с телефоном, поскольку моя модель не поддерживает карты microSD. Именно тогда я узнал об OTG. OTG использует заряд аккумулятора вашего телефона для питания подключенного к нему устройства. Сюда входят клавиатуры, мыши и флеш-накопители, и это лишь некоторые из них. Телефон может питать устройства 5 В и угадайте, что требуется для работы Arduino Micro? Это был брак, заключенный на небесах.

Запасы

Ардуино Микро

Доска прототипа

Кнопки 12 x 6 мм (я использовал классические тактильные переключатели мгновенного действия на макетной плате)

Паяльник и припой

3д принтер

Кабель на ходу (OTG); Я сделал свой собственный

Кабель для зарядки Micro USB

Шаг 1. Дизайн

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

Я хотел, чтобы мой контроллер был портативным и предлагал все кнопки, которые мне понадобятся для игр вплоть до эпохи Super Nintendo. Это означало, что мне понадобится 12 кнопок. Четыре для навигационной панели (d-pad) и восемь для A, B, X, Y, Start, Select, Left Trigger и Right Trigger. У меня также было дополнительное требование: я хотел, чтобы он был симметричным, чтобы я мог играть одной рукой любой рукой. Это дополнительное требование может показаться странным, но чтобы дать некоторый контекст, я должен упомянуть, что в последнее время я регулярно обнаруживаю, что держу спящего ребенка и использую только одну руку в течение ограниченного игрового времени.

Определив требования, я решил спроектировать свой контроллер в САПР. Я лично использую OnShape, но знаю, что многие люди также добились успеха с Fusion360. Я хотел бы поблагодарить других людей на этом сайте, которые создают свои собственные творения. Это тяжелая работа! Дизайн, который я придумал, был очень простым, но мне потребовалось много часов, чтобы он остался доволен. Даже когда я печатаю это, я замечаю много улучшений, которые хотел бы внести.

(Я планирую разместить файлы.stl на Thingiverse, когда позволит время. Файлы будут там, поэтому я могу обновлять их без необходимости постоянно загружать сюда файлы.)

Шаг 2: Распечатайте свое творение

Распечатайте свое творение!
Распечатайте свое творение!

У меня есть принтер Ender 3, который у меня был всего несколько месяцев. Это отличный принтер для начала, если вы хотите заняться 3D-печатью. Я не осознавал, насколько он не в порядке, пока не измерил свои части для этого проекта. До этого проекта я использовал его только для печати миниатюр для настольных игр. Мини вышли великолепно, и меня не особо заботили размеры. Потребовалось несколько калибровочных кубиков и новый рулон нити, прежде чем я был доволен результатами.

Шаг 3: Подготовка прототипа платы

Подготовка прототипа доски
Подготовка прототипа доски
Подготовка прототипа доски
Подготовка прототипа доски

Перед тем, как паять кнопки на макетную плату, я протестировал все кнопки на макетной плате и одновременно протестировал свой код Arduino. Я перейду к коду позже.

Сейчас самое подходящее время для обрезки макета платы по размеру. Используйте свой распечатанный корпус контроллера в качестве ориентира и установите кнопки насухо, чтобы убедиться, что все совпадает. Я просто взял кусочки для проволоки и отрезал лишнюю доску, а затем отшлифовал края наждачной бумагой с зернистостью 150.

Подключение контроллера действительно простое, поскольку мы используем внутренние подтягивающие резисторы Arduino Micro. Все кнопки идут на вход и землю. Кнопки, которые я использую, представляют собой обычные 6-миллиметровые тактильные переключатели мгновенного действия.

Припаять кнопки к Arduino было небольшой забавной головоломкой. Некоторые кнопки находились под ардуино, и мне пришлось вытащить из-под него провода, прежде чем припаять ардуино к плате прототипа. Если вы присмотритесь к кнопке на плате, я пропустил левую и правую кнопки направления.

Для моей конкретной конструкции я припаял кнопки направления вверх и вниз (я пропустил левую и правую кнопки направления) к макетной плате вместе с некоторыми очень длинными проводами, затем перевернул плату и припаял ардуино. У меня нет схемы, потому что я в основном паял кнопки по одной наугад (могу загрузить одну, если будет достаточно интереса). После того, как Arduino закреплен, я перевернул плату обратно на сторону кнопок и припаял остальные кнопки и их провода.

Шаг 4: Необязательно: украсьте корпус контроллера

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

Шаг 5: Окончательная сборка

Окончательная сборка
Окончательная сборка

Пришло время поместить все ваши кнопки и готовую макетную плату в корпус. В своей конструкции я использовал винты для листового металла # 4-24 x 1/2. Они выполняют свою работу, но не подходят так хорошо, как мне хотелось бы.

Шаг 6: запрограммируйте свой Arduino

Вы можете сделать этот шаг раньше, когда вы еще разрабатываете плату или после того, как все припаяете к прототипу платы. Мне просто нравится, чтобы это было в отдельном разделе.

Код очень прост по сравнению с большинством программ Arduino, которые я видел. Нам нужно только назначить каждой кнопке значение клавиатуры, и Arduino выполнит цикл, чтобы проверить, какие кнопки были нажаты, и отправить эту информацию на наш телефон.

Для тех, кому интересно, я использую приложение retroArch, чтобы играть в свои ретро-игры. Клавиши, которые я использовал, настроены на раскладку клавиатуры по умолчанию, используемую для retroArch.

#include #include "Keyboard.h" #define 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' // select = '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 * buttons = new Bounce [NUM_BUTTONS]; void setup () {for (int i = 0; i <NUM_BUTTONS; i ++) {buttons .attach (BUTTON_PINS , INPUT_PULLUP); кнопки .interval (25); } // инициализируем управление клавиатурой: Keyboard.begin (); } void loop () {// проверяем, изменилось ли значение для (int i = 0; i <NUM_BUTTONS; i ++) {buttons .update (); if (buttons .fell ()) {Keyboard.press (BUTTON_KEYS ); } if (buttons .rose ()) {Keyboard.release (BUTTON_KEYS ); }}}

Шаг 7: Играйте в свои игры

Играйте в свои игры!
Играйте в свои игры!

В качестве альтернативы этот контроллер можно использовать с ПК без кабеля OTG для отправки нажатий клавиш или макросов. У меня также был друг, который сказал, что такой контроллер также может быть полезен для рисования планшетов, хотя я никогда раньше с ним не связывался.

Надеюсь, вы нашли это руководство полезным. Ниже приведен раздел извлеченных уроков для тех, кому интересно, что я узнал в процессе и что бы я хотел сделать по-другому.

Шаг 8: извлеченные уроки

CAD:

Раньше я никогда особо не связывался с программным обеспечением САПР, и мне приходилось учиться на ходу с этим дизайном. Изначально я выбрал более вертикальный дизайн, который поместился бы в ваших руках так же, как Wii Nunchuk. Мои ограниченные познания в области дизайна с использованием органических форм стали моим недостатком. Может быть, мне стоит взять Intructables на курс проектирования САПР.

Кнопки:

Кнопки, которые я использовал, были громче, чем хотелось бы (особенно когда вы пытались не дать кому-то проснуться). Я бы хотел найти более тихие кнопки. Включение пружин между кнопками и их колпачками будет иметь большое значение, чтобы сделать конструкцию более отполированной. На мой вкус, кнопки слишком сильно провисают.

Пайка:

Я новичок в пайке и у меня не очень устойчивые руки. Пайка всех этих крошечных проводов повсюду заняла намного больше времени, чем я ожидал. Если бы мне пришлось делать это снова и снова, я бы определенно наметил, где будут проходить мои провода, прежде чем брать утюг. Это уменьшило бы количество ошибок, обнаруженных мной после прикрепления Arduino к прототипу платы, и сэкономило бы мне время.

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