Привет, читатель!

Как-то я отлаживал приложение для телефона на отечественной ОС «Аврора» и вдруг заскучал. Тогда я поставил на него RetroArch и скачал несколько игр. Подключив геймпад, провел за ними пару часов. Позже, листая раздел с играми в чате разработчиков «Авроры», наткнулся на идею подключения джойстиков-чехлов к телефону. Но мне не понравился их внешний вид, поэтому накидал пару концептов мобильной приставки и решил воплотить ее в жизнь.

Да, за последние десятилетия было выпущено множество портативных игровых консолей, от Электроники ИМ-02 до Nintendo Switch, Steam Deck и других. Эти устройства позволили игрокам наслаждаться любимыми играми в любом месте и в любое время. А я решил реализовать что-то свое.

Однажды я прорабатывал идею создания мобильной приставки на базе планшета. После покупки Steam Deck от идеи сборки своего аналога отказался: устройство получалось довольно громоздким и тяжелым, а при не самом лучшем процессоре Intel Atom вырисовывалась просто крупная ретроконсоль.

Буду разбирать устройство и дополнять его новым функционалом. Сразу решил, что обязательно необходимо оставить слот SIM-карты для мобильной связи и интернета, возможность подключения внешних устройств, камеры. Дополнительно должны появиться стики, кнопки и чуть более громкие динамики.

Хочешь выиграть мерч? Попробуй решить IT-кроссворд! Более 256 вопросов, 7 кроссвордов на разные темы из мира IT — ежедневно с 23 по 29 сентября. Достаточно зарегистрироваться по ссылке.



Используйте навигацию, если не хотите читать текст полностью:

Декомпозиция
Джойстик
Разработка корпуса
Сборка
Заключение

Декомпозиция


Чтобы собрать что-нибудь, нужно сначала разобрать что-нибудь другое. Для экспериментов взял на Авито смартфон F+ (подробнее о них я писал в первой статье об «Авроре»). Разборка начинается с демонтажа экрана, благо винты на задней крышке оказались декоративными. При помощи фена аккуратно прогреваю по всему периметру экран и достаю его из ложемента. Аккуратно отключаю шлейф и откладываю для дальнейшей работы.


Изнутри как любой китайский телефон.

Далее снимаю все остальные элементы, которые будут в новом девайсе: камера, сенсор отпечатка пальцев, разъемы, кнопки. Для хранения удобно использовать специально предназначенный для разбора телефонов кейс. Тут же закинул дополнительные детали, которые будут в приставке: стики, динамики, модуль усилителя.



Джойстик


На удивление «Аврора» поддерживает «из коробки» работу с геймпадами: как по USB, так и через Bluetooth. Довольно рациональным вариантом показалось использовать «проводное» подключение контроллера джойстика к устройству. Такой вариант гарантирует его стабильную работу.

Можно разобрать джойстик, взять из него плату и вставить в новое устройство, однако в таком случае очень легко выйти за габариты. В сети есть библиотеки, реализующие класс USB HID на 8- и 32-битных микроконтроллерах. Для этого в качестве обработчика ввода предлагается использовать любой микроконтроллер или отладочную плату Arduino (например, Pro Micro), несколько кнопок и пару аналоговых джойстиков. Я выбрал имеющуюся плату на базе ATmega32U4. Данный чип обладает встроенным контроллером USB 2.0.


Вырезка из структурной схемы и искомый модуль USB.

Для данного микроконтроллера существует и поддерживается библиотека для Arduino IDE — Arduino Joystick Library. Она обладает всем необходимым функционалом от обработки кнопок до включения вибрации.

Можно ли использовать другие контроллеры? Конечно. Любой микроконтроллер способен решить эту задачу. Для 8-ми битных AVR существует старая добрая библиотека V-USB, а для объяснения ее работы отличная статья на Хабре.

Еще одним вариантом работы рассматривал EasyHID от AlexGyver, но она предназначена только для эмуляции мыши или клавиатуры.

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

Для сборки тестового геймпада подключил пару потенциометров и несколько кнопок на макетной плате, накидал простой код сбора и обработки данных. Функция get_axis() возвращает значение АЦП указанной оси. Эта функция обрабатывает значения несколько быстрее стандартной ардуиновской analogRead за счет меньшего количества маппингов (аналогичный пример есть в хорошей статье по ускоряющим алгоритмам). Аналогично получаем значения портов одной операцией и в цикле подготавливаем и отправляем значения кнопок.

Данное устройство определяется системой как стандартный геймпад как на виртуальной машине с Windows, так и на целевом устройстве на базе «Авроры».

