понедельник, 6 декабря 2010 г.

Неочевидное использование сенсора освещенности


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



А как вам идея, что с помощью сенсора освещенности можно измерять расстояние, вычислять угол поворота и реагировать на касание?

1. Измеряем расстояние.
Нельзя гарантировать, что можно измерить любое расстояние, но если предмет находится достаточно близко, сенсор освещенности сможет определить расстояние с меньшей погрешностью, чем ультразвуковой сенсор. При этом необходимо учитывать, что фактура и цвет предмета, расстояние до которого необходимо выяснить, должны приниматься во внимание во время написания программы.
Например, следующий эксперимент показал, как изменяется освещенность (сенсор был заранее откалиброван) зеленого листа бумаги при разной удаленности от него сенсора освещенности:
66% 51% 41% 4%
Т.е. с увеличением расстояния до предмета, значение снимаемое с сенсора растет, а с уменьшением расстояния - приближается к 0. Следовательно, в программе можно произоводить математические преобразования, так чтобы показания с сенсора освещенности указывали на определенное количество сантиметров до предмета.
Между прочим, именно это свойство сенсора освещенности используется в различных балансерах, построенных с его использованием. Программа в них учитывает изменение расстояния до пола (изменение освещенности при наклонах назад или вперед) и указывает двигателям в какую сторону начать движение, чтобы сбалансировать устройство.

2. Измеряем угол поворота оси двигателя (а равно робота или его части)
Для того, чтобы измерить угол поворота одним сенсором освещенности уже не отделаться - нужно добавить других Lego-деталей.

Т.е. при вращении оси, освещенность на сенсоре попеременно изменяется. Поэтому в программе нужно только фиксировать переход от менее яркого момента к более яркому, что будет обозначать поворот на определенное количество градусов (точное значение в градусах зависит от того, поворот чего именно измеряется - для двигателя он будет один, для всего робота - другой).

3. Реагируем на касание.
Предложенную выше конструкцию можно доработать.

Теперь при нажатии на рычаг, освещенность на сенсоре измениться. Подбирая элластичность резинки (в нижней части конструкции) можно регулировать чувстительность нового сенсора касания. Более того, поскольку на сенсоре освещенности между самым темным и самым светлым моментами возможны промежуточные показания, то новый сенсор касания может реагировать на разные степени нажатия.

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

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

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

Related Posts Plugin for WordPress, Blogger...