roboforum.ru

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

Разработка Open Robotics: Датчик линии

Правила форума
Правила раздела OpenRobotics

Re: Разработка Open Robotics: Датчик линии

Michael_K » 24 мар 2010, 01:08

Там - это в типичных роботовcких приложениях.
Здесь проблема в слове "простаивать"...
Если проц простаивает, то, конечно, никакого пентиума не хватит, не то что двух мег :)

В юмор:
"Японские ученые создали суперкомпьютер способный выполнить бесконечный цикл за три микросекунды!"
Последний раз редактировалось Michael_K 24 мар 2010, 03:12, всего редактировалось 1 раз.

Re: Разработка Open Robotics: Датчик линии

ALHIMIK » 24 мар 2010, 01:28

2паштет а чего там опрашивать?
выставить флажок (в прерывании по таймеру) - опроси датчики
в бесконечном цикле проверяй флажжки

Re: Разработка Open Robotics: Датчик линии

=DeaD= » 24 мар 2010, 08:22

+1
Используй прерывания по таймеру и всё.

Re: Разработка Open Robotics: Датчик линии

pashteet » 24 мар 2010, 09:43

а если все таймеры заняты? Я еще не научился на один таймер и сервы и датчики, а еще Rc5 нужен таймер, а если импульсы захотим посчитать...
Мысль то я уловил, но все же, было бы удобнее, если с датчика приходит сразу 1 или 0 (особенно для начинающих :oops: )
Кстати, у меня получилось так, если опрашивать по одному датчику, то все работает:
Код: Выделить всёРазвернуть
Левый верхний:

Config Portd.4 = Output : Set Portd.4 : Waitms 3
Config Portd.4 = Input : Reset Portd.4 : Waitms 3
If Pind.4 = 1 Then : Lv = 0 : Else : Lv = 1 : End If
Return

Левый нижний:

Config Portd.6 = Output : Set Portd.6 : Waitms 3
Config Portd.6 = Input : Reset Portd.6 : Waitms 3
If Pind.6 = 1 Then : Ln = 0 : Else : Ln = 1 : End If
Return

Правый верхний:

Config Portd.5 = Output : Set Portd.5 : Waitms 3
Config Portd.5 = Input : Reset Portd.5 : Waitms 3
If Pind.5 = 1 Then : Pv = 0 : Else : Pv = 1 : End If
Return

Правый нижний:

Config Portd.7 = Output : Set Portd.7 : Waitms 3
Config Portd.7 = Input : Reset Portd.7 : Waitms 3
If Pind.7 = 1 Then : Pn = 0 : Else : Pn = 1 : End If
Return


а, если сделать так:

Код: Выделить всёРазвернуть

Config Portd.4 = Output : Set Portd.4
Config Portd.6 = Output : Set Portd.6
Config Portd.5 = Output : Set Portd.5
Config Portd.7 = Output : Set Portd.7
Waitms 3
Config Portd.4 = Input : Reset Portd.4
Config Portd.6 = Input : Reset Portd.6
Config Portd.5 = Input : Reset Portd.5
Config Portd.7 = Input : Reset Portd.7
Waitms 3
If Pind.4 = 1 Then : Lv = 0 : Else : Lv = 1 : End If
If Pind.6 = 1 Then : Ln = 0 : Else : Ln = 1 : End If
If Pind.5 = 1 Then : Pv = 0 : Else : Pv = 1 : End If
If Pind.7 = 1 Then : Pn = 0 : Else : Pn = 1 : End If


то нифига не работает, бился с этим целый день, потом забил.
Итого, на опрос всех датчиков (у меня), уходило 6*4=24мс, довольно большое время :pardon:

П.С.
ALHIMIK писал(а):2паштет а чего там опрашивать?
выставить флажок (в прерывании по таймеру) - опроси датчики
в бесконечном цикле проверяй флажжки

=DeaD= писал(а):+1
Используй прерывания по таймеру и всё.

буду учится на своих ошибках :beer:

Re: Разработка Open Robotics: Датчик линии

=DeaD= » 24 мар 2010, 09:50

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

Re: Разработка Open Robotics: Датчик линии

pashteet » 24 мар 2010, 09:54

ааааа, ёёё, ты прикалываешся? :crazy:
а если будет стоять МК на датчике, то тоже нельзя будет? Или МК не сможет выдавать 1 или 0 в порт?

Re: Разработка Open Robotics: Датчик линии

=DeaD= » 24 мар 2010, 09:56

Ааа... ты про МК на борту - это да, сделаем в следующей реинкарнации, заодно посадим на i2c шину, чтобы порты освободить.

Re: Разработка Open Robotics: Датчик линии

pashteet » 24 мар 2010, 09:59

Воот! А мк будет только на линейке из 8 датчиков? Или линейку можно будет разбивать на 8 отдельных датчиков и 1 МК, который будет подключаться по И2С?

Re: Разработка Open Robotics: Датчик линии

=DeaD= » 24 мар 2010, 10:38

Только на линейке. Попытка сделать это чудо "разделяемым" тут же увеличит размеры датчика в разы.

Re: Разработка Open Robotics: Датчик линии

=DeaD= » 06 май 2010, 00:21

Версия датчика линии на i2c:
Вложения
OR-LINESENS-KTIRx10-I2C-sch.pdf
(29.62 КиБ) Скачиваний: 0
OR-LINESENS-KTIRx10-I2C-brd.pdf
(30.1 КиБ) Скачиваний: 0
OR-LINESENS-KTIRx10-I2C.zip
(41.93 КиБ) Скачиваний: 0

Re: Разработка Open Robotics: Датчик линии

Zeus » 23 июн 2010, 10:42

Сейчас смотрел даташит на KTIR0721DS.
Там пишут, что напряжение на светодиоде должно быть не более 1,5В. Это так?
Тогда резистор в цепи служит не только как токоограничивающий, но и как делитель напряжения, который из 5В делает меньше. Это так?

Re: Разработка Open Robotics: Датчик линии

=DeaD= » 23 июн 2010, 10:56

Что-то я не понял, чем светодиод в этом КТИР отличается от любого другого светодиода? :)

Re: Разработка Open Robotics: Датчик линии

Zeus » 23 июн 2010, 11:06

я просто сейчас пытаюсь спаять схему, у меня только 250 Ом резисторы есть, а за другими ехать нада - вот и думаю спалю или нет от 5В
Какое сопротивление у ентого светодиода?

Re: Разработка Open Robotics: Датчик линии

=DeaD= » 23 июн 2010, 11:18

Светодиод как бы не имеет такого понятия, как сопротивление :)

На диоде обычно падает 1.2В вроде, а ток выбирается резистором поэтому если питать скажем 3.3В и током 0.01 А, то надо резистор R=U/I=(3.3-1.2)/0.01=2.1/0.01=210 Ом.

Re: Разработка Open Robotics: Датчик линии

blindman » 23 июн 2010, 11:23

У светодиода, как и у любого диода, есть вольт-амперная характеристика - она должна быть в документации. Расчет токоограничительного резистора производят для желаемой силы тока If. По ВАХ находят напряжение на диоде при заданном токе - Uf. Если напряжение питания U, то сопротивление резистора R = (U-Uf)/If


Rambler\'s Top100 Mail.ru counter