Обсуждаем цифровые устройства...
Ответить

какой принцип использовать для записи ИК команд пульта

Ср дек 20, 2017 22:45:34

Вопрос? :) с ардуино я уже попробовал вывести на комп коды посылок с пульта. вроде работает. теперь нужно бы принять на 433.92 мгц коды шлагбаума. какой принцип использовать не знаю. замерять длительности бит? сложненько немного для моего уровня

Re: какой принцип использовать для записи ИК команд пульта

Ср дек 20, 2017 23:13:19

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

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 02:37:17

после детектора(демодулятора) модулируюшую посылку надо писать на носитель востановив(сохранив) постояную состовляющую

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 10:19:16

Я думаю mixon46 больше интересует практическая часть вопроса, а не теоретическая))

Подобное мы уже делали.. например тут - viewtopic.php?f=28&t=139596

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 21:35:27

по поводу ловли радио кода брелка подзабудем. надо потренироваться с ик. научится ловить и передавать сигнал


какая скорость передачи у ик пультов?

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 22:00:19

Скорость передачи у ик пультов, радиобрелков, дешёвой китайской аппаратуры радиоуправления и т.д. примерно одинаковая ~1кГц.

Принцип работы заводский шифраторов/дешифраторов ик пультов, радиобрелков, дешёвой китайской аппаратуры радиоуправления тоже одинаковый.. )) Отличия только в способе кодирования (протоколах передачи).

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 22:05:43

Любая команда представляет собой набор единиц и нулей. Они все кодируются длительностями импульсов и скажностью. А значит надо просто измерять длительность и скважность. И как два пальца это всё дело дешифровать. А далее имея нули и единицы можно сгенерировать нужный сигнал.
Для авр использовать захват таймера. Для стм использовать таймер в режиме измерения ШИМ.
Т.е. записывать ничего не надо. Надо дешифровывать! Это и просто и не требует много памяти.

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 22:15:03

надо довольно точно знать длину лог 1 и лог 0. поэтому поводу нужно как я понимаю сделать что то что могло бы замерить длину, период

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 22:20:21

Точность там плюс минус километр. Ресурсов и авр и тем более стм хватит за глаза. Измеряешь параметры сигналов, переводишь их в цифры. Далее из цифр генеришь. Если нужно только эмуляция одного брелка. То можно написать програмку, снять параметры и передать их в терминал компьютера. Проанализировать своим мозгом. Создать последовательность цифр. А далее написать прошивку, которая из этих цифр сделает уже готовый сигнал на выход. Но задача простая и можно всё сделать на мк.

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 22:30:34

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

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 22:32:47

силно сомневаюсь что перекодирование на ходу у вас сразу выйдет это при услови если в флеше лежат полные таблицы шифрования на оба входной и выходной код
ресурсы будут неслабо подгружены
но опыт ряда людей(судя по нету) говорит что это возможно на 328меге на лету о реалтайме

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 23:02:44

Поставить ИК приёмник, который демодулятор с несущей 36/38кГц. Смотря какой пульт. С него получать импульсы и заводить на модуль захвата. И начать принимать их, отмеряя длительность как 1 так и 0. Если длительность станет больше некоторой, значит таймаут и команда окончилась. Значит можно приступить к декодированию. Если длительность входит в некий предел(а он регламентирован в стандарте), значит понимаем его или как 0 или как 1. Сама команда состоит из нескольких частей. "Старт бит, адрес команда", определяем старт бит по длительностям. Адрес и команду считаем по количеству 0 и 1.

Мусор, какое шифрование? Какие ресурсы? Команда пришла, команда ушла. Нет там никакого шифрования. нет никаких ключей. Там всё просто как рц5 или нек. А для брелка шлангбаума и вовсе могут быть тональности.

Re: какой принцип использовать для записи ИК команд пульта

Чт дек 21, 2017 23:58:25

