Страница 1 из 1
Требуется ввести задержку в цифровой сигнал
Добавлено: Вс окт 14, 2012 21:42:59
satary
Добрый день!
Недавно приобрел себе комплект nVidia 3DVision starter kit, очки с передатчиком. Устройство требуется для просмотра 3D. Возникла проблема: нет поддержки Linux, а так как очки нужны не для развлечения, а для работы (я молекулярный биолог, занимаюсь моделированием белков) получилось, что 3 рубля я потратил просто так.
Чтобы освоить сумму, решил сделать аппаратный синхронизатор очков с дисплеем. Суть работы такова: берем сигнал вертикальной развертки, отсеиваем все четные (или нечетные) импульсы и отправляем их на передатчик. Таким образом, если на экране изорбражение обновляется 120 раз в секунду, то на синхронизатор сигнал идет 60 раз в секунду.
Я сделал такое устройство в виде DVI VGA переходника на базе триггера SN74ALS74AN(аналог КР1533КМ2). Переключатель нужен для выбора синхронизации: по четному или по нечетному сигнулу.
Схема:

Внешний вид:

Оно работает, но работает оно не очень хорошо - изображение двоит. Это связано с тем, что проектор, который я использую для вывода изображения, выводит картинку с задержкой.
Вопрос:
каким образом можно реализовать настраиваемую задержку импульсов на определенное время (до 1/60 сек)? Если это можно сделать без микроконтроллеров, то как? если на микроконтроллере, то какой лучше использовать? Программирование вопросов не вызывает и не отталкивает.
Заранее благодарен, к сожалению я лишь любитель, прошу прощения за кривую терминологию.
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Вс окт 14, 2012 21:49:22
ploop
Интересная тема

На микроконтроллере конечно лучше будет, но если у вас нет опыта работы с ними, то это потребует немного времени на освоение.
А не пробовали на вход триггера подать сигнал через RC-цепочку, где резистор - переменный? Номиналы подобрать опытным путём. Не уверен, что получится, но всего 2 детальки, я бы поэкспериментировал.
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Вс окт 14, 2012 21:53:03
satary
Как вариант, но RC цепи могут сдвигать фазу только на треть периода (если я не ошибаюсь

), а мне нужно два периода.
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Вс окт 14, 2012 21:57:34
ploop
Фазу на периодическом сигнале не имеет смысла сдвигать больше, чем на 1 период. Импульсы, как понимаю, периодические? (просто я с видео никогда не работал)
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Вс окт 14, 2012 22:01:17
satary
Да, вы правы, что то я глуплю. Сигналы периодичиские, частота 120 Гц, плавает в пределах 1гц. На элт мониторах этот сигнал действительно является сигналом вертикальльной развертки, на ЖК и прочем является сигналом обновления изображения.
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Вс окт 14, 2012 22:21:52
ploop
Эх, интересно стало, расчехлил осциллограф

И вот что нашел:
Очень короткие импульсы с частотой 60Гц (ну это у меня)
Вот длительность:
Можно попытаться сдвинуть RC-цепочкой...
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Вс окт 14, 2012 22:55:18
satary
Большое спасибо! Не ожидал такого основательного подхода к ответу! У меня из инструментов только паяльник и мультиметр китайский

так что контролирую результат чисто визуально...
Завтра на работе буду пробовать, нашелся бы только реостат подходящий.
З.Ы. К слову, изначально я проблемму пробовал решить программно, нашел в сети библиотеки для работы с этими очками по USB, написал драйвер, в итоге выяснилось, что он очень сильно зависит от процессора и глючит даже если выставлен приоритет реального времени. Так же выяснилось, что библиотеки приспособлены для работы только с ЖК мониторами и пришлось их перепиливать для проектора, вышло кривовато, потерялись цвета. Тот факт, что под Windows все работает (в драйверах для винды прописаны настройки для всех моделей проекторов и дисплеев, вот только их не выдрать), душу не греет и говорит что программная реализация возможна, но я решил обойтись меньшей кровью... возможно

Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Вс окт 14, 2012 23:27:28
ploop
Если не получится с RC (уж очень импульсы короткие), можно сделать задержку на таймере 555. Копеечная деталька, схемы легко гуглятся, но в основном на большую задержку (секунды-минуты, хотя сути не меняет).
У нас в разделе
Статьи есть три статьи с очень простым описанием теории его работы.
Ну а захотите контроллеры освоить - поможем, уж с ними под линуксом работать никаких проблем нет

Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Пт окт 26, 2012 10:46:50
ANAXR0N1ZM
Приветствую всех. Вот недавно родилась схемка, которая просто "проглатывает" первый импульс, всё остальное выводит без изменений. Т.е. для периодических сигналов задержка составляет ровно 1 период.
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Пт окт 26, 2012 11:37:07
ploop
эээ.. а что это даст? Чем поможет автору (кстати где он?)?
Ему как раз надо сдвигать фазу в пределах периода.
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Пт окт 26, 2012 12:36:26
ANAXR0N1ZM
Да, согласен, схема не в точку. Но свои 5 копеек=))) Кстати, почитал про эти самые очки...
Как выяснилось существует 3 типа 3D-очков: анаглифные, затворные и видео-очки с поляризованными линзами. Вот эти самые затворные очки как раз таки требуют синхронизации с проекторами, дисплеями и ТВ-системами. NVidia GForce 3D Vision Kit (они, или хотя бы похожи?) - те самые затворные очки. Тогда я чего-то не понимаю -зачем делить частоту на 2, а потом сдвигать её и отдавать в очки. В очках эта частота поделится еще раз на 2 (там попеременке "зашторивается" то левая, то правая линза). Получается что один глаз при каждом открытии затвора очков увидит аж 4 кадра! Добавим еще сюда наше смещение -получим, что кадры будем смотреть не с самой верхней строчки. И тут уже будет эффект искажения изображения =( Тут, я считаю, изображение будет расслаиваться горизонтально, как при съемке картинки на экране старого ЭЛТ-монитора на еще более древнюю видеокамеру))))
Ах, у этих очков еще целый вагон наименований с чем они работают и с чем нет - может иметь место несовместимость.
...вроде всё. Вопрос интересный, поэтому надо добраться совместными усилиями до истины
Re: Требуется ввести задержку в цифровой сигнал
Добавлено: Чт дек 27, 2012 17:56:45
satary
Доброго дня!
Выяснилось, что задержку вводил Xсервер при запуске окружения.
Перезапуск иксов решает все проблемы.
По поводу того, зачем делить сигнал, это не ко мне, а к разработчикам очков, уж так они работают.