TSOP 1738
- Войдите на сайт для отправки комментариев
Вс, 15/09/2013 - 18:06
Всем привет!
Я пытаюсь управлять ПК с пульта от телика. Сегодня купил этот ИК приёмник. Написал такой код:
#include <IRremote.h> int RECV_PIN = 9; IRrecv irrecv(RECV_PIN); decode_results results; int old_result; int new_result; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)){ new_result = results.value; if (new_result != old_result){ Serial.println(results.value); } old_result = new_result; irrecv.resume(); } }
От одной и той же кнопки я получил:
Я так предполагаю, что при отпускании клавиши линтяйка сама меняет команду, т.к. когда я держал кнопк, то шли одинаковые команды. Наверное это было сделано для того, чтоб клавиша не нажималась несколько раз и телик сравнивает преведущую команду с нов пришедшей. Но мне то как быть???
Ну будет ваша дуина отправлять команды и что дальше? Вы программу, которая будет принимать команды от дуины и управлять другими программами уже написали? или нашли такую?
Не занимайтесь бесполезным делом, с таким уровнем знаний вы ничего не сделаете.
Дуина для решения этой задачи не нужна http://www.vidon.ru/old/ir-remote/.
Программу для компа написать для меня ничего сложного. А вот с дуней не так давно столкнулся. Вопрос остался открытым...
Программу для компа написать для меня ничего сложного. А вот с дуней не так давно столкнулся. Вопрос остался открытым...
https://www.google.com/search?hl=ru&q=arduino+irremote
Ребят, у меня код написан, он компилируется, но в итоге я не получаю нужного результата так как эта библа не может распознать пакеты от этого пульта, поэтому выдаёт какие-то кривые цифры. Как я понимаю, надо брать пакеты RAW, так вот, что эти пакеты из себя представляют. Да, и ещё, неужели вы думаете, что я не лазал в нете по этому вопросу???
Ребят, у меня код написан, он компилируется, но в итоге я не получаю нужного результата так как эта библа не может распознать пакеты от этого пульта, поэтому выдаёт какие-то кривые цифры. Как я понимаю, надо брать пакеты RAW, так вот, что эти пакеты из себя представляют. Да, и ещё, неужели вы думаете, что я не лазал в нете по этому вопросу???
Мужик, у меня тоже код написан, нужный результат получаю, библиотека распознаёт коды пульта, как и что работает не вникал - тем более не было необходимости брать RAW. Что по инету лазал - верю, но бестолку.
*с какого "энтого пульта"? - небось от кондишина взял пульт или нерабочий дома нашёл?
частота пульта =? частота приёмника
Вообщем перед тем как смотреть коды. Нужно еще убедится что оно распознало его нормально. Иначе цифры - вообще ничего не значат.
не нужно свой скетч изобретать. с библиотекой уже идет "диагностический пример" IRrecvDump
Вот с его вывода и начинайте танцевать.
А еще информация вида о "пульта от телика" - это вообще ни о чем. Бывают разные производители, разные модели. У них - разные кодировки. И IRRemote, кстати, знает далеко не все. Скажем когда я с ней "знакомился", то был был неприятный сюрприз в том что Philips (если правильно помню) - таки не поддерживается. Пришлось разбиратся как вообще эти кодировки работают и дотачивать библиотеку.
А еще они некоторые пульты при удержании шлют повтор клавиши, другие - разные коды удержания и краткого, кто-то имеет два кода клавиши и шлет их по очереди (что-бы можно было отличить удержание от повторого нажатия). Эти "два кода" могут быть вообще не связаны, а могут отличатся только одним битом.
Вообщем подключить ИК пульт может как "очень просто нужно только взять библиотеку", так и "провести основательное исследование" (или взять другой, менее экзотический пульт).
Вот с его вывода и начинайте танцевать.
Танцевать нужно с выяснения на какой частоте пульт работает, а то купят 38-й приёмник и тыкают в него 36-м пультом - коды у них плохо принимаются, библиотеки неправильно работают...
Вот с его вывода и начинайте танцевать.
Танцевать нужно с выяснения на какой частоте пульт работает,
Нафига? Вот если IRrecvDump покажет что "фиг пойми какая это кодировка" и RAW видно будет "черти-что" - тогда уже заниматся выяснением причины (частота, экзотический кодинг, лампы дневного света и т.п.)
Вы так говорите "выяснить частоту" - как будто она на любом пульте большими буквами написанна :)
Вы так говорите "выяснить частоту" - как будто она на любом пульте большими буквами написанна :)
Я так говорю, что не нужно в TSOP 1738 любой пульт тыкать... конечно, можно, если желаешь заняться реверсинжинирингом причин неполадок начиная с софта и, только затем, с главного.
Вы так говорите "выяснить частоту" - как будто она на любом пульте большими буквами написанна :)
Я так говорю, что не нужно в TSOP 1738 любой пульт тыкать... конечно, можно, если желаешь заняться реверсинжинирингом причин неполадок начиная с софта и, только затем, с главного.
Ну "что главное" - это субъектиное. Я считаю главным - что-бы библиотека правильно распознавала сигналы. Это конечная цель. При этом это же - самое просто что можно проверить. Влить скетч и потыкать кнопки - это пара минут не включая мозг.
Выяснять "какая частота" человеку, предположим далекому от железа - это намного проблематичней (например мне). Поэтому прежде чем уходить в эту сторону - лично я бы вначале убедился что этим действительно нужно заниматся.
По крайней мере я, когда начал разбиратся с IRRemote (это был мой дебют в ардуине) - именно так и поступил когда не получил ничего нормального от пульта. Собрал все пульты дома (плюс у соседа парочку захватил) и начал тыкать все. А потом играть в игру "чем отличается тот пульт что работает, от того что не работает но нарвится его дизайн".
И, кстати, знание частоты самого пульта - мне так и не потребовалась. Так что я знаю какой у меня приемник, но не знаю на какой частоте пульт. Главное для меня - что стабильно ловится. Время потраченное на ваше "главное" - для меня было-бы выброшенным. Так как причина была именно в экзотической кодировке.
Я согласен с вами что вероятность "не та частота" - очень велика (а может и "Не очень", не кондишин, все-таки, а телевизор). Но я бы начинал с того что проще. Вначале узнал бы "распознает библиотека сигналы или не распознает". Может человек увидит что "не распознает", возмет пульт от второго телевизора или муз.центра у него все заработает. При этому ему без раницы какой пульт использовать. Зачем ему тогда выяснение частот?
Вообщем прежде чем что-то чинить нужно убедится что оно поломалось. Вот когда будет в логе видно ""Could not decode message" вот тогда и нужно будет думать о частотах, кодировках и проч. танцах с бубном.
Хорошо.
leshak, просто посмотрите на частоту приёмника, который вы юзаете - 38 или 36?
Хорошо.
leshak, просто посмотрите на частоту приёмника, который вы юзаете - 38 или 36?
Какой хитрый, однако, человек :)
Когда известо (причем "известно" это именно благодаря скетчу) что ЭТОТ приемник работает с пультом - любой дурак узнает частоту пульта.
А вот имея в руках только пульт как узнать частоту? (причем пульт не желательно разламывать). При этом не имея в руках ничего кроме китайского тестера и ардуины.
Кстати про "любой дурак узнает" - я не узнал :). Вообще никаких маркировок на приемнике не нашел. А чек из магазина (там было написано что это за зверь- уже очень давно выкинут). Мне кажется что 38-мь. Просто цифра как-то "знакомей" ;)
Всем спасибо!
Загружу готовый скетч и буду пытаться. Пульт использую - Toshiba SE-R0268. Кто знает, какая там частота???
Вот мне интересно в чем вы там программы пишите... если даже гуглом пользоваться не умеете?
Вторая же ссылка сверху
Ну, раз 38кГц. то проблема в скетче получается???
Пишу в Delphi, к примеру не давно для работы с дуней свой COM терминал сделал. ИМХО, гуглом не пользуюсь, очень редко, как например в случае с терминалом нашёл одну статью и по ней со всем разобрался за пару часов, свой модуль сделал.
Ну, раз 38кГц. то проблема в скетче получается???
Раз два три четыре пять - начинаю телепать.
У вас вообще распознаются посылки от пульта или нет?
Загрузил я IRrecvDump и вот что получил:
И это всё, когда я нажимал на одну и ту же клавишу!!!
>И это всё, когда я нажимал на одну и ту же клавишу!!!
Ну конечно. Оно же написало "Unknown encoding". То есть "мы что-то услышали, но ничего не поняли". А раз "ничего не поняли", то выводимые цифры означают что угодно, кроме кода клавиши.
Что-бы библиотека IRRemote в этих импульсах найти (раскодировать) что-то осмысленное нужно что-бы пульт посылал в одной из следующих кодировок:
Поэтому тут опять без гугла не обойтись. Причем довольно долго и нудно - пытатся найти в какой кодировке шлет ваш пульт (кстати вы сказали от телевизора, а мне гугл говорит DVD. Может врет, конечно, но ...)
Но прежде чем лезть в эти дебри - я бы попытался найти другой пульт. Китайские дешовые через NEC работают часто (в моем случае как NEC опознался пульт от автомагнитолы Pioner), или попытатся какой-нибудь Sony найти. Вообщем - вначале убедится что проблема именно в кодировке, а не в железе. Если хоть какой-то пульт сможет распознать - уже будете уверены что всю подключено правильно. Тогда можно начинать разбиратся именно с этим пультом.
Беглое гугление говорит что у них есть свой какой-то формат "Toshiba Micom Format" вроде "очень похожий на NEC". Возможно повезет и све сведется к "подкручиванию" временных параметров в IRemoteInt.h
или даже одного
(это параметр насколько могут отличатся временные параметры импульсов от того что ожидается по протоколу. вообщем - допустимая погрешность).
Если не повзедет - ну рытся по инету, искать описания протокола. Пытатся вначали глазами разглядет в этих RAW значениях (это как раз и есть интервалы между импульсами) все эти "начало пакета", единицы и нули.... потом руками переводить их в коды... искать закономерности...после того как руками начнет получится - тогда можно лезть в библиотеку и по аналогии с существующими форматами добавлять свой.
Вообщем все то что Клапауций обозвал "реверинжинирингом".
Еще вот тут можно попытся найти характеристики своего (или похожего и перебирать) пульта.
http://lirc.sourceforge.net/remotes/
Ну либо взять другой пульт :)
Может есть и проще пути, но... я для Philips шел этим путем. Довольно долгий он согласен. Мозгами покипеть есть где... но я другого не знаю.
Хотя.. хотя вот тут говорят Arduino/IR | MTR что IRRemote опознает тошибу как NEC протокол номально
Так что нужно гуглить описание NEC протокола и пытатся разглядеть его в принятых данных.
Это конечно если все подключено нормально.
А еще... выключите свет. Если у вас есть лампы дневного света - они тоже могут "срать в компот" (хотя телевизор работет, но все же, вначале создать тепличные условия желательно).
Спасибо!!!
Ряльно поезная инфа. Даже не знаю как поступлю, наверное все пульты переберу из дома. Хотя и вникнуть по глубже можно...
Спасибо!!!
Ряльно поезная инфа. Даже не знаю как поступлю, наверное все пульты переберу из дома.
Я бы тоже с этого начал. Попытался устранить одну "неизвестную". Бо пока неизвестно с железом проблема или с кодировкой. Хотя... у меня был только пульт, но небыло телевизора. А у вас есть и то и другое.
Можете взять инфакрасный светодиод и попытатся "без раскодирования" просто "записать посылку и повторить ее". С помощью скетча IRrecord.pde к примеру.
Использовать ардуину в качестве "попугая" :) Если она сможет записать и воспроизвести, пусть и без декодинга - значит с железом все норм.
Правда обратное - не верно. Если "не сможет" это еще не значит с "железом проблемы" :(
Хотя и вникнуть по глубже можно...
Ну тут будет где понырять :) У меня собственно со знакомство с дуиной и электроникой с этого и началось :) От полного незнания как паяльник деражть до "сделать свое устройство" (самому плату, разводку, с голого контроллера). Вот как раз IR приемник и выбрал в качестве "сделаю что-то не сложное". Ага ;) Где-то месяц или полтора заняло. Из них где-то неделя именно на разбирательство с протоколом.
Загрузил я IRrecvDump и вот что получил:
А можете еще раз? Тоже "одну и ту же клавишу". Только
1. Клавишу нажимать как можно короче (стараемся избегать посылок типа "код повтора").
2. С паузой в несколько секунд между нажатиями.
3. Постаратся что-бы приемник не ловил переотраженный сигнал от стен и проч.
В идеале должно выскакивать только одно "Unknown encoding" на каждое нажатие (но не факт что получится).
И вставте это на форум не как "просто текст", а как код. Можете даже поставить галочку "свернуть", что-бы ветка не распухала...
А еще - убедитесь что пульте батарейки свежие
Какой хитрый, однако, человек :)
Когда известо (причем "известно" это именно благодаря скетчу) что ЭТОТ приемник работает с пультом - любой дурак узнает частоту пульта.
А вот имея в руках только пульт как узнать частоту? (причем пульт не желательно разламывать). При этом не имея в руках ничего кроме китайского тестера и ардуины.
Кстати про "любой дурак узнает" - я не узнал :). Вообще никаких маркировок на приемнике не нашел. А чек из магазина (там было написано что это за зверь- уже очень давно выкинут). Мне кажется что 38-мь. Просто цифра как-то "знакомей" ;)
В своё время, когда делал себе IgorPlug-USB, пришёл к знакомым телемастерам, попросил их мешок с пультами, выбрал пяток симпатишных, спросил на каких частотах они работают - ответили, что "вот эти три на 36, а остальные экзотика и никто не знает вкуда они такие красивые нужны", сходил на радиорынок купил парочку tsop1736. Всё.
Теперь, когда говорю, что реверсинжениринг параметров пульта - тупое убийство времени, меня обвиняют в хитрости.
Может, если разобраться с проектом http://www.duvdevani.com/itay/blog/1-universal-ir-remote-usb-receiver.html поможет? Там есть поддержка аналогичных пультов.
Ребят, а как правильно подключить этот ИК к дуне. Я просто один выход в землю, один в питание, а третий в пин9. Это правильно, или надо как то через резисторы???
Ребят, а как правильно подключить этот ИК к дуне. Я просто один выход в землю, один в питание, а третий в пин9. Это правильно, или надо как то через резисторы???
Вообще круто конечно. Вначале подключить потом выяснять как нужно.
Вначале стреляем - потом целимся.
Как подключить.... а попробуйте все-таки самостоятельно нагуглить. Вы же понимаете что специально для вас схему рисовать никто не будет. В голове - тоже линки никто не держит. Значит нужно гуглить. Либо вы сами, либо кто-то для вас должен этим заняться.
Поверте это не сложно... даже быстрее чем спросить на форуме и ждать ответа.
А еще, лучше всего начинать изучение какой-то железки с поиска даташита (документации которую дает производитель). Как правило там есть и "эталонная схема подключения". И примеры использования (или в отдельном документе Application Notes).
В частности вот даташит на приемник: www.engineersgarage.com/sites/default/files/TSOP1738.pdf
На второй странице смотрим Application Circuit
Спасибо ребят!
Просто никогда не занимался МК. Надо знаит ещё и доску для прототипирования купить, чувствую на скрутках не получится попробывать...
Спасибо ребят!
Просто никогда не занимался МК.
Это не оправдание не желанию пользоватся гуглом. Я тоже не знал когда начинал. Нагуглил и узнал.
Надо знаит ещё и доску для прототипирования купить,
Здравая мысль. Действительно очень удобно. И еще желательно сразу не пожлобится на комплект проводков. Жестких п-образных (эни идут в таких пластмассовых пеналах) и мягких. Ну хотя-бы мягкие. Можно конечно и без них, но.... удобней с готовыми качественными. Намного быстрее/приятней работать.
чувствую на скрутках не получится попробывать...
Если есть желание то ничто остановить не может. Резистор и конденсатор - можно и на скрутках прикрутить (вторым резистором, который помечен как "опциональный" можно и пожертвовать. либо ввобще без него, либо включить встроенный в ардуину).
Если есть паяльник, то вообщемт-то две детальки "в воздухе", "на проводках" - вообще не проблема. Даже если паяльник попал первый раз в руки.
ИМХО, паяльника тоже нет. Я ж говорю что только начал, даже тестера элементарного. В голове уровень физики 9 класса. Видать прийдётся подождать, а то пока с деньгами туговато.
Кстати, это что за компонент:
Этот компонент называется "микроконтроллер". На что как бы и указывает обозначение "мю+си" (микро+контроллер)
Микроконтроллер, у которого отброшено все несущественное для данной-конкретной схемы. На его месте может стоять все - от самой мелкой ATTiny до какого-нибудь 32-битного монстра, умеющего питаться от 5В.
Кстати, это что за компонент:
Это С :)
Кстати, это что за компонент:
В вашем случае - ардуина
Спасибо!
А нафига резистор больше 10кОМ ???
Спасибо!
А нафига резистор больше 10кОМ ???
Это имеется ввиду, что приёмник должен быть подключен к устройству внутреннее сопротивление которого >10 килоом.
*по схеме подключения:
- конденсатор улучшает качество приёма.
- резистор 100 ом улучшает качество приёма.
Управление компьютером, любым ИК пультом.
Самая простая схема подключения -
что касается разного ИК-кода от одной и тойже кнопки на пульте, то тут сложно что либо сказать... даже если ИК-код в формате RAW различен(как это было в моем случае с пультом от кондиционера т.к. передавалась инфа от часов реального времени встроенных в пульт) то длинну он как правило имеет всегда одну и туже.
пробуте другие пульты...
Самая простая схема - самая помехо не защищенная. К тому же, производитель, зачем-то повесил на питание токоограничивающий резистор. Причем указал его не как опциональный, а как обязательный. Так что я бы не брал на себя смелость выкидывать его. Работать может и будет, но насколько стабильно и, главное, как долго проживет датчик - уже нет уверенности.
Тем более что с этой схемы топикстартер и начинал. Счастья она не принесла.
А помехи - таки могут быть важны. В тех RAW-вах, вообще-то довольно четко можно разглядеть стартовую посылку. А вот между ней и импульсами данных (которые тоже проглядывают) - "какая-то хрень". Еще парочка левых импульсов (с точки зрения NEC). Причем "эта хрень" плавает очень сильно. По крайней мере мне углядеть в ней повторяющиеся паттерны - не удалось (а просьбу "а дайте еще примеров данных, по возможности аккуратней нажимая" - проигнорировали).
По поводу длины эта проблема тоже явно видна. Видно что нечетко ловится "конец пакета".
Кстати, эта могло быть причиной и ваших проблем с кондишином (но это догадки, никогда с ними дела не имел) - если он посылает несколько пакетов, с небольшим интервалом, то они могли "слипатся". Слать несколько пакетов он может по разным причинам. Может из обыкновенного желания надежности (типа "три раза повторяем") или слать отдельно "пакет учсановки температуры" и "пакет установки скорости вентилятора". Причем может слать оба пакета даже если нажата только кнопка изменения температуры.
А "как правило имеет всегда одну и туже" - не всегда верно. По крайней мере если верить коду IR-библиотеки, то у NEC-ка есть особый пакет "повтор клавиши", который намного короче обычной посылки. Заголовок плюс пауза определенной длины и все (кстати это и может быть та самая "какая-то хрень", поэтому я и просил топикстартера попытатся позаписывать нажимая клавиши с хоршей остановкой, а потом - можно будет еще попробовать "две клавиши поочередно" :)
Я помню о вашей просьбе. Но имеет ли она смысл, пока не подключена нормальная схема???