Гид по технологиям

Arduino Pong: как сделать ретро-игру на Arduino с выводом на телевизор

7 min read Arduino Обновлено 21 Apr 2026
Arduino Pong: ретро-игра на TV
Arduino Pong: ретро-игра на TV

Важное замечание: проект даёт монохромный аналоговый видеовыход и базовую игру Pong — это учебный и ностальгический проект, а не полнофункциональная консоль.

Что такое проект и зачем он нужен

Pong — одна из первых массовых видеоигр, выведенных в семейный досуг. В этой инструкции вы соберёте минимальную версию Pong на Arduino с выводом изображения на телевизор через композитный (RCA) вход. Это полезный проект для практики: вы научитесь работать с библиотекой TVOut, формировать видеосигналы, считывать аналоговые входы и управлять простейшей игровой логикой.

Кому подойдёт: начинающим и тем, кто хочет улучшить навыки электроники и программирования Arduino.

Основные компоненты и инструменты

  • 470 Ω резистор x1
  • 1 kΩ резистор x1
  • 10 kΩ потенциометр (вращающийся переменный резистор) x2
  • Arduino (любая версия) x1
  • RCA-разъём (штекер) x1 — минимум для видео
  • Кнопка (pushbutton) x1
  • 10 kΩ резистор x1 (для подтяжки кнопки)
  • Провода, паяльник, макетная плата (breadboard)

Фотография подготовленных деталей и Arduino

Подготовка библиотеки TVOut

  1. Скачайте библиотеку TV Out (в исходной статье указана версия TVoutBeta1.zip). Поместите распакованные папки в каталог /arduino/libraries.
  2. Перезапустите Arduino IDE (если он был открыт).

Важно: используйте ту версию библиотеки, которая совместима с вашей платой Arduino. Старые версии библиотек иногда требуют правок для новых плат.

Подключение и тестирование вывода на ТВ

  1. Возьмите RCA-штекер и аккуратно зачистите внешний экран (оплётку) — это будет общий провод (GND).
  2. Зачистите внутренний центральный провод — это будет видеосигнал.
  3. Спаяйте 470 Ω и 1 kΩ резисторы последовательно к центральному проводнику. 470 Ω подключается к цифровому выводу D7, 1 kΩ — к D9. Эти контакты заданы библиотекой TVOut и не меняются программно.
  4. Подсоедините GND Arduino к оплётке RCA.

Зачищенный RCA-штекер и провода для пайки

Загрузите пример из библиотеки TVOut (например, демонстрацию с кубом или тестовый экран). Современные телевизоры обычно автоматически синхронизируются; при проблемах попробуйте переключиться между PAL и NTSC в примерах.

Примечание: даже в регионах с PAL часто работает NTSC, но поведение зависит от телевизора.

Подключённый к телевизору Arduino с композитным выводом

Аналоговые входы для контроллеров

Потенциометры контролируют положение ракеток:

  1. Каждый потенциометр имеет 3 контакта: левый, центральный, правый. Центральный — выход (сигнал).
  2. Подключите центральные выводы к A0 и A1 (по одному на контроллер).
  3. Один крайний контакт подаёт +5 V; другой крайний контакт — на GND.

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

Потенциометры, подключённые к Arduino на макетной плате

Загрузите пример «analog input» из Arduino IDE, чтобы проверить корректность чтения с A0 и A1: светится встроенный LED с частотой, соответствующей значению потенциометра.

Кнопка старта

Подключите кнопку к цифровому входу D2. Используйте подтягивающий резистор 10 kΩ (к +5 V) или внутренний подтягивающий резистор Arduino (INPUT_PULLUP), учитывая инверсию логики в коде. Кнопка будет запускать игру из меню.

Кнопка старта и подключение на макетной плате

МAPPING выводов (чекшит)

  • Видео (сигнал через последовательно спаянные резисторы): D7 (470 Ω), D9 (1 kΩ)
  • GND: на оплётку RCA
  • Потенциометр 1: A0
  • Потенциометр 2: A1
  • Кнопка Start: D2
  • (Опционально) Звуковой выход: D11

Код игры Pong

Автор оригинального кода — Lamonica, модификация для двух игроков — duboisvb, дальнейшее обновление — автор исходной статьи. В коде используется состояние игры (меню, игровой процесс, окончание), чтение входов A0/A1 и кнопки, отрисовка шарика и ракеток и простая физика отскока.

Просмотреть и скачать код можно на pastebin (указан в оригинальной публикации). Код достаточно длинный, но понятный: основные циклы читают входы и отрисовывают кадр через библиотеку TVOut.

Важное замечание: в коде включён опциональный аудио-выход. Для звука подайте сигнал на D11 через отдельный RCA-штекер.

Сборка Arduino Pong с подключёнными входами и резисторами

Аудио-выход

Если у вас есть второй RCA-штекер, можно вывести звук на отдельный вход телевизора или усилителя. Подключите сигнальный провод напрямую к D11 (без резисторов) и GND к оплётке. В коде звуковые сигналы генерируются простой тоногенерацией.

