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

Arduino Pong — ретро‑игра Pong на Arduino с выводом на ТВ

7 min read Электроника Обновлено 02 Jan 2026
Arduino Pong на ТВ — сборка и инструкция
Arduino Pong на ТВ — сборка и инструкция

TL;DR

Коротко: с помощью Arduino, пары потенциометров, одного RCA‑штекера и библиотеки TVout вы можете собрать простую версию Pong, выводимую на обычный телевизор по композитному (RCA) кабелю. Подключите 470 Ом к D7 и 1 кОм к D9, потенциометры к A0/A1, кнопку старта к D2, при желании звук — к D11. Библиотеку TVout поместите в /arduino/libraries и загрузите пример.

О чем эта статья

Исторический Pong и простая реализация на Arduino с композитным выводом видео. Пошаговые инструкции для сборки, проверки вывода на ТВ, подключение контроллеров, кнопки старта и советы по отладке и улучшению проекта.

Arduino и телевизор — пример вывода Pong на экран

Почему это полезно

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

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

Список компонентов

  • 470 Ом резистор — 1 шт.
  • 1 кОм резистор — 1 шт.
  • 10 кОм потенциометр — 2 шт. (вращающиеся регуляторы)
  • Arduino — 1 шт. (любая модель; UNO и аналогичные подходят)
  • RCA‑штекер — 1 шт. (минимум для видео)
  • Нажимная кнопка — 1 шт. (кнопка старта)
  • 10 кОм резистор — 1 шт. (можно для подтяжки кнопки)
  • Макетная плата, провода, паяльник, мультиметр

Разъём RCA и сопротивления, подключённые к сигнальному проводу

Примечание: два упомянутых 10 кОм резистора — один может использоваться как подтягивающий резистор для кнопки.

Подготовка программного обеспечения

  1. Скачайте библиотеку TVout (например TVoutBeta) — в исходной статье упоминается TVoutBeta1.zip. Поместите распакованные папки в каталог /arduino/libraries.
  2. Закройте и снова откройте Arduino IDE, если она была запущена — чтобы IDE обнаружила новую библиотеку.
  3. В Arduino IDE откройте примеры библиотеки TVout, чтобы начать с готовых демо‑скетчей (например, NTSC или PAL demo).

Важно: не придумывайте собственные номера выводов для видеосигнала — библиотека TVout ожидает конкретных пинов (см. ниже).

Подключение и тест TV Out

Шаги:

  1. Возьмите RCA‑штекер и удалите внешнюю оплётку до оголения экрана. Скрутите оплётку и отведите её в сторону — это будет общий провод (GND).
  2. Внутри — центральный сигнальный провод в пластиковой изоляции. Снимите небольшую часть изоляции, чтобы получить центральный провод для сигнала.
  3. Припаяйте два резистора к центральному проводу: 470 Ом и 1 кОм. Эти резисторы формируют суммарный аналоговый видеосигнал (сигнал + синхронизация).
    • 470 Ом соединяется с цифровым выводом D7 (обозначается в библиотеке как D07).
    • 1 кОм соединяется с цифровым выводом D9 (D09 в Arduino).
  4. Подключите внешний экран (оплётку) RCA к GND (земля) на Arduino — любой из контактов GND.

Пайка резисторов к центральному проводу RCA и подключение к Arduino

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

Проверка вывода на телевизор

  1. Подключите RCA к входу AV/Composite телевизора.
  2. В Arduino IDE загрузите один из демо‑скетчей TVout (NTSC или PAL). Современные телевизоры часто автоматически распознают формат; если нет — переключитесь между NTSC и PAL демонстрациями.
  3. Включите телевизор на AV‑вход. Если всё в порядке, вы увидите тестовый экран (например, ретро 3D куб или разметку).

Подключение земли RCA к GND Arduino

Если нет изображения, см. секцию «Тесты и отладка» ниже.

Подключение аналоговых контроллеров (потенциометров)

  1. Каждый потенциометр имеет три контакта. Центральный контакт — обычно выходной сигнал (Wiper). Подключите центральные контакты к аналоговым входам:
    • левый контроллер → A0
    • правый контроллер → A1
  2. Один из боковых контактов подключите к +5 В. Другой боковой контакт к GND. На большинстве потенциометров направление вращения меняет знак, но принцип прост.
  3. Для удобства расположите потенциометры на макетной плате, используйте экранированный кабель или старый сетевой кабель, если хотите делать контроллеры с длинным шнуром.

Потенциометры на макетной плате, используемые как контроллеры

Проверьте работу, загрузив пример «Analog Input» из Arduino IDE: встроенный светодиод будет мигать быстрее/медленнее при повороте ручки. Это поможет убедиться, что потенциометр и A0 подключены правильно.

Подключение кнопки старта

  1. Подключите одну ножку кнопки к цифровому входу D2.
  2. Другую ножку кнопки подключите к GND.
  3. Используйте подтягивающий резистор 10 кОм к +5 В на входе D2 или активируйте внутренний pull‑up в коде (INPUT_PULLUP), тогда логика будет инвертирована (кнопка замыкает на землю).

Кнопка старта, подключённая к цифровому пину D2

Кнопка используется для запуска игры из меню. Протестируйте её в простом скетче до интеграции с игрой.

