1 (04.06.2011 16:27:13 отредактировано RomanGe)

Тема: Irreco

Настройка Irreco или как я обучал мобилку управлять телевизором и тп.

Началось все с покупки n900 smile Когда я только осваивался с ним я установил половину пакетов с репов и обнаружил программу irreco с помощью которой можно управлять чем попало через ir порт. Черт! это же давняя мечта, ну может не мечта но я всегда думал классно будет с телефона управлять всякой всячиной! Тем более сейчас инфрокрасные приемники пихают куда надо и не надо, кроме теликов и dvd в ноуты, кондиционеры, вентиляторы. С предыдущими нокиями как-то не срослось но тут, это ж n900 на нем можно все, что позволяют железяки.  smile

Можно скачать готовый конфиг прямо из этой программы, но для моего [s]лампового[/s] кубического небольшого телика у них конфига не нашлось, для вентилятора тем более, а др. техники не имеем) , ну и не надо  :-P  самому даж интереснее.
Можно для этого всего использовать http://www.lirc.org/html/irrecord.html но я о нем узнал слишком поздно smile

Что понадобится?
  1. Девайс с ик портом, на который можно поставить irreco и lircd (здесь, естественно, n900)

  2. Пульт от теливизора/холодильника или чем вы управлять будите

  3. Комп с любой звуковой картой

  4. Провода; 3,5 штекер, как от наушников.

  5. Какой-нибудь аудио редактор

  6. Терпения понадобится много...

Что будем делать?

Подключим пульт к компу, запишем его команды в звуковой файл, переведем в формат, который съедобен для irreco.

Вперед!

Подключаем пульт к звуковой карте.

Очевидных варианта лишь два:

  • Проводами

  • С помощью фотодиода или чего-то подобного

Проводами это значит вскрыть пульт, параллельно ик диоду припаять/примотать провода, другие их концы припаять их к миниджеку.

С помощью фоточегото: припаять фотодиод к миниджеку, а потом "светить" икдиодом пульта в фотодиод.

В обоих случаях миниджек в микрофонный вход звуковой карты.

Никаких навыков не надо абсолютно, справится даже ребенок.
Я сначала сделал первым способом, работало)
Ну а когда нашел подходящий приемник, переделал. Он, кажется, был выдран из мыши.

как это выглядит:

+ открыть спойлер

просто работает)

Все элементарно: первый контакт штекера (самый большой) к одной ножке, второй и третий можно спаять вместе и подсоединить ко второй ножке.
Я справился почти без опыта.

В случае с проводами все аналогично: первый контакт штекера к одному контакту диода в пульте, второй и третий ко второму контакту диода.

Запись

Будем считать что у вас все получилось подключить. Теперь нужен звуковой редактор. Главное чтоб умел рисовать так:

+ открыть спойлер

Циферки вверху обязательны smile

Я сижу под убунтой так что [s]у меня нет выбора[/s] использую audacity. Под виндой есть soundforge, впрочем audacity кроссплатформенный можете установить и его.

Процесс записи затруднений не должен вызвать. Только с фотодиодом нужно метко целится пультом прям в него  :-)

Я нарисовал примерное расположение кнопок пульта на бумажке и пронумировал их, записал все подряд.

Даже не знаю как назвать aka распознование

Эт очень долгая часть, но никто не заставляет записывать сканкоды всех кнопок пульта, можно обойтись standby, громкостью и каналами(следующий, предыдущий).

Общий вид конфига irreco такой:

# комментарий
begin remote
  name samsung
  flags RAW_CODES
  eps         0 
  aeps        0 
  ptrail      0
  repeat         0     0
  gap        35714
   begin raw_codes
    name POWER 
         900  900  1770  900  900  900 
         900  900  900    900  900  900 
         900  900  900    900  900  1770 
         900  900  1770  900  900
    name команда 
        коды коды
        коды коды
  end raw_codes
end remote

бывают другие в шестнадцатеричном виде, но это головная боль, они генерятся автоматически с помощью irrecord (можете поискать), давно еще пробовал но что то не получилось.

Подробнее про конфиг тут

