Форум
 

Вернуться   Форум "Фрикер Клуб" - кодграббер своими руками > Основной раздел > Статьи

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 07.03.2013, 11:59   #1
mbqart Меню Пользователя
Резидент клуба
 
Аватар для mbqart
 
Регистрация: 13.10.2012
Сообщений: 47
По умолчанию Передача ИК сигналов

Статья в блоге http://phreakerclub.com/1452


Принцип передачи ИК сигналов состоит из следующего — электрический сигнал основной (несущей) частоты модулируется передаваемыми данными и с помощью инфракрасного светодиода излучается в пространство.



Для приема сигнала используется фотоприемник, состоящий из фотодиода, усилителя с полосовым фильтром, настроенным на определенную основную (несущую) частоту, и демодулятора который выделяет принимаемые данные. Обычно, микросхема имеет 3 вывода Vo — ножка выхода ИК-приёмника. GND — общий вывод (минус источника питания). Vs — вывод плюса напряжения питания, обычно от 4,5 до 5,5 вольт. Этот фотоприемник имеет маркировку TSOP.


Упрощённая блок-схема TSOP-приёмника приведена на рисунке. В качестве выходного элемента внутри TSOP используется обычный N-P-N транзистор. В неактивном состоянии транзистор закрыт, и на ножке Vo присутствует слабый уровень высокого напряжения (лог. «1″). При появлении в чувствительной зоне TSOP инфракрасного излучения с «основной» частотой этот транзистор открывается, и выходная ножка Vo принимает низкий уровень сигнала (лог. «0″).



«Основная» частота — это частота импульсов инфра-красного излучения (света), которую отфильтровывает внутренний демодулятор TSOP. Эта частота обычно равна 36, 38, 40 кГц, но может быть и другой, об этом необходимо справиться в даташите на конкретный тип TSOP-приёмника. Для повышения помехоустойчивости ИК-канала связи, применяется модулированная передача ИК-света. Временные характеристики модуляции для помехозащитной передачи приведены в даташите на конкретный TSOP-приёмник. Но в большинстве случаев достаточно придерживаться простых правил:

1) минимальное количество импульсов в пачке — 15

2) максимальное количество импульсов в пачке — 50

3) минимальное время между пачками — 15хT *

4) частота импульсов в пачке должна соответствовать основной частоте TSOP-приёмника

5) светодиод должен быть с длиной волны = 950 nm.

*T — период «основной» частоты TSOP-приёмника.

Регулируя в некоторых пределах длину пачки импульсов, можно передавать двоичные сигналы. Длинный импульс на выходе TSOP-приёмника может означать «единицу», а короткий — «нуль». Таким образом, при соблюдении правил модуляции дальность передачи цифровых сигналов на прямой видимости между светодиодом и TSOP-приёмником может достигать 10-20 метров. Скорость передачи не большая, около 1200 бит в секунду, в зависимости от применённого TSOP-приёмника.



Принцип передачи сигнала:


одулируя сигнал на входе передатчика последовательным кодом, мы получаем на выходе передатчика модулированный сигнал который состоит из несущей (основной) частоты и последовательного кода, в виде пачек импульсов. Длинный импульс это единица, короткий ноль. В итоге мы можем передавать двоичный код и принимать его.

Теперь перейдем к небольшому примеру приема сигналов ИК с помощью отладочной платы LaunchPad MSP-EXP430G2 от компании Texas Instruments. Нам необходимо подключить наш приемник ИК (я использовал TSOP4836) к нашей отладочной плате.



Как мы уже говорили микросхема приемника TSOPимеет 3 вывода OUT — ножка выхода ИК-приёмника. GND — общий вывод (минус источника питания). VCC — вывод плюса напряжения питания. Как видно из схемы подключения выход приемника подключен к пину №11.

Приступаем к программированию нашего LaunchPad. Для начала запускаем среду программирования LaunchPad — Energia.



Выбираем тип используемого контроллера, совместимого с LaunchPad msp430g2553. И приступаем к написанию простого скэтча.

PHP код:
#include <IRremote.h>//Подключаем библиотеку для работы с ИК приемником

