Подборка проектов за неделю с 26 сентября по 2 октября: ESP32 запускает игру с PlayStation и притворяется КПК из девяностых, компакт-диски возвращаются в игровые консоли, а рядом — трикодер, радарный дрон и табло для споттеров.

Metal Gear Solid переехал с PlayStation на ESP32-S3#

Сцена из Metal Gear Solid на экране ILI9341, подключённом к ESP32-S3

Солид Снейк на дисплее ILI9341 — за картинку отвечает ESP32-S3

Оригинальный Metal Gear вышел ещё в 1987 году на MSX, но настоящая слава пришла к серии с Metal Gear Solid на первой PlayStation в 1998-м. То, для чего тогда требовалась полноценная консоль, в 2026 году помещается в микроконтроллер: Давид Монтеро Креспо портировал MGS на ESP32-S3.

Проект целиком опирается на декомпиляцию MGS Reversing от FoxdieTeam: раз игру разобрали в исходники, её можно собрать и под другую платформу. Просто форкнуть репозиторий и выбрать ESP32 целью сборки, конечно, не получилось — пришлось учитывать различия между MIPS-процессором PlayStation и ядрами Xtensa в микроконтроллере; подробности автор описал в блоге. Чтобы в это можно было играть, он собрал минималистичную портативку на макетной плате: модуль ESP32-S3, аналоговый стик от пульта дрона, LCD-панель ILI9341 и резистивная лестница для кнопок.

Подробнее на Hackaday

КПК в духе Palm на Cheap Yellow Display#

Скриншоты приложений КПК-прошивки для Cheap Yellow Display

Лаунчер, калькулятор, рисовалка, часы, Gopher-браузер и другие приложения

Платы Cheap Yellow Display (CYD) на ESP32 любят все, так почему бы не превратить свою в КПК? Автор под ником sau412 сделал именно это. Для тех, кто не застал: КПК — это, по сути, смартфон без телефона и камеры, а устройства на Palm OS правили рынком с девяностых до начала двухтысячных.

Palm OS автор не эмулирует и не портирует — это собственная прошивка, вдохновлённая карманными компьютерами прошлого. В ней есть Gopher-браузер (альтернатива вебу, которая никак не умрёт), читалки RSS и Википедии — полноценного веб-браузера нет, но и думскроллинга не будет. Плюс набор игр, интерпретатор BASIC, календарь, калькулятор, контакты, читалка книг и даже переводчик. По словам Hackaday, через веб-прошивальщик всё заводится минут за пять, правда, без microSD часть приложений не работает. ESP32-КПК встречались и раньше, но с CYD этот проект проще всего повторить.

Подробнее на Hackaday

Open Source Science Tricorder — научный трикодер на uConsole#

Внутренности трикодера на базе Clockwork Pi uConsole с платами датчиков

Датчики трикодера под задней крышкой uConsole

Питер Янсен уже больше десяти лет пытается построить устройство, достойное называться трикодером из «Звёздного пути», и его новая версия — Open Source Science Tricorder Cyberdeck — подобралась к цели очень близко. Выглядит она, честно говоря, практичнее, чем реквизит из сериала.

Инструментов тут куда больше трёх: сцинтилляционный кристалл для спектрометрии бета- и гамма-источников, спектрометр видимого света, тепловизор, «магнитная камера» и обычный магнитометр, а также датчики температуры, давления, влажности, твёрдых частиц, ЛОС и CO₂. Корпусом служит Clockwork Pi uConsole — «слэбтоп» с QWERTY-клавиатурой и IPS-экраном, а данные обрабатывает Compute Module 5. Всё открыто: на GitHub лежат подробности, видео сборки и работы устройства — бери и повторяй.

Подробнее на Hackaday

Портативная PICO-8 на Raspberry Pi Zero 2 W#

Фиолетовая портативная консоль PICO-8 с квадратным экраном

Квадратный экран 720 × 720 идеально подходит к пропорциям PICO-8

PICO-8 — так называемая «фантазийная консоль»: под неё можно программировать, игр для неё море, но 8-битной консоли, которой она притворяется, на самом деле не существует — это виртуальная машина поверх обычной ОС. UncleStem решил убрать из словосочетания слово «фантазийная» и собрал под PICO-8 настоящую портативку в духе Game Boy.

Внутри Raspberry Pi Zero 2 W — для 8-битной виртуальной машины это перебор, но плата была под рукой, и сборка с ней простая. Главная находка — IPS-экран 720 × 720 с HDMI-входом и звуком, который повторяет квадратные пропорции PICO-8 и занимает большую часть лицевой панели. Всё смонтировано на собственной печатной плате с полноцветной шелкографией, корпус напечатан на 3D-принтере (автор пробовал выфрезеровать его из алюминия сам, но в итоге отдал профессионалам). Файлы платы и остальное выложены в открытый доступ, но саму PICO-8 придётся купить — она не открыта.

