Pull to refresh

Breakuot-подобная игра на PIC12F1572

Reading time3 min
Views6.1K
Original author: Jacques, CC-BY-SA 2.0


Предлагаемая конструкция является доказательством того, что цветной композитный видеосигнал в системе NTSC может быть сгенерирован при помощи очень простого «железа».

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


Хотя цветной композитный видеосигнал в системе NTSC генерировать сложнее, чем VGA, для этого требуется меньше выводов микроконтроллера (в данном случае — три, объединённые простейшим «микшером»). Композитным он называется потому что вся информация передаётся по одной линии. Строчные и кадровые синхроимпульсы, сигналы цветности и яркости объединены вместе, в отличие от VGA, где для каждого из этих сигналов выделено по отдельному проводу. Чтобы подать такой сигнал на телевизор, достаточно одного экранированного кабеля с «тюльпанами» с обеих сторон.

В устройстве всего два активных компонента: кварцевый генератор на 28,636 МГц (3,5795345 МГц x 8) и микроконтроллер PIC12F1572 в корпусе PDIP.

Автор решил реализовать аналог классической игры Breakout 1976 года, но на её месте могла оказаться любая аркадная игра, в оригинале реализованная на логических микросхемах, поскольку у таких игр достаточно просты сюжеты.

Теперь — подробнее


Если вы думаете, что не сможете подключить устройство к слишком современному телевизору без жёлтого «тюльпана» — к счастью, вы ошибаетесь. Ищите зелёный «тюльпан» среди предназначенных для сигналов YPbPr — туда же можно подавать и композит. Проверено на двух телевизорах, один из которых фирмы RCA, другой — Toshiba.

Насколько простым может быть устройство, генерирующее композитный видеосигнал стандарта NTSC? Смотрите схему:



Внешней генератор нужен для получения стабильной частоты поднесущей NTSC. Она в восемь раз больше требуемой. Микроконтроллер делит её на четыре, а значит, работает на частоте, вдвое превышающей частоту поднесущей. Устройство позволяет получать шесть цветов за счёт разных сочетаний четырёх видов сигналов (логическая единица, высокоимпедансное состояние, поднесущая без сдвига фазы, она же со сдвигом фазы на 180°) на двух выводах (первый — выход сигнала цветности, второй — вывод сигнала яркости):

Чёрный — высокоимпедансное состояние и там и там
Белый — высокоимпедансное состояние и логическая единица
Жёлтый — поднесущая со сдвигом на 180° и логическая единица
Пурпурный — поднесущая без сдвига и логическая единица
Синий — поднесущая без сдвига и высокоимпедансное состояние
Тёмно-зелёный — поднесущая со сдвигом на 180° и высокоимпедансное состояние

Тёмно-зелёный цвет на многих телевизорах получается неотличимым от чёрного, в связи с чем не используется. Камера автора плохо передаёт цвета, поэтому пурпурный на фото выглядит почти как белый:



Файлы лежат здесь под GPL v3.

Код написан на ассемблере, из двух килослов ПЗУ (в микроконтроллерах PIC ПЗУ хранит не байты, а слова шириной, отличающейся от 8 бит) задействовано 54%, а из 256 байт ОЗУ — 63%. Видео снято той же камерой, и пурпурный снова сливается с белым:


Краткая история игры Breakout приведена в Википедии.

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



От переводчика: в этой схеме один и тот же вывод микроконтроллера используется и для вывода аудио, и для получения аналогового сигнала от джойстика. Вероятно, для этого он программно переключается в нужные моменты из режима входа в режим выхода и обратно. Чтобы постоянная составляющая не попала в телевизор, рекомендуется перед «тюльпаном» поставить конденсатор.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+24
Comments0

Articles

Change theme settings