roboforum.ru

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

ИК-локатор

ИК-локатор

Airat » 21 ноя 2005, 14:48

День добрый!

Начал разбираться с ИК-локатором http://parts.roboclub.ru/index.shtml?ik, но несколько не понимаю...
В приведенной статье ИК-излучатель включается на 4 такта, выключается на 5 - и так десять раз, потом задержка 20 тактов. Частота МК - 1 MHz.
Локатор работает следующим образом: контроллер включает ИК-излучатель LED1 несколько раз с частотой около 36кГц...

Как получаются эти 36 кГц? У меня получается, что
1 МГц / (4+5) = 111 кГц.
Объясните, пожалуйста, никак не соображу...

Александр, а как Вы собираетесь с помощью ИК-локатора измерять расстояние? Регулируя мощность излучения?..

-= Александр =- » 21 ноя 2005, 15:23

Как там - не вникал, щас подумать некогда.
Я делал так: таймер на 72 кГц и счетчик, считающий импульсы. Пачку насчитал - считает паузу. А приемник висит на прерывании.

С дальностью - пока не ясно, пробую всякие варианты.

Airat » 21 ноя 2005, 16:05

-= Александр =- писал(а):Как там - не вникал, щас подумать некогда.
Я делал так: таймер на 72 кГц и счетчик, считающий импульсы. Пачку насчитал - считает паузу. А приемник висит на прерывании.

С дальностью - пока не ясно, пробую всякие варианты.


Правильно понимаю, что таймер срабатывает с частотой 72кГц, при нечетных срабатываниях включаем излучение, при четных - выключаем?

Да, хотелось бы, конечно, иметь какую-то возможность измерять расстояние, но хоть я совсем чайник, мне кажется, что с помощью ИК-локатора этого добиться если и можно, то варьируя мощностью излучения...
Звуковой локатор никто не делал? Мне попалась пока только такая вещь:
http://www.ottawarobotics.org/articles/ultrasonic/ultrasonic.html
Без ультразвука можно обойтись, скажем, парой микрофонов и одной пищалкой?...

-= Александр =- » 21 ноя 2005, 16:14

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

MiD » 23 ноя 2005, 13:01

а у меня что-то этот ИК-датчик на TSOP1736 реагирует на любой свет, кроме ИК... Правда пока еще всерьез не брался за него - нет осцилографа

-= Александр =- » 23 ноя 2005, 16:12

Все TSOPы дают инвертированный сигнал. Ноль если что-то принято и один если ничего.
И еще к ним обвязка нужна чтоб помехи не проходили, они очень к питанию критичны...

MiD » 23 ноя 2005, 17:49

ну вот он у меня все и принимает кроме ИК  :D

-= Александр =- » 23 ноя 2005, 21:57

Значит левый он какой-то или питание плохо фильтруется...

ИК-бампер

Vovan » 30 ноя 2005, 23:35

Прошу помощи или объяснения по конкретному вопросу:
http://parts.roboclub.ru/index.shtml?ik в этой ссылке приведена программа:
;********************************************************************
;* ИК-локатор: ИК-светодиод на PB4 дает пачки импульсов с частотой
;* около 36кГц, а TSOP1736 на PB3 их отслеживает
;*  
;* MCU: ATtiny12@1MHz (c) RoboClub 2003  
;********************************************************************


.include "tn12def.inc"

rjmp RESET ;reset handle


;* Объявление переменных

.def  t1      = r1 ;счетчик для "длинных" задержек
.def  temp    = r19 ;счетчик времени задержки
.def  count   = r20 ;счетчик числа импульсов в пачке

;* Определения

.equ  led    = 0 ;LED на PB0
.equ  tsop   = 3 ;TSOP на PB3
.equ  ir_led = 4 ;IR LED на PB4

;* Начало кода

RESET:
sbi   DDRB, led ;подключаем LED на выход PORTB линия 5
sbi   DDRB, ir_led ;подключаем IR LED на выход PORTB линия 3
   
cbi   DDRB, tsop ;подключаем TSOP на вход PORTB линия 2
sbi   PORTB,tsop ;включаем "подтяжку"

;* Задание значений

