The One Cube: разбираем по винтикам игровую консоль с шестью экранами

Это The One Cube — разработанная мною игровая платформа в виде куба с шестью экранами, которая управляется только наклонами и жестами. Здесь нет кнопок, а весь геймплей построен на физическом взаимодействии с устройством.

The One Cube 3D render
The One Cube 3D render

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

Сегодня я проведу экскурсию по “внутренностям” куба и расскажу, почему он работает именно так, а не иначе.

Процессор

Любой проект начинается с выбора «мозга». Выбор пал на ESP32-S3 N8R8. Почему? Потому что я уже пять лет собираю устройства на ESP32, и эта платформа мне как родная.

Но и объективно, это идеальный компромисс:

  • Два быстрых ядра 240МГц для расчетов и рендера.
  • Встроенный Wi-Fi для будущих онлайн-фич.
  • Огромное количество GPIO-пинов. Без них подключить шесть экранов и другие штуки было бы просто невозможно.

Кстати, 8 МБ дополнительной PSRAM — это не роскошь, а жизненная необходимость. Это что-то вроде второго уровня оперативки, куда отгружается всё, что не влезло в основную, более быструю память.

Мозг консоли The One Cube
Мозг консоли The One Cube

Дисплеи

Чтобы показать мир на кубе, нужно было превратить его грани в экраны. Я остановился на 1.54-дюймовых TFT IPS-экранах (ST7789) с разрешением 240x240. Нашел их на Ali, и это был единственный годный вариант по соотношению цена / качество.

Почему именно они?

  • Яркие, с отличными углами обзора — критически важно, ведь на куб смотришь всегда под углом.
  • Разрешение 240x240 — это тот самый “sweet spot”, где картинка уже четкая, а микроконтроллер еще не задыхается от потока пикселей. Как потом подтвердили тесты, возьми я разрешение побольше — проц бы просто не вывез, и мы бы получили слайд-шоу вместо игры.

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

Самые оптимальные экраны для The One Cube
Самые оптимальные экраны для The One Cube

Управление

У куба нет джойстиков и кнопок в привычном понимании. Его главная парадигма ввода — движение / положение устройства в пространстве.

Я выбрал BNO055, потому что это “умный” сенсор (IMU). Он не просто выдает сырые данные с акселерометра и гироскопа, а сам их обрабатывает и отдает уже чистую, отфильтрованную ориентацию в пространстве. Это позволило мне сосредоточиться на геймплее, а не на борьбе с математикой кватернионов и дрейфом гироскопа.

The One Cube: разбираем по винтикам игровую консоль с шестью экранами

Память и питание

Чтобы на кубе могли жить десятки игр, ему нужно было вместительное хранилище. Решение простое и очевидное — слот для MicroSD-карты. Это было одно из первых решений при проектировании. Сейчас в кубе стоит карточка на 32 ГБ, чего хватает с головой.

Материнская плата The One Cube
Материнская плата The One Cube

За автономность отвечают пара аккумуляторов 18350 и чип IP5310. Это современная микросхема для повербанков, и по сути, вся электроника куба питается от её линии 5В. Кнопка включения на корпусе не разрывает цепь напрямую, а подает сигнал именно на этот чип, который уже включает или выключает всё устройство. Просто и надежно.

The One Cube: разбираем по винтикам игровую консоль с шестью экранами

Накупить компонентов — это полдела. Самое интересное начинается, когда ты пытаешься всё это вместе уместить в маленькой коробочке.

Материнская плата

Чтобы вся эта электроника не болталась в виде клубка проводов, я с нуля спроектировал собственную материнскую плату. Это основа, на которой держится буквально всё: на ней распаян ESP32-S3, BNO055, разъемы для экранов, слот для MicroSD и система питания. Создание кастомной платы позволило максимально компактно разместить все ключевые узлы и заранее продумать их взаимодействие.

Экраны, кстати, подключены через так называемый «тройник» — их линии данных (SPI) объединены, чтобы не занимать все пины контроллера.

Материнская плата The One Cube и разветвитель SPI
Материнская плата The One Cube и разветвитель SPI

Корпус и рама: Эволюция дизайна

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

Первая версия корпуса The One Cube
Первая версия корпуса The One Cube

Пришлось все переделывать. Так родилась идея внутренней сборной рамы. Теперь вся электроника — материнская плата, экраны, батареи — крепится на этот внутренний «скелет». А уже потом вся эта конструкция целиком вставляется в аккуратный внешний корпус, который просто защелкивается. Это в разы упростило и сборку, и возможный ремонт.

The One Cube без внешнего корпуса
The One Cube без внешнего корпуса
The One Cube в корпусе до защелкивания
The One Cube в корпусе до защелкивания

Сам дизайн получился минималистичным. Настолько, что его даже сложно фотографировать — со всех сторон он почти одинаковый. Видно только стык крышки, разъем USB-C и кнопку включения. Зато получилась идеальная форма, ничего лишнего. В будущем, возможно, сделаю корпус чуть более шершавым для лучшего хвата.

The One Cube партия готовых устройств
The One Cube партия готовых устройств

Боль и страдания: Провода и косяки

Без этого не обходится ни один DIY-проект.

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

The One Cube в разборе с проводами
The One Cube в разборе с проводами

Косяки проектирования.

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

Материнская плата The One Cube
Материнская плата The One Cube

Про патент и копирование

Часто спрашивают, не боюсь ли я, что проект скопируют. Если честно — нет. Идея куба с экранами не нова, похожие концепты патентовались еще 20 лет назад.

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

В заключение

Каждый компонент в The One Cube был выбран не случайно. Это система компромиссов, осознанных решений и ошибок, которые пришлось исправлять на лету. Именно это железо с его возможностями и ограничениями диктует правила игры и формирует тот уникальный опыт, который дает куб.

-

В следующих статьях покажу, что уже работает.

-

P.S. В следующей версии куба планирую вибромоторчик =)

-

И кстати, в моем TG-канале регулярно обновления по проекту

Начать дискуссию