Управление через ИК (irremote.h)
- Войдите на сайт для отправки комментариев
Вс, 02/10/2011 - 15:57
добрый день. Хочу доработать библиотеку, чтобы читались и другие пульты вместе с теми, которые прописаны.
// pulse parameters in usec
#define NEC_HDR_MARK 9000
#define NEC_HDR_SPACE 4500
#define NEC_BIT_MARK 560
#define NEC_ONE_SPACE 1600
#define NEC_ZERO_SPACE 560
#define NEC_RPT_SPACE 2250
#define SONY_HDR_MARK 2400
#define SONY_HDR_SPACE 600
#define SONY_ONE_MARK 1200
#define SONY_ZERO_MARK 600
#define SONY_RPT_LENGTH 45000
#define RC5_T1 889
#define RC5_RPT_LENGTH 46000
#define RC6_HDR_MARK 2666
#define RC6_HDR_SPACE 889
#define RC6_T1 444
#define RC6_RPT_LENGTH 46000
Как можно считать эти параметры с пульта? Может есть прога для ардуино?
Спасибо.
ну "программы" которая даст вам эти параметры "и будет счастье" - точно нет и не будет. Просто потому, что это "параметры протокола" и для поддержки других пультов нужно еще сам протокол реализовать. У него может отличатся не только "параметры", но и сама логика (хотя вообщем-то они все "близки друг-другу").
Вообщем-то задача (поддержать неизвестный пульт) - решаемая. Вначале вам нужно узнать по какому протоколу работает этот пульт, попытаться нагуглить описание протокола, собственно там и будут искомые вами параметры.
Если "протокол неизвестен" или описание найти не удается, то прийдется смотреть какие импульсы шлет пульт и пытаться догадаться "что какой означает".
"Смотреть можно" несколькими способами:
Возможно что "декодирование" вам будет и не нужно. Можно просто записать нажать кнопку на пульте, записать какие импульсы приходили и в дальнейшем просто сравнивать с образцом не вдаваясь в детали "какой импульс что означает". При сравнении, естественно нужно "давать допуск" сколько-то процентов. Пульт не шлет ипульсы "абсолютно точно", длительно может немного "плавать".
Так же нужно учитывать, что некоторые пульты по разному шлют "повторное нажатие кнопки" и "удерживание". Кто-то просто "повторяет код кнопки", кто-то первой посылкой шлет код кнопки, а потом специальный "код повторения", кто-то для каждой кнопки имеет два кода (отличающиеся на один бит) и шет их "по очереди".
Если пульт который вы хотите поддержать - Thomson, то возможно все еще проще. Когда-то я допиливал эту библиотеку под него. Могу покопаться в архивах.
leshak, помоги вот с этим: http://arduino.ru/forum/apparatnye-voprosy/problema-s-ik
Ответил там, но вообщем-то, по большому счету. Подход "выяснить почему не работает", и "реализовать новый протокол" - очень близки. Нужно выяснить "что шлет пульт", понять почему.
Так что фактически мой ответ из этой ветки подходит для той.
leshak, а по какому принципу на том сайте искать свой пульт. И каким образом потом использовать данные из этого файла? Если можно на примере... желательно RAW какойнить тоже рассмотреть. Хочеться деталььней понять как обучить свой скетч новому пульту...
спасибо