Фрикер Клуб

Фрикер Клуб (https://phreakerclub.com/forum/index.php)
-   Статьи (https://phreakerclub.com/forum/forumdisplay.php?f=7)
-   -   Передача ИК сигналов (https://phreakerclub.com/forum/showthread.php?t=1048)

mbqart 07.03.2013 11:59

Передача ИК сигналов
 
Статья в блоге http://phreakerclub.com/1452


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

http://phreakerclub.com/wp-content/u...13/03/irda.jpg

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


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

http://phreakerclub.com/wp-content/u...irda-demod.jpg

«Основная» частота — это частота импульсов инфра-красного излучения (света), которую отфильтровывает внутренний демодулятор 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-приёмника.

http://phreakerclub.com/wp-content/u...03/irda-tx.jpg

Принцип передачи сигнала:
http://phreakerclub.com/wp-content/u...3/irda-tx2.jpg

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

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

http://phreakerclub.com/wp-content/u...rda-launch.jpg

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

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

http://phreakerclub.com/wp-content/u.../irda-prog.jpg

Выбираем тип используемого контроллера, совместимого с 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); // Выводим числовое значение нажатой клавиши на пульте ИК в двоичной системе 

http://phreakerclub.com/wp-content/u...rda-prog21.jpg

На ИК сигналах можно скажем передавать килог, тем самым сделать неперехватываемую штатку цз.

andynvkz 15.03.2013 04:15

Re: Передача ИК сигналов
 
Вложений: 1
как все сложно то...

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

DIVER_SANT 15.03.2013 06:43

Re: Передача ИК сигналов
 
Цитата:

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

еще в 99г. собирал, программы WinLIRC, Girder, uICE
Ну прикрути эту схему к ноуту-думаю устанешь.
Опять же топик про то что можно управлять домашними бытовыми устройствами с помощтю этого.Хот у меня была идея управлять от доп брела старлайна по ВЧ
Но не смог разобраться как проверять брел на принадлежность-чтоб от левых не срабатывала схема.Понимаю что надо сверять серийник и номер кнопки но програмно не догоняю.:helllp:

andynvkz 15.03.2013 07:24

Re: Передача ИК сигналов
 
Цитата:

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

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

Добавлено через 23 минуты
Цитата:

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

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

DIVER_SANT 15.03.2013 07:40

Re: Передача ИК сигналов
 
Цитата:

посмотри как работает умная глушилка у Джокера, вот тебе и готовое решение фильтра чужих брелов
Да я в асме под пики не вникал вооще.Максиму это код -запрос убирал из его исходника граба


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

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
(C) www.phreakerclub.com