нас интересуют "коды" ну и название команды.
В примере фигурирует число 900 и 1770, что почти 1800 (900*2). Догадливые уже все поняли.
На самом деле 900 это что то от 890 до 920, но 900 мой теливизор тоже с удовольствием съел. Получается точность не кретична
Эти самые коды записываются в виде

длинна_единичного_сигнала      длинна_нулевого_сигнала      длинна_1_сигнала      длинна_0_сигнала(пауза)

их число должно быть нечетное, т.к. бес толку в конце дописывать нулевой сигнал.

Как определить длину элементарного сигнала?

Для каждого девайса и пульта эта характеристика разная (ну или для каждого производителя).
К счастью как выяснилось на моем опыте жуткая точность не нужна.
Открываю записанный аудиофайл в audacity и добавляю зумма:

+ открыть спойлер

Принцип понятен.

Еще зумм к любой одиночной единичке (чтобы определить длительность):

+ открыть спойлер

так.

начало где-то на 2.84465 конец примерно на 2.84557
длительность:
2.84557-2.84465=0,00092 сек = 0,92 мс = 920 мкс
выходит в конфиге записывается длительность в микросекундах.

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

+ открыть спойлер

если вам до сих пор не понятно как все это устроено, то представляйте, что программа думает когда читает такой конфиг

    name POWER 
         900  900  1770  900  900

ага, команда называется POWER.
шлю сигнал 900мкс, жду 900мкс, шлю 1700мкс, жду 900мкс, шлю 900мкс, все.

Когда ваш конфиг, пусть только с одной командой, готов, кидайте его в /home/user/MyDocs/irreco/InternalLircDevices/
затем нужна указать lirc'y где брать конфиг (irreco - лишь интерфейс для lirc, а сам lirc есть и под nix и под винду(WinLirc)), для этого в файл
/etc/lircd.conf добавьте строчку
include "/home/user/MyDocs/irreco/InternalLircDevices/smsng"
где smsng - имя конфига.

после этого в irreco > edit remote > add new button  должны появится эти команды

Если все сделано, но телевизор не реагирует, то можно записать сигнал n900 и пульта и сравнить их в аудио редакторе , чтобы понять увеличить длительность или же уменьшить. Так же для повышения точности можно измерить длительность, например десять сигналов, и поделить ее на 10.

У лирка есть консольный интерфейс, так что можно творить и творить c desktop-cmd-exec-widget пока не кончится место на раб столах smile
[s]но я и так тут нахреначил огого, так что в другой раз. и да, мне нечем заняться.[/s]
на самом деле все было проделано ради интереса, пользуюсь редко. но метров с пять телевизором можно управлять, вентилятором, почемуто немного дальше.

мое:

+ открыть спойлер

http://img97.imageshack.us/img97/5665/81437778.png

прилепил мой файл. телик самсунг на кинескопе ск-14с8хр

Подробно про конфиг (теперь в hex на примере вентилятора)

Чтобы разобраться с hex скачал конфиг от какого-то пульта (наугад).

begin remote
  name  JvcDishPlayer500
  bits           13
  flags SPACE_ENC|NO_HEAD_REP
  eps            30
  aeps          100
  header        750  6000
  one           624  2600
  zero          624  1500
  ptrail        624
  gap          6000
  toggle_bit      0

      begin codes
          power                    0x0000000000001EFC
          recent                   0x00000000000016FC
          tvWeb                    0x0000000000001A7C
          scrollUp                 0x000000000000137C
          и тд.
      end codes

end remote

По порядку.

name - имя
bits - количество бит
flags - флаги их много про них по ссылке дальше.
eps - относительная терпимость к ошибки для принятого сигнала в процентах (конфиг один для приемника и передатчика, нам не надо)
aeps - абсолютная терпимость к ошибке в микросекундах
header - прибавляется к каждому сигналу в начале записывается в виде <единичный_сигнал> <пауза>
one - единичный сигнал тоже в виде <единичный_сигнал> <пауза>
zero - нулевой сигнал тоже в виде ...
ptrail - чтобы не соврать говорю честно это я не допонял
gap - пауза после всего сигнала
toggle_bit - тоже не знаю smile 

подробнее все там же

Для начала удаляем все левое.