.equ  TIME1   =  4 ;длительность импульса
.equ  TIME2   =  5 ;задержка между импульсами
.equ  TIME3   =  20 ;задержка между пачками импульсов
.equ  COUNT   =  10 ;число импульсов в пачке


; Главный цикл программы
; ----------------------
start:
ldi   count, COUNT ;загружаем в счетчик число импульсов в пачке

; цикл выдачи пачки импульсов
flash:
cbi   PORTB, ir_led ;зажигаем IR LED

ldi   temp, TIME1 ;загружаем в temp длительность импульса          
Delay1: dec   temp ;уменьшаем на единицу temp, пока
brne   Delay1     ;  не станет равным 0

sbi   PORTB, ir_led ;гасим IR LED
       
ldi   temp, TIME2 ;загружаем в temp длительность паузы между импульсами
Delay2: dec   temp ;уменьшаем на единицу temp, пока
brne   Delay2 ;  не станет равным 0


dec   count ;уменьшаем на 1 счетчик числа импульсов
brne   flash ;если не 0, то посылаем следующий импульс

;когла пачка импульсов выдана - проверяем, есть ли сигнал от TSOP

sbis PINB, tsop ;если уровень на выходе TSOP низкий (т.е. сигнал есть)
rjmp ledon ;то идем зажигать LED
cbi PORTB, led ;иначе гасим LED
rjmp wait_next ;и переходим к ожиданию следующей пачки

ledon: sbi PORTB, led ;гасим LED

;задержка перед следующей пачкой импульсов
wait_next:

clr t1 ;сбрасываем t1 (т.е. t1=0 или, что тоже t1=256)
ldi   temp, TIME3 ;устанавливаем число задержек

Delay3: dec   t1 ;задержка по счетчику t1 от 256 до 0
brne   Delay3 ;   т.е. 256*3 тактов
dec temp ;повторяем TIME3 раз задержку по t1
brne   Delay3 ;   т.е. всего  (TIME3*256*3 + TIME3*3) тактов

rjmp   start ;переходим к началу главного цикла
*************************************************************
AVR Studio "последней модели" постоянно выдает ошибку указывая на вот енту строчку: .equ  COUNT   =  10 ;число импульсов в пачке
Подскажите, пожалуйста, в чём проблема?
___________
С уважением
Vovan

Re: ИК-локатор

mitart » 07 июл 2009, 19:24

У меня вопрос такой же как у автора этой темы(к сожалению он ответа не получил). Как там получается частота 36 кГц, если длительность импульса 4 периода тактового сигнала, длительность паузы - 5, а частота 1 МГц (то есть период 1 мкс и получается что период излучения 9 мкс, хотя для 36 кГц надо 28 мкс). :o

И еще есть вопрос тоже по этому локатору - как мк может надежно определить, что близко препятствие? Всмысле когда оно еще не очень близко ну или далеко то на выходе приемника изредка появляется низкий уровень сигнала, потом он появляется всё чаще и чаще.... Так вот как определить тот момент, когда препятствие однозначно близко. Подкиньте идею :pardon:

Re: ИК-локатор

blindman » 07 июл 2009, 19:44

А кто сказал, что длительности там задаются в тактах процессора?

Re: ИК-локатор

SiemX » 07 июл 2009, 19:47

Взять переменную и при 0 на тсопе ++ ее, потом выполняем программу и опять проверяем выход тсопа вобщем в главный цыкл ее. А по прерыванию от таймера сбрасывать в ноль. Если число в переменной превысит некоторое значение значет близко

Re: ИК-локатор

mitart » 07 июл 2009, 20:17

А кто сказал, что длительности там задаются в тактах процессора?


А в чём же?

за идею с увеличением значения переменной спасибо, кажется понял :good:

Re: ИК-локатор

Yuraskas » 29 авг 2009, 21:11

И еще один спросивший не получил ответ (а может и сам догадался, да не поделился ни с кем).
Почему же все таки 4 такта и 5 тактов? И в чём еще в этой программе может задаваться длительность, кроме как в тактах процессора? ИК-диод горит в течение 4х тактов и не горит в течение 5...

Re: ИК-локатор

Yuraskas » 01 сен 2009, 09:39

Неужели таки никто не подскажет, каким образом в той программе рассчитвается длительность импульса? :(


Rambler\'s Top100 Mail.ru counter