roboforum.ru

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

ИК барьер на AVR

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

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

Сообщение artmasterpro » 06 май 2010, 20:26

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

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

Спасибо !
Аватара пользователя
artmasterpro
 
Сообщения: 23
Зарегистрирован: 05 май 2010, 23:00

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

Сообщение setar » 07 май 2010, 00:05

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

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

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

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

P.S. я надеюсь вы знакомились с азами [[ИК_локатор_Робоклуба]]
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Myp » 07 май 2010, 01:02

автор просто думает что если использовать усарт то можно сразу всеми барьерами светить одновременно и не ловить коллизии
а почему так нельзя сделать упорно не хочет понимать.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

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

Сообщение Grofus » 07 май 2010, 08:12

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

На 14 ноге (OC0A) с помощью таймера в режиме СТС создаём колебания частотой 36кГц.А Usat используем как обычно, просто шлём в него байты.На светодиоде будет уже промодулированый сигнал!Правда такая система и на канал связи слабо тянет, помех будет много.Поэтому врядли отразившись от стены к тебе придёт весь отосланный тобой байт, часть его просто потеряется!
Алокоголизм - излечим, пьянство - нет.
Peace-death.
Аватара пользователя
Grofus
 
Сообщения: 104
Зарегистрирован: 25 июл 2009, 16:35
Откуда: Ессентуки
прог. языки: ASM , Lisp , C# :)
ФИО: Алексей

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

Сообщение artmasterpro » 07 май 2010, 10:27

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

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

Обьясняю:

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

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

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

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

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

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

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

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

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

Вроде все описал ))
Аватара пользователя
artmasterpro
 
Сообщения: 23
Зарегистрирован: 05 май 2010, 23:00

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

Сообщение galex1981 » 07 май 2010, 10:59

А зачем ТСОП вешать на RX USART? Так ничего не получится нормального или будет усложнение программы. Выход ТСОПА вешается на внешнее прерывание обычно (int0, int1,...) а затем программно по срабатыванию внешнего прерывания обрабатываются данные
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4362
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение artmasterpro » 07 май 2010, 11:19

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

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

Или я не верно излогаюсь ?
Аватара пользователя
artmasterpro
 
Сообщения: 23
Зарегистрирован: 05 май 2010, 23:00

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

Сообщение Myp » 07 май 2010, 11:51

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

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

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

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

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

ограничить угол обзора тсопа элементарно.
трубочка из кусочка бумаги диаметром 5 мм и длинной 10 мм покрашенная маркером чёрным и приклеенная на тсоп ограничит угол обзора до 10 градусов. только надо сам тсоп со всех сторон тоже залепить ато он даже спиной может излучение принимать.
аналогичную трубочку надо надеть на ИК диод
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

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

Сообщение artmasterpro » 07 май 2010, 12:10

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

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

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

Сообщение setar » 07 май 2010, 12:11

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

Вот источник Вашего недопонимания :
тсоп усредняет пачку импульсов от десяти до 70 для него не важно присли мы ему
ПППППППППП___ПППППППППП____________ПППППППППП
или
ПППППППППППППППППППППППППППППППППППППППППП
для него это одинаковый правильный "подсвечивающий сигнал" и выход у него будет ровно один логический бит на протяжении всей серии (а точнее на протяжении серии будет бит от предыдущей серии и сменится в конце серии на новый), кстати конец серии это промежуток более 14 импульсов.
Если модуляция будет промежутками короче чем 14 импульсов то это будет считаться просто помехами, а если длиннее - будут разные замеры.
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Radist » 07 май 2010, 12:14

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

Теперь конкретные ответы на вопросы
1 Да, хоть свет и летает 300 000 км/с
2 Вопрос как раскодировать принятый сигнал. Ну можно и уартом, как вы и хотели, а можно и таймером. Пришло прерывание - включили таймер, изменили условие возникновения прерывания с фронта на спад. Узнали длительность импульсов/пауз и раскодировали.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

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

Сообщение setar » 07 май 2010, 12:16

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

Добавлено спустя 43 секунды:
или вам нужно пулю пролетающую подсвечивать и скорость перемещения огромна ?
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение artmasterpro » 07 май 2010, 12:38

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


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

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

А если уйти от ТСОП и ставить обычный фотодиод - тоже ж выходит будет засвечивать ?
Аватара пользователя
artmasterpro
 
Сообщения: 23
Зарегистрирован: 05 май 2010, 23:00

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

Сообщение setar » 07 май 2010, 13:00

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

Добавлено спустя 2 минуты 56 секунд:
А вот как раз с фотодиодом/светодиодом можно делать модуляцию, скорее всего она будет частотной
микроконтроллеры на парах будут посложнее код иметь, но вполне реально
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Michael_K » 07 май 2010, 13:13

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

Задолбаешься.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 18