roboforum.ru

Технический форум по робототехнике.

ИК барьер на AVR

Re: ИК барьер на AVR

artmasterpro » 06 май 2010, 20:26

да нет я как бы о микроконтроллере. Ребят я отношусь к Вам с уважением, т.к. я в МК не давно, давайте не будем смеяться с друг друга а будем инфорпмативными, иначе зачем нужен форум ? разве не для взаимопомощи ?
Может кто может предложить конкретное решение, может у когото есть кусок кода как смодулировать пачку 36кгц такую чтобы принялась USARTом.

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

Спасибо !

Re: ИК барьер на AVR

setar » 07 май 2010, 00:05

я, да и никто здесь вовсе не издевается.
вот это как бы лишено смысла "как смодулировать пачку 36кгц такую чтобы принялась USARTом", ну или сформулированно так, что я его не улавливаю...

модулировать можно либо по амплитуде сигнала (это лишено смысла по причине изменения дистанции срабатывания в таком случае) либо по запуску/стопу пачки, по частоте мы модулировать не можем потому что тогда tsop просто не примет сигнал.
вот эта ^ модуляция по старту и стопу сигнала и есть "поочередное измерение" о котором Вам и говорили выше

Опишите пожалуйста словесно алгоритм, как Вы представляете себе съём информации с микроконтроллера на котором допустим 10 датчиков TSOP/led ?

Я себе представляю его так:
Микроконтроллер имеет некий статусный байт (а точнее исходя из того что у нас больше 8 датчиков - два байта) который отображает текущее состояние "срабатывания".
В основном цикле программы микроконтроллер делает проход по каждой из имеющихся пар tsop/led выдавая на светодиод пачку из десяти - семидесяти импульсов с частотой 36 кГц и считывая выход tsop , с учететом что состояние срабатывания тсопа соответствует логическому нулю проставляет соответствующий бит в статусном регистре.
После окончания работы с датчиками занимается коммуникациями - ждет запроса и отдает пару статусныйх байт.
Впрочем коммуникации могут висеть на прерываниях. Канал коммуникации может быть любой - UART, USART, i2c итд.

P.S. я надеюсь вы знакомились с азами [[ИК_локатор_Робоклуба]]

Re: ИК барьер на AVR

Myp » 07 май 2010, 01:02

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

Re: ИК барьер на AVR

Grofus » 07 май 2010, 08:12

Если автор просит пример почему бы не дать???Пусть сам убедится в том что.....
самая приметивная схема :
C[tvf.gif
C[tvf.gif (7.92 КиБ) Просмотров: 4128

На 14 ноге (OC0A) с помощью таймера в режиме СТС создаём колебания частотой 36кГц.А Usat используем как обычно, просто шлём в него байты.На светодиоде будет уже промодулированый сигнал!Правда такая система и на канал связи слабо тянет, помех будет много.Поэтому врядли отразившись от стены к тебе придёт весь отосланный тобой байт, часть его просто потеряется!

Re: ИК барьер на AVR

artmasterpro » 07 май 2010, 10:27

Спасибо, за поинимание и конкретные ответы.

Все понято не верно !

Обьясняю:

Есть некий микроконтроллер материнский - на входа которого просто поступают логические единицы. от всех датчиков количество которых может быть - от 1го - до 10.

Каждый датчик-барьер это независимое устройство содерщаее отдельный МК к которому подключем один ТСОП и один ИК светодиод.

К примеру датчика у нас 3 - поэтому все они должны быть зазищенны програмно от переотражений. Т.к. в моем случае их трудно избежать.

Задача датчика- выдать 1цу при срабатывнии и все !

Тепреь об алгоритме датчика- барьера:

Таймером мы генерируем определенную посылку 36 кГц как в (пульте от телека) (чтобы принять ТСОПом) .
Только каждый датчик из 3х генерирует свою посылку (свой код как на пульте от телека у каждой кнопки своя пачка)

Далее вешаем TSOP на вывод Rx USART.

И по прерыванию от USART проверяем сответствует ли отосланная светодиодом пачка - принятой USARTом.

Если ДА - выдаем 1цу на выход порта если нет, ничего не делаем и снова отсылаем опять пачку переходим в начало.

Вроде все описал ))

Re: ИК барьер на AVR

galex1981 » 07 май 2010, 10:59

А зачем ТСОП вешать на RX USART? Так ничего не получится нормального или будет усложнение программы. Выход ТСОПА вешается на внешнее прерывание обычно (int0, int1,...) а затем программно по срабатыванию внешнего прерывания обрабатываются данные

Re: ИК барьер на AVR

artmasterpro » 07 май 2010, 11:19

первый вопрос: а ТСОП успеет ли поймать свет и прервать МК ?
если да то второй вопрос:

Получаеться тогда тоде усложнение кода, нужен еще 1 таймер, для обработки принятого сигнала, таймер для того чтобы проверять импульсы пачки.

Или я не верно излогаюсь ?

Re: ИК барьер на AVR

Myp » 07 май 2010, 11:51

смотри на пальцах, пытаемся отослать даже не код а всего лишь 5 пачек импульсов
Код: Выделить всёРазвернуть
вот сигнал одного ИК диода  ------_________-----------_________---------_____________--------------____________----------
вот мы прибавили второй     ----------__________------------___________----------___________-----------_________----------
и вот третий      -------------_______________---------------______________---------------___________--------------________

тсоп будет видеть сумму трёх ---------_____------------------__---------------------------------------------------------

