Эмуляция сигнала ИК ПДУ с помощью компьютера
- vasilii kot
- Открыл глаза
- Сообщения: 77
- Зарегистрирован: Пт ноя 19, 2010 23:16:26
- Контактная информация:
Эмуляция сигнала ИК ПДУ с помощью компьютера
Есть необходимость управлять некоторыми приборами (приносимыми в ремонт) с помощью компьютера по ИК каналу, но вот часы поиска в интернете не дали ни чего кроме описания самих протоколов пультов. Помогите
- Реклама
- Maykill
- Друг Кота
- Сообщения: 73964
- Зарегистрирован: Вт дек 20, 2011 12:46:51
- Откуда: Петроград
- Контактная информация:
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
а вы думали- в сказку попали?
протоколы это и есть самое главное...
далее пишется программка которая при нажатии скажем клавиш компутера генерит нужную последовательность .
Та подаётся на ИК передатчик...и всё
http://chipenable.ru/index.php/how-conn ... eniya.html
впрочем по научному это называется " чесание за левым ухом правой ногой"
протоколы это и есть самое главное...
далее пишется программка которая при нажатии скажем клавиш компутера генерит нужную последовательность .
Та подаётся на ИК передатчик...и всё
http://chipenable.ru/index.php/how-conn ... eniya.html
впрочем по научному это называется " чесание за левым ухом правой ногой"
https://www.int-s.spb.ru
" Можно я лягу?"(C)
" Можно я лягу?"(C)
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Напрямую эмулировать невозможно - многозадачность не даст выдерживать тайминги. Нужно навешивать МК. А так вполне можно. Я бы поставил преобразователь USB-UART, а дальше что-нибудь из серии ATTINY или MSP430G совместно с ИК-диодом.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Maykill
- Друг Кота
- Сообщения: 73964
- Зарегистрирован: Вт дек 20, 2011 12:46:51
- Откуда: Петроград
- Контактная информация:
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
как вариант- хранить сами последовательности команд в виде отдельных файлов ( скажем в .avi)
и выдавать их на передатчик по мере надобности
https://www.int-s.spb.ru
" Можно я лягу?"(C)
" Можно я лягу?"(C)
- Реклама
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Или mp3 и выдавать на звуковую карту...
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Или mp3
Любое сжатие с потерями скорее всего не прокатит.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Не уверен вообще что прокатит. Нужная частота модуляции сигнала, если не ошибаюсь, лежит в пределах 32..38кГц (в зависимости от приемника, который пока неизвестен). Wav файлы также не подойдут, так, как частота дискретизации должна быть одна из 11 025, 22050, 44100. Есть вариант - VOC-файл (частота в диапазоне от 5000 до 44100 Гц). Но тут другая проблема - для каждого приемника свой файл.
Плюс ко всему нужна хорошая звуковая карта.
Как по мне - нужен МК:
Плюс ко всему нужна хорошая звуковая карта.
Как по мне - нужен МК:
- С помощью таймеров конфигурируется и выводится несущая (ШИМ).
На любой другой пин выводим информацию в соотв. формате.
Как их объеденить? С помощью елемента И ну или транзистора.
Связь с ПК с помощью UARTа. Разделяются управляющие команды (настройка частоты) и данные.
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Как их объеденить? С помощью елемента И ну или транзистора.
Проще программно сделать битовый буфер с нужным типом модуляции. Сигнал-то чисто цифровой.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Ну тогда уж таймер в режиме CTC и прерывание в котором дергаем ногу МК.
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Управление ик светодиодом :
через сом порт - Lirc , Winlirc , Manybutt(Furby...WINSAMP...)...
через звуковую карту - ledrem , RemCol Pocket - Программы для ББ (RemColStudioAlfa(запись сигнала пульта,свой формат),RDF (кодировка и база пультов rdf), IRplay(кодировка и база пультов lirc))...
через сом порт - Lirc , Winlirc , Manybutt(Furby...WINSAMP...)...
через звуковую карту - ledrem , RemCol Pocket - Программы для ББ (RemColStudioAlfa(запись сигнала пульта,свой формат),RDF (кодировка и база пультов rdf), IRplay(кодировка и база пультов lirc))...
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Не нужен для этих целей контроллер, совсем не нужен. В принципе, даже и программировать для этого не нужно!
Когда-то давным давно для КПК существовали проги которые работают как пульты через.... IRDA. Хотя это не совместимый интерфейс, однако интерференция сигналов IRDA вполне давала годный сигнал для распознавания управляемым устройством.
Как это было устроено? IRDA работает короткими импульсами и работает как обычный UART т.е. посылаем какой-то байт, IRDA начинает мигать короткими вспышками в зависимости от передаваемых данных, хоть эти вспышки и не лежат в области частот пультов но их кратная частота совпадает. Правда, эфективность такого метода очень низка - такой пульт работает дай бог сантиметров с десяти. Но речь не об этом.
COM-порт можно использовать для генерации ИК-вспышек на строго заданной частоте, независимо от софта т.к. реализация его аппаратная. Нужно только подобрать скорость передачи(обычно это 115200) и последовательность байт для передачи которая даст нужный спектр для детектирования ИК-приемником.
Что самое интересное, с СОМ-портом можно работать даже из ДОСа, настроив при помощи команды "MODE" и передавая в него предварительно заготовленные последовательности из файлов - никаких программ для работы кроме 16-ричного редактора для создания файлов не нужно.
Когда-то давным давно для КПК существовали проги которые работают как пульты через.... IRDA. Хотя это не совместимый интерфейс, однако интерференция сигналов IRDA вполне давала годный сигнал для распознавания управляемым устройством.
Как это было устроено? IRDA работает короткими импульсами и работает как обычный UART т.е. посылаем какой-то байт, IRDA начинает мигать короткими вспышками в зависимости от передаваемых данных, хоть эти вспышки и не лежат в области частот пультов но их кратная частота совпадает. Правда, эфективность такого метода очень низка - такой пульт работает дай бог сантиметров с десяти. Но речь не об этом.
COM-порт можно использовать для генерации ИК-вспышек на строго заданной частоте, независимо от софта т.к. реализация его аппаратная. Нужно только подобрать скорость передачи(обычно это 115200) и последовательность байт для передачи которая даст нужный спектр для детектирования ИК-приемником.
Что самое интересное, с СОМ-портом можно работать даже из ДОСа, настроив при помощи команды "MODE" и передавая в него предварительно заготовленные последовательности из файлов - никаких программ для работы кроме 16-ричного редактора для создания файлов не нужно.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Alexeyslav
подтверждаю - сам так делал генератор )))
подтверждаю - сам так делал генератор )))
- vasilii kot
- Открыл глаза
- Сообщения: 77
- Зарегистрирован: Пт ноя 19, 2010 23:16:26
- Контактная информация:
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
Alexeyslav писал(а):Не нужен для этих целей контроллер, совсем не нужен. В принципе, даже и программировать для этого не нужно!
Когда-то давным давно для КПК существовали проги которые работают как пульты через.... IRDA. Хотя это не совместимый интерфейс, однако интерференция сигналов IRDA вполне давала годный сигнал для распознавания управляемым устройством.
Как это было устроено? IRDA работает короткими импульсами и работает как обычный UART т.е. посылаем какой-то байт, IRDA начинает мигать короткими вспышками в зависимости от передаваемых данных, хоть эти вспышки и не лежат в области частот пультов но их кратная частота совпадает. Правда, эфективность такого метода очень низка - такой пульт работает дай бог сантиметров с десяти. Но речь не об этом.
COM-порт можно использовать для генерации ИК-вспышек на строго заданной частоте, независимо от софта т.к. реализация его аппаратная. Нужно только подобрать скорость передачи(обычно это 115200) и последовательность байт для передачи которая даст нужный спектр для детектирования ИК-приемником.
Что самое интересное, с СОМ-портом можно работать даже из ДОСа, настроив при помощи команды "MODE" и передавая в него предварительно заготовленные последовательности из файлов - никаких программ для работы кроме 16-ричного редактора для создания файлов не нужно.
Вот об этом же и думал, но как это реализовать в железе и ПО? Я и сам разберусь, но может поделитесь опытом.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Эмуляция сигнала ИК ПДУ с помощью компьютера
ПО тут совсем не причем - главное что нам надо, это возможность послать непрерывный поток байт через порт. От того какие данные будем передавать зависит форма сигнала на пине TX СОМ-порта, путем подбора или точного рассчета подбираем передаваемые данные таким образом чтобы сформировать на выходе нужную осциллограмму. начинаем с простого формирования нужной нам частоты и формирования паузы, затем комбинацией этих участков создается три набора - стартовый сигнал, передача лог.0 и лог.1 компонуя их вместе реализуем нужный протокол передачи.
Железо простое - есть активный сигнал на TX, включаем светодиод, нет сигнала - выключаем. Тот жалкий стартовый импульс который присутствует при передаче каждого байта данных мешать не будет, он находится вне частотного диапазона приемника - если передавать "0x00" приемник будет это рассматривать как отсутствие сигнала.
Сам этим не занимался, но видел конкретные реализации приложений на КПК, а раз один человек сделал то второй завсегда повторить сможет.
немного подробностей:
передача по UART происходит последовательной передачей бит с выбранной скороcтью:
Например передача без контроля четности с одним стоповым битом:
1dddddddd0
1 - стартовый бит, d - 8 бит данных, 0 - стоповый бит.
Передача происходит на скорости 115200 - значит длительность каждого бита равна 1/115200 = 8.68мкс
Допустим, нам надо получить частоту 38кГц, с периодом T = 1/38000 = 26.3мкс это примерно по 3 бита передаваемых данных. т.е. каждые 3 бита должен быть повтор(скважность нам не важна, удобно использовать 1:2).
Примерно так:
Накладываем на эту последовательность передачу по UART и получаем значения байт которые надо передать чтобы сформировать последовательность очень близкую к 38кГц. точно получить не получится - мешать будут стартовые и стоповые биты.
Стоит отметить, что по стандарту RS-232 лог.1 соответствует уровень -12В, а если брать преобразователи USB-UART там уровню лог.1 соответствует +5В или +3.3В, но в виду малого буфера таких устройств может выйти обломс - при переполнении аппаратного буфера в устройстве возникнет пауза в передаче данных пока не подгрузится очередная порция, которая прийдет со следующей транзакцией на USB-шине а это может произойти через 1...10мс. ИК-приемник зафиксирует паузу в передаче и команда будет проигнорирована.
Так что я не уверен что такой "финт" получится с USB-переходниками, с аппаратным портом вероятность переполнения буфера стремится к нулю а вот через USB с этим довольно плохо.
Если применить простой расчет... то для непрерывной передаче по USB необходим аппаратный буфер в переходнике не меньше чем 1000мкс/(8.68мкс*11бит) = 10 байт. Это чисто теоретически, на практике все может оказаться по-другому.
Железо простое - есть активный сигнал на TX, включаем светодиод, нет сигнала - выключаем. Тот жалкий стартовый импульс который присутствует при передаче каждого байта данных мешать не будет, он находится вне частотного диапазона приемника - если передавать "0x00" приемник будет это рассматривать как отсутствие сигнала.
Сам этим не занимался, но видел конкретные реализации приложений на КПК, а раз один человек сделал то второй завсегда повторить сможет.
немного подробностей:
передача по UART происходит последовательной передачей бит с выбранной скороcтью:
Например передача без контроля четности с одним стоповым битом:
1dddddddd0
1 - стартовый бит, d - 8 бит данных, 0 - стоповый бит.
Передача происходит на скорости 115200 - значит длительность каждого бита равна 1/115200 = 8.68мкс
Допустим, нам надо получить частоту 38кГц, с периодом T = 1/38000 = 26.3мкс это примерно по 3 бита передаваемых данных. т.е. каждые 3 бита должен быть повтор(скважность нам не важна, удобно использовать 1:2).
Примерно так:
Код: Выделить всё
100100100100100100100100100100100100100100100100100100100100100100100100
1dddddddd01dddddddd01dddddddd01dddddddd01dddddddd01dddddddd01dddddddd01dddddddd0Накладываем на эту последовательность передачу по UART и получаем значения байт которые надо передать чтобы сформировать последовательность очень близкую к 38кГц. точно получить не получится - мешать будут стартовые и стоповые биты.
Стоит отметить, что по стандарту RS-232 лог.1 соответствует уровень -12В, а если брать преобразователи USB-UART там уровню лог.1 соответствует +5В или +3.3В, но в виду малого буфера таких устройств может выйти обломс - при переполнении аппаратного буфера в устройстве возникнет пауза в передаче данных пока не подгрузится очередная порция, которая прийдет со следующей транзакцией на USB-шине а это может произойти через 1...10мс. ИК-приемник зафиксирует паузу в передаче и команда будет проигнорирована.
Так что я не уверен что такой "финт" получится с USB-переходниками, с аппаратным портом вероятность переполнения буфера стремится к нулю а вот через USB с этим довольно плохо.
Если применить простой расчет... то для непрерывной передаче по USB необходим аппаратный буфер в переходнике не меньше чем 1000мкс/(8.68мкс*11бит) = 10 байт. Это чисто теоретически, на практике все может оказаться по-другому.


