Технический форум по робототехнике.
Korbofos » 08 мар 2011, 17:21
Ик радар срабатывает только на быстро приближающиеся объекты, если препятствие поднести медленно никакой реакции!
МК вроде молотит свои 36КГц проверял осциллографом...
Подскажите может была у кого такая проблема.
dccharacter » 08 мар 2011, 17:33
Korbofos писал(а):Ик радар срабатывает только на быстро приближающиеся объекты, если препятствие поднести медленно никакой реакции!
МК вроде молотит свои 36КГц проверял осциллографом...
Подскажите может была у кого такая проблема.
А если препятствие не "подносить", а разместить перед дальномером, он это препятствие видит? А то ту как в анекдоте:
Идут два студента-бауманца. Один другому рассказывает анекдот: "Мышка бегала по краю обрыва - пи-пи-пи, пи-пи-пи, пи-аааа-ААА--УАААААААААААААААА-РРРРРР"
Второй, с удивлением глядя на первого: "ну и что? эффект допплера"...
Radist » 08 мар 2011, 18:00
Было такое, и именно в ИК барьере. Это все программно лечится. Посылаете зондирующий импульс 1 мс, проверка ответа, затем пауза 8 мс (ноу-хау именно в этой паузе). Длительностью паузы можно поиграть, но вроде бы 8 - это минимум (у меня). Во время паузы чтоб никакого ИК не было! Мне кажется это связано с работой АРУ ТСОПа.
Korbofos » 08 мар 2011, 18:21
Если просто разместить то не видит!
dccharacter » 08 мар 2011, 18:23
Korbofos писал(а):Если просто разместить то не видит!
Дык мож в порядке бреда частота не та? не 36кГц, а 39 ему надо???
Korbofos » 08 мар 2011, 18:32
Radist писал(а):Было такое, и именно в ИК барьере. Это все программно лечится. Посылаете зондирующий импульс 1 мс, проверка ответа, затем пауза 8 мс (ноу-хау именно в этой паузе). Длительностью паузы можно поиграть, но вроде бы 8 - это минимум (у меня). Во время паузы чтоб никакого ИК не было! Мне кажется это связано с работой АРУ ТСОПа.
Можете показать примером кода на С , пока у меня с программированием начальная стадия...
Добавлено спустя 1 минуту 42 секунды:Tsop 1736 ему именно 36кГц нужно
yak-40 » 08 мар 2011, 18:43
"Рабочий" сигнал должен отвечать следующим требованиям:
1. быть возможно ближе к частоте несущей для данной модели (например, 36 кГц для TSOP1736)
2. в пачке должно быть 10 или более импульсов
3. за пачкой от 10 до 70 импульсов должна следовать пауза длительностью не менее 14 импульсов
Korbofos » 08 мар 2011, 18:49
- Код: Выделить всё • Развернуть
{
unsigned int i,u;
for (u=0;u<14;u++)
{
delay_us(165);
for(i=0; i<12; i++)
{
PORTB.3=1;
delay_us(3);
PORTB.3=0 ;
delay_us(3);
}
};
}
Это реализуется так?
yak-40 » 08 мар 2011, 19:06
Да, можно так. Только мне не нравится 3uS в задержке...
Korbofos » 08 мар 2011, 20:11
Мне тоже, но именно на 3us на осциллографе(может он и глючит) получаетя магические 36кГц. Хотя я пробовал 9,10,11,12.... итд. улучшений нет.
dccharacter » 08 мар 2011, 20:13
Мне вообще не нравится через делеи реализация. Запускаете ШИМ на ноге с частотой 36кГц. Потом включаете и выключаете ногу. Получаете пакеты импульсов нужной частоты, нужной длительности и с нужной паузой не мешая остальной периферии работать.
yak-40 » 08 мар 2011, 20:32
dccharacter писал(а):Мне вообще не нравится через делеи реализация
Да, это не по джедайски. Но именно реализация через делай, даёт возможность начинающим роботостроителям понять принцип работы данного устройства. А потом, когда поймут и наберутся опыта, пущай делают на ШИМ-ах, таймерах и т. д.
Korbofos » 08 мар 2011, 20:37
На ик отдельный attiny2113 стоять будет, но попробую и с pmw.
Radist » 08 мар 2011, 22:30
Я сишным кодом поделиться не могу - я ASMатик
. У вас срабатывание тсопа как-то индицируется? Если на тсоп посветить пультом - он "видит препятствие"? Думаю да, раз быстрые перемещения он видит. Могу подкинуть алгоритм на задержках.
В даташите приведен тестовый сигнал: 600 мкс есть несущая, 600 мкс нет несущей. Паузу увеличиваем до 8000 мкс. 600 мкс несущей делаем так:
цикл на 21 импульс
выставили бит
пауза 13,9 мкс
убрали бит
пауза 13,9 мкс
декремент счетчика цикла
читаем тсоп, узнаем что он увидел, индицируем результат
пауза 8000 мкс
повторить сначала
ЗЫ. Тема не на месте. Я не считаю это граблями. Грабли - это когда в этом месте у всех ничего не получится. А если у одного не получилось - это не грабли, это электроника
Korbofos » 09 мар 2011, 17:08
Radist писал(а):Я сишным кодом поделиться не могу - я ASMатик
. У вас срабатывание тсопа как-то индицируется? Если на тсоп посветить пультом - он "видит препятствие"? Думаю да, раз быстрые перемещения он видит. Могу подкинуть алгоритм на задержках.
В даташите приведен тестовый сигнал: 600 мкс есть несущая, 600 мкс нет несущей. Паузу увеличиваем до 8000 мкс. 600 мкс несущей делаем так:
цикл на 21 импульс
выставили бит
пауза 13,9 мкс
убрали бит
пауза 13,9 мкс
декремент счетчика цикла
читаем тсоп, узнаем что он увидел, индицируем результат
пауза 8000 мкс
повторить сначала
ЗЫ. Тема не на месте. Я не считаю это граблями. Грабли - это когда в этом месте у всех ничего не получится. А если у одного не получилось - это не грабли, это электроника
Спасибо заработало
Добавлено спустя 1 минуту 59 секунд:Вот код
- Код: Выделить всё • Развернуть
#include <TINY2313.h>
#include <delay.h>
void flash_l()
{
unsigned int i;
for(i=0; i<21; i++)
{
PORTB.1=1;
delay_us(14);
PORTB.1=0 ;
delay_us(14);
}
};
void main()
{
DDRA = 0xff;
DDRD = 0x00;
DDRB = 0xff;
PORTB =0x00;
while (1)
{
flash_l();
if (PIND.6 == 0){PORTA.1 = 1;}
else {PORTA.1=0;}
delay_us(8000);
}
}