среда, 8 декабря 2010 г.

Распознаем цвета с помощью сенсора освещенности

Хотя сенсор из Lego Mindstorms NXT (v1.0) и называется сенсором освещенности, на самом деле с помощью него можно распознавать и цвета. О том какие показания он выдает в случае цветной поверхности уже было упомянуто в одной из предыдущих статей.
В том случае, рассматриваемый пример был очень простой. На самом деле, во время работы с сенсором освещенности для распознавания цветов, наверняка, найдутся непонятные с первого раза нюансы.

Обычно, цвета распознают в режиме оценки отраженного света. Это значит, что датчик включает светодиод и измеряет количество возвратившегося света с помошью фототранзистора. При этом
необходимо помнить:
  • физические характеристики фототранзистора таковы, что он более чувствителен к восприятию волн в инфракрасном диапазоне
  • светодиод сенсора испускает не белый, а красный свет
Поэтому для того чтобы понять, что же на самом деле видит сенсор в таких условиях, предлагается сделать очень быстрый эксперимент.
* Возьмите полоску бумаги, на которой бы на белом фоне было бы что-то изображено красным
* Найдите цветное стеклышко красного цвета или прозрачную пленку красного оттенка.
* Посмотрите на полоску бумаги через стекло/пленку.
* То же самое проделайте для полоски бумаги с черными и зелеными фрагментами.

Скорее всего, картинка, наблюдаемая через цветовой фильтр (стекло/пленку), будет похожа на следующую:

Видно, что красный цвет при наложении цветового фильтра практически неразличим с белым, зеленый цвет стал оттенком серого, а черный так и остался самым темным участком на картинке.

Эксперимент легко подтверждается практическим путем. Например, получим показания (некалиброванные) с сенсора для цветной полоски, расположенной с краю поля, поставляемого вместе с Lego Mindstorms набором.
Результаты измерений показывают, что для сенсора освещенности цвета белый, красный, оранжевый и желтый выглядят практически одинаково. Остальные же цвета он уже довольно хорошо различает. Но, как и следовало ожидать, цвета синий-темносиний и зеленый-темнозеленый возвращают, примерно, одинаковое количество света, поэтому их значения также практически совпадают.
Если же полученные результаты неудовлетворительны для создания и программирования того или иного робота, тогда можно порекомендовать "поиграться" с калибровкой и расстоянием от сенсора до объекта:

Комментариев нет:

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...