Подробнее на Hackaday

Дрон с радаром синтезированной апертуры научился интерферометрии#

Квадрокоптер с радаром синтезированной апертуры на земле

Радарный дрон Хенрика Форстена второго поколения

Прошло больше года с тех пор, как Хенрик Форстен построил первый дрон с радаром синтезированной апертуры (SAR), и время он потратил с толком. Главным ограничением первой версии был GPS с точностью около метра, поэтому качество изображений держалось на алгоритме автофокуса, который восстанавливал положение дрона. Теперь на борту RTK-приёмник с точностью в пару сантиметров. А поскольку координаты в реальном времени дрону не нужны, можно использовать и PPK — пост-обработку записанных GPS-сигналов после полёта.

Улучшилось и железо: стабилизирована ФАПЧ, формирующая частотную развёртку радара, а поскольку интерфейса SD-карты у управляющей ПЛИС не хватало для записи в реальном времени, Хенрик написал простой и быстрый алгоритм сжатия. Самое интересное — интерферометрия: дрон дважды пролетает один маршрут на разной высоте, и по разности фаз между проходами вычисляется высота объектов. Обычный SAR предполагает плоский рельеф, из-за чего высокие объекты «заваливаются» в сторону радара, а интерферограмма даёт подробную карту высот.

Подробнее на Hackaday

Самое маленькое интернет-радио?#

Крошечная плата интернет-радио с аудиоразъёмом и USB-C

Разъёмы здесь чуть ли не крупнее самой электроники

Интернет-радио существуют уже четверть века, а с дешёвыми сетевыми микроконтроллерами собрать своё стало проще простого. Вопрос лишь в том, насколько маленьким его можно сделать. Milen собрал одно из самых компактных, что попадались Hackaday, и выложил инструкцию на Instructables.

Рецепт классический: микроконтроллер подключается к интернету, а софт интернет-радио отправляет поток на ЦАП. Здесь это ESP32-C3 на очень маленькой отладочной плате, к которой пристёгнута самодельная плата с I²S-ЦАПом PCM5102A и усилителем. Всё настолько миниатюрно, что разъёмы USB-C и аудиовыхода выглядят на фоне платы громоздкими. Можно ли ещё меньше? Hackaday предлагает выкинуть разъёмы и, пожертвовав качеством, использовать встроенный ЦАП ESP32 — он не предназначен для звука, но справится.

Подробнее на Hackaday

Самодельная игровая консоль, которая грузит игры с компакт-дисков#

Автор проекта рядом с белой консолью и коробками компакт-дисков с играми

Консоль Эммета и игры в настоящих jewel-кейсах с обложками

Большие консоли от оптических носителей почти отказались, но в сердце Эммета — и в его самодельной приставке — им место осталось. Причём речь не о Blu-ray и даже не о DVD, а о старых добрых CD. Современные AAA-игры на такой диск не поместятся, но их не потянул бы и одноплатник на Intel N150, на котором построена консоль. Зато в её распоряжении десятилетия ретро-игр: плата работает под Batocera — дистрибутивом Linux, заточенным под эмуляцию.

Геймпады тоже самодельные: беспроводные, по BLE, на ESP32-S3 — в каждом вычислительной мощности больше, чем в некоторых эмулируемых приставках. В отличие от «картриджных» проектов, где носитель лишь выбирает игру из памяти, здесь на диске действительно записан ROM вместе со скриптом, который кладёт его в библиотеку нужного эмулятора. Но главное, что выделяет проект, — внимание к деталям: собственные надписи на дисках, обложки для jewel-кейсов и корпус, напечатанный на 3D-принтере. Всё это делает её похожей на настоящую консоль, а не на ПК, подключённый к телевизору.

Подробнее на Hackaday

FltCast — табло пролетающих самолётов на RTL-SDR и LED-матрице#

Светодиодная матрица FltCast с логотипом авиакомпании, номером рейса, скоростью и высотой

FltCast показывает ближайший самолёт: рейс, скорость, высоту и направление

Многие трекеры самолётов на Raspberry Pi берут данные из API вроде OpenSky, а FltCast от bytecadia принимает их напрямую с бортов. В печатном корпусе — Raspberry Pi 4, RTL-SDR с антенной и RGB-матрица HUB75 размером 64 × 32 пикселя, на которой и выводится информация о рейсах.

Программная часть написана на C++: ADS-B декодирует dump1090-fa (или любой другой декодер с потоком в формате SBS/BaseStation на порту 30003), а FltCast выбирает ближайший самолёт, дополняет данные из локальной базы — авиакомпания, логотип, силуэт самолёта — и рисует всё на матрице. В репозитории на GitHub есть список деталей, STL-файлы корпуса и инструкция по установке; подробное пошаговое руководство автор обещает выпустить позже.

Подробнее на Adafruit Blog