Можно приступить к созданию устройства. Для этого из макетной платы вырезал форму будущего устройства, прикинул расположение элементов и запаял основные компоненты: кнопки и пару стиков от PSP Vita.


Игровой Франкенштейн.

На плату также вывел кнопки громкости, включения/разблокировки и функциональную программируемую кнопку. На нее настроил функцию быстрого перехода в игровой режим (открытие RetroArch), ведь в первую очередь это консоль.

Дополнительно захотелось дать возможность подключать через USB не только зарядное устройство, но и геймпады или флешки. Чтобы реализовать это, разобрал самый простой USB-хаб и припаял его к плате с разъемом Type C.

К сожалению, при работе через разветвитель теряется возможность подключить устройство к ПК в режиме флешки или для отладки в Aurora IDE. Возможно, пофикшу этот функционал в будущем.

Разработка корпуса


По завершении работы над ПО и платой приступил к рисованию корпуса будущего устройства. Все начинается с определения требуемой функциональности и набрасывания идей и эскизов.

Для этого проекта в общем виде достаточно самого планшета, пара джойстиков и динамиков, а готовое устройство должно удобно лежать в руках, аналогично существующим решениям. Дополнительно думал добавить экран OLED LCD, чтобы отображать нагрузку на процессор, текущее время и запущенную игру, но быстро отказался от этой идеи. Дело в том, что в телефоне нет некоторых драйверов.


Добавить экран к телефону, чтобы выводить больше информации?

После того, как определились с общим внешним видом, можно приступать к инжинирингу. Компоненты, которые извлек из телефона (сенсорный экран, аккумулятор, платы) перенес в редактор. Основной инструмент во время этой работы — штангенциркуль и режим черчения. Также смоделировал монтажную плату и ее детали.

После получения каждого компонента можно приступить к компановке. Для этого собираю «скелет» в сборке и по его проекциям создаю макет корпуса, который тут же печатаю и примеряю.


Сборка


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

После удаления малярного скотча можно приступить к сборке и запуску устройства. В монтажной плате проделал недостающие отверстия, зафиксировал ее в корпусе. Временно подключил экран для проверки работоспособности устройства и качества сборки толкателей. Все идет гладко. Далее можно закрывать заднюю крышку и приступать к поклейке экрана стандартным клеем Т7000.


Получилась игровая консоль с камерой и телефоном.

Заключение



Замечательное чувство, когда в руках держишь собранное своими руками устройство и оно работает. Мне было интересно собрать подобный девайс и понять, с какими сложностями могут столкнуться разработчики подобных решений. Думаю, в свободное время подготовить печатные платы и корпуса для производства, заменить некоторые элементы (кнопки, крепления) на более надежные и собрать несколько устройств для друзей. Также хочу видеть портативку потоньше и в цветах Famicom — бежевый корпус с бордовыми кнопками и латунными вставками. Для придания цвета и приятной текстуры уже заказал жидкую резину и баллончики с акриловой краской. Возможно, это перерастет в стартап.

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

Вы бы хотели получить подобную приставку на базе отечественной ОС? Пишите в комментариях, какой функционал хотелось бы в ней видеть?