Отладка и типичные проблемы

  • Нет изображения: проверьте GND (оплётку RCA) и контакт D7/D9. Убедитесь, что библиотека TVOut установлена и пример компилируется.
  • Мерцание или искажения: попробуйте другую версию библиотеки или переключитесь между PAL/NTSC в примере.
  • Потенциометры не меняют поведение: проверьте питание +5 V и GND на крайних контактах потенциометра и соединение центрального контакта с A0/A1.
  • Кнопка не срабатывает: проверьте подтяжку к +5 V или настройку INPUT_PULLUP и логику нажатия в коде.

Улучшения и альтернативные подходы

  • Цветной вывод: TVOut может поддерживать цвет на некоторых комбинациях плат/библиотек — изучите документацию библиотеки.
  • Энкодеры вместо потенциометров: для цифрового управления и лучшей устойчивости можно использовать ротационные энкодеры и читать их через прерывания.
  • Беспроводные контроллеры: совместить проект с беспроводными модулеми (например, nRF24) для удлинения проводов.
  • Использование современных HDMI-адаптеров: преобразовать композит в HDMI — дополнительное устройство, но даёт совместимость с новыми телевизорами.

Мини‑методология сборки (быстрая дорожная карта)

  1. Установить библиотеку TVOut.
  2. Подготовить RCA-штекер: зачистить центральный и экран.
  3. Спаять резисторы к центральному проводу и подключить к D7/D9.
  4. Подключить GND Arduino к оплётке RCA.
  5. Протестировать пример TVOut на экране.
  6. Подключить потенциометры к A0/A1, проверить чтение аналоговых входов.
  7. Подключить кнопку к D2, загрузить Pong-код.
  8. При желании добавить звук на D11 и сделать корпус.

Роли и контрольные списки

Создатель (Maker):

  • Проверить комплект компонентов
  • Установить библиотеку TVOut
  • Смонтировать RCA и спаять резисторы
  • Подключить потенциометры и кнопку
  • Загрузить код и настроить меню/тайминги

Тестировщик (QA):

  • Проверить изображение на нескольких телевизорах
  • Проверить инерцию и отклик ракеток
  • Проверить поведение при плохом контакте GND
  • Проверить звук на отдельном входе

Критерии приёмки

  • На экране отображается меню и игровой экран
  • Потенциометры плавно управляют ракетками
  • Кнопка старт запускает игру из меню
  • Мяч отскакивает от ракеток и краёв экрана корректно
  • При наличии RCA звука — слышны простые тоны при столкновениях

Совместимость PAL/NTSC

Библиотека включает примеры для PAL и NTSC. Современные телевизоры часто поддерживают оба сигнала, но при проблемах переключитесь в примере между режимами. Если телевизор старый, используйте предпочтительный стандарт для вашего региона.

Безопасность и советы по пайке

  • Работайте в проветриваемом помещении.
  • Используйте держатель для платы при пайке мелких деталей.
  • Проверяйте отсутствие коротких замыканий перед подключением к телевизору.

Краткая терминология

  • TVOut: библиотека для генерации композитного видеосигнала из Arduino.
  • RCA: разъём для композитного видео/аудио.
  • POT (потенциометр): переменный резистор для аналогового ввода.

Короткое объявление проекта (для соцсетей, 100–200 слов)

Соберите собственную версию классического Pong на Arduino и выведите изображение прямо на телевизор через композитный кабель. Проект использует библиотеку TVOut, два потенциометра для управления ракетками и одну кнопку для старта. Это отличная практическая задача для начинающих: вы научитесь формировать видеосигналы, работать с аналоговыми входами и реализовывать простую игровую логику. В качестве улучшения можно добавить звуковой выход, адаптер для HDMI или 3D-печатный корпус. Понадобятся базовые навыки пайки и Arduino IDE — и у вас будет собственная мини-консоль в ретростиле.

Итог

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

Ключевые ссылки и ресурсы

  • Библиотека TVOut (исходная версия: TVoutBeta1.zip)
  • Исходный код Pong (look for the pastebin mentioned in the original project)

Финальная сборка Arduino Pong с выводом на телевизор

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Запуск Командной строки от имени администратора
Windows

Запуск Командной строки от имени администратора

Отключить напоминания Facebook Memories и скрыть их
Социальные сети

Отключить напоминания Facebook Memories и скрыть их

Как управлять cookie в Chrome, Firefox и Edge
Приватность

Как управлять cookie в Chrome, Firefox и Edge

Как управлять расширениями в Chrome, Edge, Vivaldi
Браузеры

Как управлять расширениями в Chrome, Edge, Vivaldi

Добавить пользовательские эмодзи в Discord
Discord

Добавить пользовательские эмодзи в Discord

Вентилируемая подставка для ноутбука — 3 DIY-плана
DIY

Вентилируемая подставка для ноутбука — 3 DIY-плана