int RECV_PIN 11// Определяем с какого контакта будем принимать сигнал отИКприёмника TSOP4836
 
IRrecvirrecv(RECV_PIN); //Создаем класс ИК приемника
 
decode_resultsresults// Результат декодирования помещаем в переменную

void setup()
 {
 
Serial.begin(9600); // Инициируем порт для наблюдения результатов (Serial monitor)
 
irrecv.enableIRIn(); // Запускаем прием ИК
 
}

void loop() {
 if (
irrecv.decode(&results)) { // Если получен какой либо код с ИК приемника
 
Serial.println(results.value); // Выводим числовое значение нажатой клавиши на пульте ИК
 
irrecv.resume(); // Ожидаем получение следующей переменной
 
}
 } 
Нажимаем кнопку Upload, прошиваем наш контроллер. Открываем SerialMonitor. Берем пульт управления от телевизора или другой пульт ИК. Подносим к нашему приемнику TSOP 4836 подключенному к LaunchPad и начинаем нажимать на кнопки пульта, в терминал будут выводиться значения кнопок пульта в десятичной системе исчисления. Для того что бы получить значения в двоичной системе необходимо изменить строчку добавив в каком виде вы хотите получить данные.

PHP код:
Serial.println(results.valueBIN); // Выводим числовое значение нажатой клавиши на пульте ИК в двоичной системе 


На ИК сигналах можно скажем передавать килог, тем самым сделать неперехватываемую штатку цз.
mbqart вне форума   Ответить с цитированием
Старый 15.03.2013, 04:15   #2
andynvkz Меню Пользователя
Резидент клуба
 
Регистрация: 03.11.2011
Сообщений: 720
По умолчанию Re: Передача ИК сигналов

как все сложно то...

еще в 99г. собирал, программы WinLIRC, Girder, uICE
Изображения
Тип файла: gif shemap.gif (3.5 Кб, 63 просмотров)
andynvkz вне форума   Ответить с цитированием
Старый 15.03.2013, 06:43   #3
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 1,966
По умолчанию Re: Передача ИК сигналов

Цитата:
как все сложно то...

еще в 99г. собирал, программы WinLIRC, Girder, uICE

Ну прикрути эту схему к ноуту-думаю устанешь.
Опять же топик про то что можно управлять домашними бытовыми устройствами с помощтю этого.Хот у меня была идея управлять от доп брела старлайна по ВЧ
Но не смог разобраться как проверять брел на принадлежность-чтоб от левых не срабатывала схема.Понимаю что надо сверять серийник и номер кнопки но програмно не догоняю.
DIVER_SANT вне форума   Ответить с цитированием
Старый 15.03.2013, 07:24   #4
andynvkz Меню Пользователя
Резидент клуба
 
Регистрация: 03.11.2011
Сообщений: 720
По умолчанию Re: Передача ИК сигналов

Цитата:
Сообщение от DIVER_SANT
Хот у меня была идея управлять от доп брела старлайна по ВЧ
Но не смог разобраться как проверять брел на принадлежность-чтоб от левых не срабатывала схема.Понимаю что надо сверять серийник и номер кнопки но програмно не догоняю.

зачем старлайн ? этож и прием свой нужно писать, в сс1101 уже все есть (пакетный режим)

Добавлено через 23 минуты
Цитата:
Сообщение от DIVER_SANT
Но не смог разобраться как проверять брел на принадлежность-чтоб от левых не срабатывала схема.Понимаю что надо сверять серийник и номер кнопки но програмно не догоняю.

посмотри как работает умная глушилка у Джокера, вот тебе и готовое решение фильтра чужих брелов
andynvkz вне форума   Ответить с цитированием
Старый 15.03.2013, 07:40   #5
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 1,966
По умолчанию Re: Передача ИК сигналов

Цитата:
посмотри как работает умная глушилка у Джокера, вот тебе и готовое решение фильтра чужих брелов

Да я в асме под пики не вникал вооще.Максиму это код -запрос убирал из его исходника граба
DIVER_SANT вне форума   Ответить с цитированием
Ответ
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 17:11. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com
Яндекс.Метрика