Комментарии (28)


  1. Arbane
    26.09.2024 08:20
    +2

    Круто!

    Но полез посмотреть на офсайт и увидел что телефона нет в свободной продаже. Только перекупы. Да и вы, похоже, собирали приставку на рабочем месте.

    Есть ли смысл для кого-то?


    1. VRyabchevsky Автор
      26.09.2024 08:20
      +6

      на рабочем месте

      Нет, это дома)

      телефона нет в свободной продаже 

      продается свободно, либо здесь, либо искать у перекупов.

      Есть ли смысл для кого-то?

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


    1. nikolz
      26.09.2024 08:20

      Это то?

      yandex: смартфон FPlus R570E 4/64гб, 2 сим, Android 13, IP68, 5,...

      Цена :6 363 ₽


      1. VRyabchevsky Автор
        26.09.2024 08:20
        +1

        Это то?

        Да, если вам нужен андроид. В статье указан вариант с Авророй


        1. nikolz
          26.09.2024 08:20
          +1

          тогда такой:


        1. itmind
          26.09.2024 08:20
          +2

          А можно купить на Андроиде и перешить на Аврору?



  1. gudvinr
    26.09.2024 08:20
    +1

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

    А вот динамики, которые играют в ладонь - это уже сложно без редизайна.


    1. VRyabchevsky Автор
      26.09.2024 08:20
      +3

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

      это да, первый раз попробовал ультрабазу, но надо еще поднять концевик по Z.

      которые играют в ладонь - это уже сложно без редизайна

      уже работаю над этим. в планах - сделать корпус тоньше и динамики в торец.


  1. IgnatChuker
    26.09.2024 08:20

    Проект крутой, прям супер!!! Я думаю вполне такая консоль может конкурировать с Anbernic'ами, потому что Retroarch и куча других эмулей уже есть под "Аврору" есть. Интересно будет посмотреть на такую консоль на "Альт Мобаил" или "РЕД ОС М".


    1. VRyabchevsky Автор
      26.09.2024 08:20
      +5

      Спасибо за комментарий!

      на "Альт Мобаил" или "РЕД ОС М"

      Самый быстрый вариант собрать такой прототип - взять существующий телефон с указанной ОС :) Если для Альта нужно просто телефон за 60к (пока другой альтернативы поставить эту ОС не нашел), то чтобы получить Аквариус (первое что нагуглил) необходимо иметь организацию...

      Для альта повторить не сложно - есть перечень поддерживаемых эмуляторов


  1. m_sinelnikov
    26.09.2024 08:20
    +4

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


    1. Tirarex
      26.09.2024 08:20
      +4

      А зачем их трансформировать если достаточно купить либо обычный геймпад от любой консоли, либо 8bitduo (внезапно очень дешевые и хорошие контроллеры), либо купить универсальный чехол-геймпад? Все это подключается по Bluetooth к любому старому смартфону, и позволяет удобно играть.


      1. m_sinelnikov
        26.09.2024 08:20
        +2

        Вопрос "моноблочности".


    1. VRyabchevsky Автор
      26.09.2024 08:20
      +2

      вот таких вот китов стоит копейки, особенно если это промышленное решение

      Сначала нужно провести НИОКР чтобы сделать более-менее универсальный кит) хотя если сделать несколько наборов корпусов просто под разные экраны то вполне себе реализуемо.

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


  1. NNMTM
    26.09.2024 08:20
    +5

    Вооот, наконец-то пошли реализации лежащей на поверхности идеи!

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

    P. S. Лучше заменить слово "Отечественная" на "Самодельная", а то многие пройдут мимо.


    1. nitro80
      26.09.2024 08:20
      +1

      Из отечественного тут только создатель)


  1. Grey83
    26.09.2024 08:20

    Для удобства пользования м/б лучше было что-то типа такого дизайна: https://dtf.ru/hard/2384815-mini-obzor-na-kontroller-bsp-d8 ?
    Или https://dtf.ru/hard/1515727-obzor-na-multiplatformennyi-geimpad-bsp-d3 (этот больше похож на тот, что в статье).

    Да, они не такие компактные, но держать их должно быть гораздо удобнее.


    1. VRyabchevsky Автор
      26.09.2024 08:20

      Сейчас прорабатываю как раз подобный второму вариант корпуса


  1. Graytown
    26.09.2024 08:20

    SteamOS не воткнуть туда случайно? :)


    1. VRyabchevsky Автор
      26.09.2024 08:20

      Если удастся развернуть дебиан, то можно поставить старую версию ОС. Но боюсь что старенький mediatek не особо к этому готов


  1. orefkov
    26.09.2024 08:20

    Поддерживает ли Аврора GLES3?
    Хотел попробовать на нее одну свою игру портировать, а на сайте Авроры пишут только GLES2...


    1. VRyabchevsky Автор
      26.09.2024 08:20

      Попробуйте задать вопрос в чате девелоперов под аврору. Если кто-то пробовал, то обязательно ответят. Как вариант - просто попробовать собрать и докидывать по пути необходимые зависимости)


    1. fulcrum7
      26.09.2024 08:20
      +1

      Поддерживает


  1. kenomimi
    26.09.2024 08:20
    +1

    Вырезать корпус на станке из твердого дерева, и будет вообще огонь. На принтере сделать качественный корпус не очень реально, принтер больше для быстрых прототипов.


    1. VRyabchevsky Автор
      26.09.2024 08:20

      Спасибо, интересная идея. По возможности постараюсь найти чпу и сделать подобный корпус. Текущий вариант действительно только быстрый прототип


  1. imba
    26.09.2024 08:20

    Если уж речь прото то, что это "игровая консоль", то в первую очередь интересен хотя бы примерныи список игр, а то у Авроры с Quake2, Fallout2, Diablo 1 это скорее похоже на "ретроконсоль". Какая-нибудь стим ос в этом плане больше свободы даст.


    1. Grey83
      26.09.2024 08:20

      я поставил на него RetroArch

      Эмулируются консоли включая PS2 и Dreamcast, запускается 2-я квака.

      Список поддерживаемого на 4pda:
      https://4pda.to/forum/index.php?act=findpost&pid=18978221&anchor=Spoil-18978221-7