Найти тему
RCRoboLab

Сенсор линии.

Важная информация.

Что это такое и для чего нужно?

Сенсор линии - это устройство способное различать темное и светлое, он необходим для позиционирования робота относительно линии. Да, бредово объяснил, и как по мне данное определение в корне не верно. Давайте попробуем понять что же такое сенсор линии...
Обычно сенсором линии называют какое-либо устройство для детектирования линии на базе оптического датчика TCRT5000L или подобного ему.

датчик TCRT5000L. Взято с smdx.ru.
датчик TCRT5000L. Взято с smdx.ru.

Сенсор линии действительно нужен нам для того чтобы робот мог понимать свое положение в пространстве относительно линии или другого контрабасного ориентира. Но в тоже время «сенсор линии» можно также использовать как сенсор препятствий (я вот, к примеру, использую такой сенсор как бесконтактный «выключатель» подсветки на кухне).

Утверждение, что сенсор линии может различать светлое и темное тоже не корректно, сенсор не может «понимать» это, но мы можем интерпретировать поведение сенсора, в известных нам условиях, и на основе этого решить «что находится под сенсором, темное или светлое».
Датчик TCRT5000L (и аналогичные) как и модули построенные на них, работают на принципе отморожения.

Датчик, а точнее ИК светодиод в датчике, испускает свет, тот достигает поверхности и отражается. Отмороженное ИК излучение устремляется в фоточувствительный элемент датчика TCRT5000L (фотодиод) и открывает его для прохождения тока. НО! Это произойдет только если отразится достаточное количество света, если конечно вообще что-то отразилось.

принцип работы датчика TCRT5000L. Взято с iarduino.ru
принцип работы датчика TCRT5000L. Взято с iarduino.ru

А теперь давайте подумаем что нужно детектировать сенсору? Правильно — линию. Линия как правило черная, на белом фоне. Так вот далее мы и будем с вами говорить о черном и белом, но помните что цвет не важен. Важна способность отражать!

Если свет с ИК светодиода попадает на белое, то он с легкостью и в нужном количестве отражается и «засвечивает» фотодиод, который в свою очередь начинает пропускать через себя ток, что будет воспринято микроконтроллером как сигнал HIGH. А в случае если сенсор находится над черным — свет испущенный светодиодом НЕ отразится от поверхности или количество отраженного света будет настолько незначительно, что не позволит фотодиоду пропустить через себя ток, и наш МК примет сигнал LOW.

логика работы TCRT5000L . взято с radiomart.kz
логика работы TCRT5000L . взято с radiomart.kz

Но и выше написанное тоже не совсем верно, сам датчик TCRT500L дает нам не цифровой сигнал, а аналоговый, и благодаря этому мы можем «понимать» не только черное и белое, но и оттенки! Да-да, все оттенки серого в нашем расторжении, хватило бы МК.
Если вспомним МК на базе Atmega 328p, и функцию analogRead(), а точнее то что она считывает аналоговый сигнал в диапазоне от 0 до 255, то мы смело можем делать вывод что в ИДЕАЛЬНЫХ условия, когда белое отражает 100% света, а черное 100% света поглощает, мы можем получить 256 градаций серого, от идеально белого до идеально черного. Но к сожалению таких материалов еще не придумали, и нам для детектирования не доступны идеально белые и черные поверхности, но в случае чего сенсор может ;)

Именно благодаря этой способности датчика TCRT500L различать оттенки серого, можно сделать робота, что будет передвигаться ориентируясь на границу (!) линии, и использовать для этого только один сенсор.


Модули бывают разные - черные, синие, красные.... xDDD

C датчиком TCRT5000L вроде бы разобрались, а зачем тогда нам весь этот «зоопарк» модулей сенсоров линии?

Ну, во-первых все хотят заработать денег, а для этого нужно попытаться предложить клиенту что-то оригинальное и свое, и у них (производителей) даже иногда это получается. А сам TCRT5000L использовать без обвязки не получиться. Вот и получается что нам, как потребителю, дается огромный выбор.

В общем и целом, модули сенсора линии бывают цифровые и аналоговые, все остальное уже мелочи.

Цифровые модули будут выдавать нам сигнал HIGH или LOW (логические 1 и 0), и вот тут, внимание! В зависимости от модели сенсора линии могут быть следующие ситуации: одни сенсоры (модели) на линию выдают LOW (0), а другие HIGH (1). Это нужно учитывать при написании программы робота.
Аналоговые же сенсоры линии будут нам выдавать уже аналоговый (какая неожиданность) сигнал.
Также на некоторых моделях есть подстроечные резисторы — для того чтобы мы могли выставить пороги срабатывания сенсора, почти всегда есть светодиод для индикации состояния сенсора, иногда еще светодиоды для индикации питания сенсора. Но в целом от модели к модели мало что меняется.

компоновка модуля сенсора линии. взято с 3d-diy.ru
компоновка модуля сенсора линии. взято с 3d-diy.ru

Отдельно хочу сказать, что бывают модули сенсора линии с количеством датчиков больше чем один! Модуль может содержать в себе и два и три и пять и десять датчиков. Это делается сугубо по тем же причинам, производитель пытаясь продать нам свой продукт делает его для нас удобнее/привлекательнее, ведь работать с таким модулем куда приятнее чем с россыпью отдельных сенсоров. Именно таким путем мы пошли в создании нашего робота для гонок на фестивале R:ED FEST.

пример модуля с 5ю датчиками TCRT5000L . взято с roboshop.spb.ru
пример модуля с 5ю датчиками TCRT5000L . взято с roboshop.spb.ru

На последок хочу напомнить, что сенсор линии может не только детектировать линию, но и препятствия, а также линию можно детектировать при помощи камеры, сенсора мыши или датчика TSL1401 именуемый фоточувствительная линейка — все они тоже могут детектировать линию.

А вот тут вы можете найти все доступные на данный момент статьи от нашего клуба.