Код и исходники

Исходный код, упомянутый в оригинале, основан на реализации Lamonica, затем модифицирован для двух игроков автором duboisvb и обновлён для работы с текущей беты библиотеки TVout. В коде реализованы состояния игры (меню, игра, игра окончена), отрисовка мяча и ракеток, чтение значений потенциометров и кнопки каждую итерацию цикла.

Звуковой выход реализуется отдельным цифровым пином:

  • Подключите сигнальный провод аудио к D11 — вы получите простые тональные эффекты (популярный подход для ретро‑звука на Arduino).

Схема игры Pong: мяч и ракетки в движении на экране

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

Тесты и отладка

Проверьте по шагам, если что‑то не работает:

  • Нет изображения на ТВ:
    • Убедитесь, что телевизор переключён на вход AV/Composite.
    • Проверьте пайку в RCA: нет ли короткого между центральным проводом и оплёткой.
    • Проверьте, что резисторы припаяны к центральному проводу и к пинам D7/D9.
    • Попробуйте оба примера из библиотеки (NTSC и PAL).
    • На старых/новых телевизорах может потребоваться композитный вход без переходников (HDMI‑конвертеры иногда не передают синхронизирующие сигналы корректно).
  • Контроллеры не реагируют:
    • Измерьте напряжение на центральных контактах потенциометров при повороте (0–5 В ожидается).
    • Проверьте соединения A0/A1.
  • Кнопка не срабатывает:
    • Проверьте подтяжку к Vcc или использование INPUT_PULLUP в коде.

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

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

  • Вместо RCA используйте композитный → HDMI конвертер, если ваш телевизор лишён композитного входа.
  • Для более удобных контроллеров сделайте корпус с ручками и длинным кабелем; можно использовать старый джойстик от игровой приставки с конвертацией входов.
  • Добавьте подсветку LED для очкового индикатора и простую таблицу рекордов в EEPROM Arduino.
  • Для цветного вывода изучите расширения TVout или другие библиотеки, поддерживающие цвет (зависит от вашей платы и библиотеки).

Сценарии, где проект не подойдёт

  • Для многопользовательских современных игр с сетевой поддержкой не подходит.
  • Если вам нужна высокая разрешающая способность или плавная анимация — аппаратные ограничения Arduino и TVout это ограничивают.

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

  • На ТВ появляется меню или демонстрационный экран при загрузке скетча.
  • Потенциометры корректно перемещают ракетки на экране.
  • Кнопка запуска начинает игру из меню.
  • При подключении аудио к D11 слышны простые тональные эффекты (если подключено).

Роль‑ориентированные чеклисты

  • Сборщик:
    • Провёл пайку RCA и резисторов.
    • Подключил GND к оплётке RCA.
    • Смонтировал потенциометры на макетной плате.
  • Тестер:
    • Запустил NTSC и PAL демо, убедился в выводе изображения.
    • Проверил работу A0/A1 с мультиметром.
    • Проверил логическую работу кнопки на D2.
  • Пользователь:
    • Удобно сидит на расстоянии действия проводов.
    • Может регулировать чувствительность потенциометров при необходимости.

Мини‑методология для повторяемости

  1. Подготовьте библиотеку и проверьте примеры без изменения схемы.
  2. Соедините RCA с резисторами и проверьте изображение.
  3. Подключите потенциометры и проверьте аналоговые входы.
  4. Добавьте кнопку старта и протестируйте финальный скетч.
  5. Документируйте все изменения и сохраните резервную копию работающего скетча.

Совместимость и тонкие места

  • Arduino UNO, Nano и совместимые платы обычно поддерживаются библиотекой TVout. Платы с другим микроконтроллером могут требовать правок библиотеки.
  • Форматы NTSC/PAL: современные телевизоры часто автоматически переключаются, но для старых телевизоров выберите корректный демо‑скетч.
  • Композитные адаптеры HDMI могут не передавать синхронизирующие компоненты правильно — в этом случае используйте телевизор с нативным композитным входом.

Выходной аудио‑сигнал на цифровой пин D11 для ретро‑тональных эффектов

Идеи для следующей версии

  • Добавить счётчик и экран рекордов, сохранение в EEPROM.
  • Сделать беспроводные контроллеры с использованием радиомодулей (например nRF24).
  • Реализовать адаптацию под более сложную графику или цвет с более мощной платой.

Краткое резюме

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

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

Спасибо за чтение! Напишите, если соберёте свою версию — расскажите об улучшениях или трудностях в комментариях.

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

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

Power On: История Xbox — где смотреть
Игры

Power On: История Xbox — где смотреть

Родительский контроль на Xbox через Family Settings
Семья

Родительский контроль на Xbox через Family Settings

Как подключить контроллер Xbox 360 к консоли
Игры

Как подключить контроллер Xbox 360 к консоли

Как удалить профиль на Xbox (Series X|S, One, 360)
Xbox

Как удалить профиль на Xbox (Series X|S, One, 360)

Юбилей Xbox: как смотреть трансляцию и чего ждать
Gaming

Юбилей Xbox: как смотреть трансляцию и чего ждать

Как подключить контроллер Xbox к Mac
Технологии

Как подключить контроллер Xbox к Mac