
Lesley Fowler
0
1972
315
Понг был первой видеоигрой, которая достигла массового рынка. Впервые в истории концепция “видео игра” благодаря Atari 2600 был привезен в семейный дом, поэтому совершенно правильно, что мы отдаем немного уважения этой исторической жемчужине. Теперь вы можете заново пережить это (по общему признанию несколько скучный геймплей) используя Arduino и некоторые общие компоненты.
Я не буду лгать - вряд ли ваша дочь откажется от своего Nintendo DS, и это не даст часам веселья для всей семьи - но это потрясающий и простой проект по улучшению вашего кода Arduino. И если вы только начинаете, не забудьте проверить руководство для начинающих Arduino.
Мы сделаем два основных контроллера, и видео будет выводиться на ваш телевизор через стандартный композитный видеокабель.
Чтобы вывести этот проект на новый уровень, вы можете напечатать 3D-корпус. Пользователь YouTube PotentPrintables сделал именно это!
Требования к Arduino Pong
- 470 ом резистор x1
- 1k ом резистор x1
- Потенциометр 10 кОм (переменный резистор) x2
- Arduino x1 (любая версия)
- RCA штепсель x1 (если у вас их больше одного, вы также можете подключить звук. Один для видео - это минимум)
- Нажать кнопку переключатель x1
- 10k ом резистор x1
Вы также можете скачать библиотеку TV Out Arduino отсюда - получить TVoutBeta1.zip, последний выпуск. Поместите все полученные папки в свой / Arduino / библиотеки и перезапустите Arduino IDE, если он уже открыт.
Тестирование ТВ-выхода
Возьмите штекер RCA и снимите внешний слой. Соберите экранирование, поверните и отложите в сторону. Это ваша земля. В центре должен быть еще один кабель с пластиковым экраном - опять же уберите его, чтобы у вас была сигнальная линия.
Припаяйте резисторы 470 и 1 кОм к центральной сигнальной линии штекера RCA - это обеспечивает синхронизирующий сигнал и фактический видеосигнал, объединенные для создания аналогового видеовхода. Резистор 470 Ом должен быть подключен к цифровому выводу ввода-вывода D07, а резистор 1 кОм - к контакту D09.
Эти контакты устанавливаются библиотекой, которую мы импортируем, поэтому вы не можете их изменить. Один из ваших выводов Arduino GND должен идти к экранированию (снаружи) RCA.
Теперь вы можете пойти дальше и загрузить пример; хотя предоставляются как PAL, так и NTSC, это не должно иметь большого значения для современных цифровых телевизоров - демонстрация NTSC для меня работала нормально, несмотря на то, что я в Великобритании. Подключите к телевизору, и вы получите красивый ретро 3D-куб. О-о-о-о, да - ты уже взволнован? я.
Тестовые аналоговые входы потенциометра
Хорошо, у нас работает ТВ-выход, теперь давайте посмотрим на контроллеры. Проводка “горшки” не так критично - у каждого должно быть 3 контакта, а центральный почти всегда выдает выходной сигнал. Подключите это к A0 и A1 (по одному для каждого банка). На одном из боковых выводов - не важно, какой - подключить + 5В. Другой штифт на другой стороне должен идти на землю.
Здесь я поместил их обоих на единый макет, потому что у меня только короткие провода. Для полированного продукта вы захотите использовать старый сетевой кабель, чтобы дать вам немного расстояния (чтобы вы могли фактически сидеть на диване, чтобы поиграть).
Затем загрузите один из основных примеров эскизов, которые идут с Arduino - аналоговый вход. Эта демонстрация будет мигать встроенным светодиодом быстрее или медленнее, в зависимости от входа на A0.
Он не тестирует другой банк А1, но если у вас правильно настроен А0, тогда я не вижу, как вы допустите ошибку на А1, поэтому давайте предположим, что это все хорошо, и идем дальше..
Добавить стартовый переключатель
Наконец, мы добавим пусковой переключатель на D02. Обратитесь к схеме подключения здесь, чтобы узнать, как это сделать. Этот переключатель будет использоваться для запуска игры, когда в меню.
Код Понг
Мы используем код, изначально написанный Lamonica, модифицирован duboisvb для двух игроков, и обновил сам, чтобы использовать последнюю бета-версию библиотеки ТВ-выхода. Вы можете просмотреть и скачать код с этой вставки.
Это довольно длинный, но простой код, который не требует от меня никаких объяснений. Как и большинство игр, он зависит от игрового состояния (меню, в игре, игра окончена) и считывает входные значения обоих контроллеров и переключает каждую итерацию цикла. Помимо этого, есть методы рисования экрана, мяча, весла и игровой логики..
Обратите внимание, что код включает в себя аудио выход тоже: я не смог найти больше RCA разъемов для проверки этого, но если у вас есть, подключите сигнальный контакт непосредственно к D11, и вы получите приятные ретро-тоны.
Если честно, я не знал, что Arduino мог бы даже выходить на ТВ без какого-либо чрезвычайно сложного кодирования; Библиотека ТВ-выхода делает это действительно легко. Даже если вы не увлекаетесь ретро-играми, использование этого базового ТВ-выхода - отличный способ использовать существующее оборудование в качестве дешевого устройства для мониторинга. Вы можете, конечно, вывести цвет тоже.
Как ты думаешь, ты попробуешь Arduino Pong или сделаешь свой собственный римейк ретро-видеоигры? Скажите нам в комментариях, если у вас есть!