неважно что там будет слать ИК диод тсоп тупо постоянно засвечен.
это как включить в комнате 3 магнитафона с разными песенками и пытаться это слушать.
будет ахинея хоть даже все 3 песни на разных языках будут.

одновременно 3 излучателя 36Кг дадут полную кашу
а если они будут ещё передавать на просто 11 пачек а какойто длинный код, то вероятность каши только увеличится

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

ограничить угол обзора тсопа элементарно.
трубочка из кусочка бумаги диаметром 5 мм и длинной 10 мм покрашенная маркером чёрным и приклеенная на тсоп ограничит угол обзора до 10 градусов. только надо сам тсоп со всех сторон тоже залепить ато он даже спиной может излучение принимать.
аналогичную трубочку надо надеть на ИК диод

Re: ИК барьер на AVR

artmasterpro » 07 май 2010, 12:10

Хорошо согласен.

Вот нарисовал картинку, нужно в зоне нахождения обьекта включать подсветку для этого делаю несколько датчиков чтобы контролировать перемещение обьекта. Как тогда в моем случае решить проблему переотражений и помехозащищенности. Можно уменьшить зону датчика но помещение может быть квадратным, где расстояния между датчиками будут равны,и получиться что равноудаленный обьект от двух угловых датчиков будет их "замыкать "Притом что геометрия помещения может быть любая не только как на картинке ??
top.gif
Схема проблемы

Re: ИК барьер на AVR

setar » 07 май 2010, 12:11

artmasterpro писал(а):Таймером мы генерируем определенную посылку 36 кГц как в (пульте от телека) (чтобы принять ТСОПом) .
Только каждый датчик из 3х генерирует свою посылку (свой код как на пульте от телека у каждой кнопки своя пачка)

Вот источник Вашего недопонимания :
тсоп усредняет пачку импульсов от десяти до 70 для него не важно присли мы ему
ПППППППППП___ПППППППППП____________ПППППППППП
или
ПППППППППППППППППППППППППППППППППППППППППП
для него это одинаковый правильный "подсвечивающий сигнал" и выход у него будет ровно один логический бит на протяжении всей серии (а точнее на протяжении серии будет бит от предыдущей серии и сменится в конце серии на новый), кстати конец серии это промежуток более 14 импульсов.
Если модуляция будет промежутками короче чем 14 импульсов то это будет считаться просто помехами, а если длиннее - будут разные замеры.

Re: ИК барьер на AVR

Radist » 07 май 2010, 12:14

Мне кажется, я понял зачем топикстартеру уарт. Теоретически можно сформировать такой код, огибающяя которого будет нормальной уартовской посылкой (на нужной скорости, со стартовым и стоповым битами). И уарт скажет: я принял код. Насчет одновременной работы 10 датчиков согласен с Муром - засветка все испортит, как вариант: все тсопы должны быть на разные частоты. Это же давно известно в радиолокации и сопутствующих дисциплинах: если надо разделение каналов, то есть три пути: частотное, временное и еще какое-то, вроде с корреляцией как то связано. Но работа по запросу тоже не годится: а ну как враг проскочит за барьер пока датчик ждет своей очереди? Хотя если быстро опрашивать, то можно. И еще нюанс: пультом от телевизора вы можете светить себе в глаз - все равно телевизор отреагирует. Ну прошел человек, а код в тсоп пришел переотразившись от стен. Это если излучатель светит в глаз приемнику. Можно чтоб барьер работал на отражение, но тут будет влиять отражающая поверхность. Сложная у вас задачка.

Теперь конкретные ответы на вопросы
1 Да, хоть свет и летает 300 000 км/с
2 Вопрос как раскодировать принятый сигнал. Ну можно и уартом, как вы и хотели, а можно и таймером. Пришло прерывание - включили таймер, изменили условие возникновения прерывания с фронта на спад. Узнали длительность импульсов/пауз и раскодировали.

Re: ИК барьер на AVR

setar » 07 май 2010, 12:16

по картинке:
услыште наконец - при поочередном опросе пар светодиод/тсоп указанной проблеммы не существует

Добавлено спустя 43 секунды:
или вам нужно пулю пролетающую подсвечивать и скорость перемещения огромна ?

Re: ИК барьер на AVR

artmasterpro » 07 май 2010, 12:38

нет пулю не нужно ))
нужно человека ловить !


получаеться, нужно или разносить по времени или что-то мудрить с зоной действия ?
Если по времени тогда у меня к датчику должно ити 2 провода питания + один управляюший + один сигнальный. итого 4ре. и мой материнский МК должен опрашивать в цикле все порты.

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

А если уйти от ТСОП и ставить обычный фотодиод - тоже ж выходит будет засвечивать ?

Re: ИК барьер на AVR

setar » 07 май 2010, 13:00

одного провода сигнального с i2c будет достаточно, или RX TX для UART

Добавлено спустя 2 минуты 56 секунд:
А вот как раз с фотодиодом/светодиодом можно делать модуляцию, скорее всего она будет частотной
микроконтроллеры на парах будут посложнее код иметь, но вполне реально

Re: ИК барьер на AVR

Michael_K » 07 май 2010, 13:13

setar писал(а):А вот как раз с фотодиодом/светодиодом можно делать модуляцию, скорее всего она будет частотной
микроконтроллеры на парах будут посложнее код иметь, но вполне реально

Задолбаешься.


Rambler\'s Top100 Mail.ru counter