begin remote
  name  myRemote
  bits           40 #с запасом xD
  eps            30 #оставлю, вдруг потом придется скормить конфиг лирку приемнику.
  aeps          100
  one           624  2600
  zero          624  1500
  gap          6000
  toggle_bit      0
      begin codes
          power                    0x0000000000001EFC
      end codes
end remote

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

вот сигнал пульта от телика:

+ открыть спойлер

http://img853.imageshack.us/img853/6448/23851612.png

я не придумал, что тут как обозначить. пробовал так: элементарный ноль - ноль, элементарная единица - единица (one      900;  zero     0  900) но lirc'y не понравилось.

С вентилятором повезло:

+ открыть спойлер

http://img860.imageshack.us/img860/9389/97150712.png

длинна одного сигнала здесь 440

быстро делим сигнал на единички и нули:

+ открыть спойлер

http://img192.imageshack.us/img192/1413/64225446.png

mad gimp skillz)

получается, что:

one    1320  440
zero   440    1320

а сам код в двоичном виде:
110110000001

открываем калькулятор, включаем режим с разними системами счисления или программиста(в винде кажется так называлось)
как-то так:

+ открыть спойлер

http://img36.imageshack.us/img36/9381/42206405.png

жмем hex и получается D81

получившийся конфиг:

begin remote
  name  100331-AA
  bits           30
  eps            30
  aeps          100
  one           1320  440
  zero          440  1320
  gap          6000
      begin codes
          power                    0x000000000D81
      end codes
end remote

Оказалось с hex-представлением сигнала даже проще, только надо было разобраться
про управление лирком из терминала в комментариях.

вопросы, пожелания, исправления в комментарии.

Post's attachments

smsng 2.69 kb, 15 загрузок с 2011-06-03 

У Вас недостаточно прав для загрузки файлов, прикрепленных к этому сообщению.

2

Re: Irreco

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

Поделиться

3

Re: Irreco

Круто. В мемориз!
Не хватает пока терпения. Но надо будет как-то взяться...

Спасибо!

Добавлено: 03.06.2011 14:55:32

Круто. В мемориз!
Не хватает пока терпения. Но надо будет как-то взяться...

Спасибо!

Поделиться

4

Re: Irreco

Можно что-то подобное провертеть с пультом от машины ?

+ открыть спойлер

Я ничeму нe рaд в мoлчaньи cвeтлыx днeй. Я - Мазандар! И грoм и дoждь друзья мoи тeпepь. В лaдoни гopсть пpичудливыx кaмнeй… Бeзвoдный край… Прoрoкoв слaвить грех тут. Нe лгу сeбe : нe ждeт тaких уcпeх. И я нe стaну никoгдa тaким, кaким хoчу. Тaк умирaeт сaмoмнeньe, нo пуcть живeт сoмнeньe. Oнo и ecть пoкopнocть и пeчaль для днeй людcких. И вce прoйдeт лeгкo, бeз лишнeй бoли. Нa сaмoм дeлe этo хoрoшo, и я дoвoлeн…

Поделиться

5

Re: Irreco

Да ты крут. Столько работы проделал. А вообще можно было с помощью qtIrreco это сделать. Зашел в qtIrreco, скачал нужные коды для нужного телевизора по названию и все. А вообще твой метод меня заинтересовал. Интересует тоже вопрос

AndyTitan пишет:

Можно что-то подобное провертеть с пультом от машины ?

???????????? - сотри монеткой, чтобы получить пароль от этого аккаунта

Поделиться

6

Re: Irreco

Badn088 пишет:

Зашел в qtIrreco, скачал нужные коды для нужного телевизора по названию и все.

RomanGe пишет:

Можно скачать готовый конфиг прямо из этой программы, но для моего [s]лампового[/s] кубического небольшого телика у них конфига не нашлось, для вентилятора тем более

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

Поделиться

7

Re: Irreco

AndyTitan пишет:

Можно что-то подобное провертеть с пультом от машины ?

Насколько я знаю нельзя.

Поделиться

8

Re: Irreco

Раз пошла такая пьянка задам мучающий меня вопрос - у меня есть телек, но сначала управлялся с n900 а теперь ваще не реагирует. Есть ли вариант того что у меня згорел ИК-порт?

Добавлено: 03.06.2011 17:41:57

Раз пошла такая пьянка задам мучающий меня вопрос - у меня есть телек, но сначала управлялся с n900 а теперь ваще не реагирует. Есть ли вариант того что у меня згорел ИК-порт?

