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

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

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

Сообщение Michael_K » 24 мар 2010, 01:08

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

В юмор:
"Японские ученые создали суперкомпьютер способный выполнить бесконечный цикл за три микросекунды!"
Последний раз редактировалось Michael_K 24 мар 2010, 03:12, всего редактировалось 1 раз.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение ALHIMIK » 24 мар 2010, 01:28

2паштет а чего там опрашивать?
выставить флажок (в прерывании по таймеру) - опроси датчики
в бесконечном цикле проверяй флажжки
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

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

Сообщение =DeaD= » 24 мар 2010, 08:22

+1
Используй прерывания по таймеру и всё.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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:
Аватара пользователя
pashteet
 
Сообщения: 930
Зарегистрирован: 28 авг 2009, 12:50
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович

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

Сообщение =DeaD= » 24 мар 2010, 09:50

Если с датчика будет приходить 0 или 1, то его нельзя будет калибровать под разную высоту над поверхностью и разный уровень освещенности \ материал трассы.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение pashteet » 24 мар 2010, 09:54

ааааа, ёёё, ты прикалываешся? :crazy:
а если будет стоять МК на датчике, то тоже нельзя будет? Или МК не сможет выдавать 1 или 0 в порт?
Аватара пользователя
pashteet
 
Сообщения: 930
Зарегистрирован: 28 авг 2009, 12:50
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович

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

Сообщение =DeaD= » 24 мар 2010, 09:56

Ааа... ты про МК на борту - это да, сделаем в следующей реинкарнации, заодно посадим на i2c шину, чтобы порты освободить.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение pashteet » 24 мар 2010, 09:59

Воот! А мк будет только на линейке из 8 датчиков? Или линейку можно будет разбивать на 8 отдельных датчиков и 1 МК, который будет подключаться по И2С?
Аватара пользователя
pashteet
 
Сообщения: 930
Зарегистрирован: 28 авг 2009, 12:50
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович

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

Сообщение =DeaD= » 24 мар 2010, 10:38

Только на линейке. Попытка сделать это чудо "разделяемым" тут же увеличит размеры датчика в разы.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Zeus » 23 июн 2010, 10:42

Сейчас смотрел даташит на KTIR0721DS.
Там пишут, что напряжение на светодиоде должно быть не более 1,5В. Это так?
Тогда резистор в цепи служит не только как токоограничивающий, но и как делитель напряжения, который из 5В делает меньше. Это так?
«Сон разума рождает чудовищ»
Аватара пользователя
Zeus
 
Сообщения: 862
Зарегистрирован: 28 июл 2009, 10:02
Откуда: Самара
ФИО: Павел Сергеевич

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

Сообщение =DeaD= » 23 июн 2010, 10:56

Что-то я не понял, чем светодиод в этом КТИР отличается от любого другого светодиода? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Zeus » 23 июн 2010, 11:06

я просто сейчас пытаюсь спаять схему, у меня только 250 Ом резисторы есть, а за другими ехать нада - вот и думаю спалю или нет от 5В
Какое сопротивление у ентого светодиода?
«Сон разума рождает чудовищ»
Аватара пользователя
Zeus
 
Сообщения: 862
Зарегистрирован: 28 июл 2009, 10:02
Откуда: Самара
ФИО: Павел Сергеевич

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 Ом.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение blindman » 23 июн 2010, 11:23

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

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Пред.След.

Вернуться в Разработка модулей

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5