AndTer писал(а):Любая команда представляет собой набор единиц и нулей. Они все кодируются длительностями импульсов и скажностью.
Глупости)) Не все кодируются длительностями импульсов и скажностью.

Если говорить конкретно про ИК протоколы, то там кодировка у всех разная.

http://radioparty.ru/index.php/datashee ... ?showall=1

Цитата: "Все протоколы можно условно разделить на две категории - использующих бифазное кодирование ("Манчестерский" код) и использующие временной код... "

UART (и куча других протоколов) не кодирует длительностями импульсов и скажностью.)) Кстати есть пример как декодировать с помощью того же UART..))

http://cxem.net/ik/2-21.php

Согласен.. использовать для декодирования UART - извращение полное)) Но просто для интереса можно))
AndTer писал(а):Для авр использовать захват таймера.

Ни один заводской дешифратор не использует захват таймера. Это кустарное творчество.. для любителей экзотики))
mixon46 писал(а):надо довольно точно знать длину лог 1 и лог 0.

Ни один заводской дешифратор не знаеть точно длину лог 1 и лог 0. Только примерно)) +/- ))
mixon46 писал(а):думаю замерять длину первого импульса с помощью захвата таймера

Поймаете помеху .. и получите ошибку на выходе таймера... Например если фронт импульса на входе таймера будет не достаточно крутым. Но дело ваше... Будете потом отлавливать ошибки таймера программно))
musor писал(а):перекодирование на ходу

Что вы имеете ввиду ? Любой (даже самый дешёвый AVR) может перекодировать посылку на ходу... Причем МК даже не обязательно принимать всю посылку целиком. Для МК достаточно принять первую часть посылки, определить "Старт бит и адрес команды" (по старт биту - преамбуле - МК уже знает какой протокол) и тут же МК выдаст на выходе уже перекодированный сигнал. Т.е. любой МК может перекодировать любой ИК протокол "на ходу" (т.е. с минимальной задержкой).
И т.д. и т.п.))

Re: какой принцип использовать для записи ИК команд пульта

Пт дек 22, 2017 09:32:53

roman.com писал(а):Глупости)) Не все кодируются длительностями импульсов и скажностью.

Зачем же писать такие глупости и даже местами чушь?
Конечно не все, но ИК протоколы разбирать надо именно по ним.
Понятно что 1 и 0, но разобрать на 1 и 0 можно только используя вычисления длительности. Ибо надо отделить один протокол от другого, исключить ошибки и сбои.

При чём здесь уарт? Чукча не читатель чукча писатель? Зачем тут теория то? ТС чётко написал что ему нужно.
roman.com писал(а):Ни один заводской дешифратор не использует захват таймера. Это кустарное творчество.. для любителей экзотики))

Что за бред? Не надо писать чушь про заводской дефиратор. В МК нет аппаратного декодера, поэтому только через длительности импульсов.
Да и аппаратные декодеры я не встречал уже как с середины 90х годов.
И в заводском дефираторе так же используются длительности импульсов, пусть и аппаратно.
Хотя опять же, сейчас уже давно всё дешифруется микроконтроллерами.
roman.com писал(а):Только примерно)) +/- ))

Что за капитан очевидность?
roman.com писал(а):Поймаете помеху .. и получите ошибку на выходе таймера...

Что за бред? Для ИК есть приёмники-демодуляторы которые помехи почти все убирают. Остальное да, программно. Две строки кода, на проверку длительности и таймаута. Есть другие варианты?

Re: какой принцип использовать для записи ИК команд пульта

Пт дек 22, 2017 17:05:04

AndTer писал(а):Понятно что 1 и 0, но разобрать на 1 и 0 можно только используя вычисления длительности.

Да это вы у нас тут оказывается "капитан очевидность" ))
1.jpg
(50.26 KiB) Скачиваний: 407

AndTer писал(а):Зачем тут теория то? ТС чётко написал что ему нужно.

Вот именно! mixon46 написал конкретно что ему нужно:
mixon46 писал(а):за что зацепится. вот думаю замерять длину первого импульса с помощью захвата таймера