не было забот - купил n900

Поделиться

9

Re: Irreco

Terranos пишет:

Раз пошла такая пьянка задам мучающий меня вопрос - у меня есть телек, но сначала управлялся с n900 а теперь ваще не реагирует. Есть ли вариант того что у меня згорел ИК-порт?

Проще всего посмотреть на свой ик порт через любую цифровую камеру.

Добавлено: 03.06.2011 19:18:57

RomanGe пишет:
AndyTitan пишет:

Можно что-то подобное провертеть с пультом от машины ?

Насколько я знаю нельзя.

В смысле нельзя с помощью ик порта нашего девайса. Конечно особо пытливый радиолюбитель сможет записать радиосигнал пульта и воспроизвести его с помощью мк, но я в этом ничего не понимаю)

Поделиться

10 (03.06.2011 20:31:03 отредактировано Niko2040)

Re: Irreco

У меня есть TV-тюнер, коды кнопок от его пульта я знаю (в hex). Но проблема в том, что я не знаю что за конфиги вверху файла перед кодами в irreco.

flags RAW_CODES
  eps         0
  aeps        0
  ptrail      0
  repeat         0     0
  gap        35714

Типа вот этого. Если подскажете, то смогу управлять компом через свой N900)
Ах да, у кнопок разные коды когда она нажата и когда отпущена. (вроде на 1 бит отличие)

Поделиться

11 (03.06.2011 22:26:54 отредактировано RomanGe)

Re: Irreco

Niko2040
Я далеко не знаток в области настройки lirc. Может позже разберусь и с шестнадцатеричным представлением сигнала пульта...
про сам конфигурационный файл, есть примеры
большущий мануал по lirc
к сожалению все на английском.

Добавлено: 03.06.2011 22:32:11

я бы поступил так: ищу в их базе пульт того же производителя, из той же серии, меняю в этом конфиге коды на свои. smile
Можно все же записать сигнал пульта, как это делал я, но это долго черт возьми. Ну а если пульта нет то плохо.

12

Re: Irreco

hxka аа. Ну для моего телека там конфиг был просто. Хочу с помощью телефона и с музыкальным центром справиться. Это реально тоже? AIWA  называется, старый но функциональный

Добавлено: 03.06.2011 23:00:26

hxka аа. Ну для моего телека там конфиг был просто. Хочу с помощью телефона и с музыкальным центром справиться. Это реально тоже? AIWA  называется, старый но функциональный

???????????? - сотри монеткой, чтобы получить пароль от этого аккаунта

Поделиться

13

Re: Irreco

RomanGe пишет:

Я далеко не знаток в области настройки lirc. Может позже разберусь и с шестнадцатеричным представлением сигнала пульта...
про сам конфигурационный файл, есть примеры
большущий мануал по lirc
к сожалению все на английском.

Спасибо, английский я более-менее знаю) Если разберусь - напишу может мануал на русском smile

RomanGe пишет:

я бы поступил так: ищу в их базе пульт того же производителя, из той же серии, меняю в этом конфиге коды на свои. smile
Можно все же записать сигнал пульта, как это делал я, но это долго черт возьми. Ну а если пульта нет то плохо.

Ну, времени у меня не особо много, да и негде фотодиод достать, а пульт с платой пока на гарантии.

Поделиться

14 (04.06.2011 00:02:13 отредактировано Terranos)

Re: Irreco

RomanGe пишет:
Terranos пишет:

Раз пошла такая пьянка задам мучающий меня вопрос - у меня есть телек, но сначала управлялся с n900 а теперь ваще не реагирует. Есть ли вариант того что у меня згорел ИК-порт?

Проще всего посмотреть на свой ик порт через любую цифровую камеру.

А что я должен увидеть/не увидеть?

не было забот - купил n900

Поделиться

15 (04.06.2011 08:43:39 отредактировано comu82)

Re: Irreco

Terranos пишет:

А что я должен увидеть/не увидеть?

Если ик порт работает, то видно как он загорается синим цветом нажимая на кнопки пульта. Попробуй через камеру того же n900 на любой пульт посмотреть понажимать на кнопки и увидишь.

Поделиться