Вот с этого места по поподробней..))
AndTer писал(а):получать импульсы и заводить на модуль захвата. И начать принимать их, отмеряя длительность как 1 так и 0.

По вашему можно произвести вычисления длительности - с помощью захвата таймера...

Цитата из даташита МК типа AVR:

"Таймер-счетчик содержит блок захвата, который запоминает состояние счетчика при возникновении внешнего события, тем самым определяя время его возникновения. В качестве события/событий выступает внешний сигнал, подключенный к выводу ICP1.
Результат захвата состояния таймера может использоваться для вычисления частоты, скважности импульсов и других параметров импульсных сигналов."

Вот и расскажите mixon46 к чему приводит (к каким ошибкам) использование блока захвата таймера-счетчика...
А всякую ерунду тут писать не надо))

Re: какой принцип использовать для записи ИК команд пульта

Пт дек 22, 2017 17:35:42

я вот думал замерять длительности по изменению сигнала на входе. например вот на ик если нет сигнала то на выходе лог 1. когда поступает сигнал то лог 0. по изменению сигнала. сбрасывать счетный регистр и включать таймер. по следующему перепаду сигнала на входе остановить таймер. записывать в ячейку массива длительность которую насчитал таймер. обнулить счетный регистр и заново запустить таймер. закончить запись если длительность последнего сигнала будет больше определенной величины. тут понадобиться сделать большой массив. было бы вообще здорово прикрепить какую нибудь флешку и писать туда длительности. а далее разбирать информацию. опять же как и чем? и навыков работы с флеш у меня совсем нет. даже не знаю как это делается

что то на уровне фантастики

Re: какой принцип использовать для записи ИК команд пульта

Пт дек 22, 2017 18:21:35

roman.com писал(а):..

Чушь даже комментировать не стану.

mixon46 писал(а):я вот думал замерять длительности по изменению сигнала на входе. например вот на ик если нет сигнала то на выходе лог 1. когда поступает сигнал то лог 0. по изменению сигнала. сбрасывать счетный регистр и включать таймер. по следующему перепаду сигнала на входе остановить таймер. записывать в ячейку массива длительность которую насчитал таймер. обнулить счетный регистр и заново запустить таймер. закончить запись если длительность последнего сигнала будет больше определенной величины. тут понадобиться сделать большой массив. было бы вообще здорово прикрепить какую нибудь флешку и писать туда длительности. а далее разбирать информацию. опять же как и чем? и навыков работы с флеш у меня совсем нет. даже не знаю как это делается

что то на уровне фантастики

Останавливать не надо. Надо считать длительность и 1 и 0.
Какая флеш? Тот же NEC или RC5 протокол потребует массива не более 64 байт. Хватит памяти любого микроконтроллера. Это для записи. А если дешифровать полностью, то 2 байта)

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

Re: какой принцип использовать для записи ИК команд пульта

Пт дек 22, 2017 20:20:57

а для того что бы считать длительность нужно счетчик останавливать и сбрасывать перед замером следующего бита. если мы знаем длину бита то можно было бы просто через равные промежутки времени после появления первого старт бита проверять вывод микроконтроллера на лог 1 и 0. но для этого нужно замерить длину бита. хотя бы первого. а если первые два бита 0? нужно узнать какой длинны один бит

Re: какой принцип использовать для записи ИК команд пульта

Пт дек 22, 2017 20:24:44

AndTer писал(а):...

Хрень какая то... даже не поняли вообще о чём идёт речь.. ну и ладно..))
mixon46 писал(а):...

Откройте даташит стандартного заводского дешифратора. Внимательно изучите его работу. Используйте стандартный алгоритм работы заводского дешифратора. Выкиньте из головы всякие бредни, которые писали выше))

Re: какой принцип использовать для записи ИК команд пульта

Пт дек 22, 2017 20:26:56

ну где искать то. как ввести дешифратор команд пульта?
Ответить