В прошлый раз мы с вами говорили о двигателях, с помощью которых приводятся в действие всевозможные механизмы, в том числе и роботы. Теперь разговор пойдет о датчиках или сенсорах — устройствах, переводящих данные, полученные от окружающей среды, в электрические сигналы.
Вы знаете, что микроконтроллер умеет изменять состояние своих выводов по заданной программе. Но он бы не был и вполовину так интересен, если бы у него не было входов — его программа знать бы не знала, что происходит во внешнем мире. Поэтому мы должны дать Arduino связь с внешним миром.
То, что у человека называется органами чувств, в электронике называется сенсорами или датчиками. Глаза заменяют камеры, а уши — микрофоны. Осязание — датчики давления (тензодатчики) и термометры. Обоняние — чувствительные газоанализаторы. Вестибулярный аппарат — гироскопы и акселерометры.
Некоторые электронные датчики значительно чувствительнее человеческих сенсоров и работают там, где невозможно находиться: к примеру, в доменной печи или в открытом космосе. Они умеют распознать то, на что человек неспособен: радиацию или магнитное поле.
Показания датчиков выдаются в виде сигналов. Зачастую это простой цифровой сигнал: ответ «Да — Нет». Для Arduino «Да» — это 5 В, а «Нет» — 0 В.
Естественно, что не на все вопросы можно ответить «Да» или «Нет». Например, какова температура расплавленной платины? Ответ: 3000 градусов по шкале Цельсия. Причем термопара, замерившая температуру, выдаст информацию в виде аналогового сигнала.
Такой сигнал тоже может обрабатывать Arduino. Для этого в нем есть аналогово-цифровой преобразователь (АЦП). Он представляет собой 1024 так называемых компаратора — элемента, умеющего сравнивать сигнал с другим, известным напряжением и сигнализировать, если входное напряжение больше этого известного, или, как еще говорят, опорного напряжения.
Опорное же напряжение создается следующим образом: промежуток от 0 до 5 В разбивается на 1024 ступени опорного напряжения, и принимаемый сигнал поочередно сравнивается с каждой. Так с некоторой погрешностью аналоговый сигнал превращается в цифровой.
Так что давайте дадим нашему Arduino набор простых органов чувств — это и есть датчики разных видов.
Цифровые датчики перемещения.
Сегодня мы поговорим лишь о некоторых из этих датчиков, а именно — сенсорах перемещения и положения. Робот-андроид не сможет толком двинуть ни рукой, ни ногой, если его управляющая система не имеет представления о том, к чему это может привести, в каком именно положении и где именно находится в данный момент сам робот и его рабочие органы.
Выбирая датчик, вы, конечно, захотите, чтобы он был надежным, более-менее точным и недорогим. Этим требованиям вполне отвечают резистивные (потенциометрические) датчики.
Принцип их действия заключается в том, что перемещение той или иной части механизма приводит к смещению ползунка потенциометра (переменного резистора). Если через такой резистор пропускать постоянный ток, падение напряжения на нем окажется пропорциональным величине сопротивления и, следовательно, величине линейного перемещения интересующего объекта. Просто и удобно, тем более что измеряемый сигнал не требует специальной обработки.
Однако такой датчик обладает трением, которое влияет на его точность, внутренними шумами и изнашивается. Кроме того, на него заметно влияет окружающая атмосфера с ее перепадами влажности и температуры, запыленностью и т. д.
Поэтому такие датчики приходится защищать специальными покрытиями и компаундами на основе пластиков. Кроме того, датчики подобного типа не могут отображать быстрые, повторяющиеся движения и вскоре отказывают при сильных вибрациях.
Принцип действия индуктивных датчиков основан на том, что механическое перемещение, которое предполагается измерить, приводит к смещению ферромагнитного сердечника внутри обмотки, что, в свою очередь, приводит к изменению индуктивности катушки. Индуктивные датчики подключаются в цепь, питаемую источником переменного напряжения с частотой в несколько кГц, и могут измерять непосредственно линейное или угловое перемещение.
Датчики этого типа чувствительны к внешним электромагнитным полям, поэтому необходимо их экранировать. Кроме того, они довольно дороги, требуют специальной обработки снимаемых сигналов. Зато практически не зависят от атмосферных условий, надежны и точны.
Емкостные датчики представляют собой плоский или цилиндрический конденсатор, одна из обкладок которого может смещаться, вызывая изменение емкости. Такие датчики опять-таки просты и надежны, поскольку диэлектриком обычно служит воздух, так что параметры конденсатора зависят только от геометрических характеристик, но не от свойств используемых материалов. Необходимо только защищать датчик от пыли, влажности, коррозии, ионизирующей радиации, которые могут ухудшить изоляцию между обкладками.
Для оценки расстояний до объектов служат оптические, ультразвуковые, инфракрасные и лазерные дальномеры. В основе оптических дальномеров для коротких расстояний (до сотен метров) лежит триангуляция. Суть метода в том, что при замере сводятся воедино два изображения — одно, полученное непосредственно от объекта, а другое — отразившееся от зеркала. При этом автоматически решается геометрическая задача: по известным углам и одной стороне треугольника вычисляются неизвестные стороны. Подобные схемы некогда широко использовались в дальномерных фотоаппаратах и артиллерийских дальномерах.
Ныне для большей точности, возможности использования оптических дальномеров в темное время суток расстояние до объекта измеряют при помощи лазера.
Зная скорость лазерного луча (300 000 км/с) и время, за которое он пробегает путь до объекта и обратно, можно вычислить и расстояние.
Стоимость датчика с оптической триангуляцией составляет в среднем 450–500 рублей. Лазерные дороже — цена приличного лазерного дальномера может превышать 15 000 рублей.
Работа ультразвукового датчика основана на принципе эхолокации. Динамик прибора издает ультразвуковой импульс, а приемник ловит импульс отраженный. Зная скорость распространения звука в окружающей среде (примерно 300 м/с) и время, замеренное таймером, можно рассчитать расстояние до препятствия.
Средняя цена ультразвукового дальномера — около 100 рублей. Поэтому моделисты чаще всего пользуются именно ими.
В инфракрасном дальномере светодиод через фокусирующую линзу излучает узкий пучок инфракрасных лучей. Отраженное от препятствия излучение попадает на приемник, представляющий собой CCD-матрицу (Charge-Coupled Device), или, иначе, прибор с зарядовой связью (ПЗС-матрица). Здесь излучение усиливается и из аналогового преобразуется в цифровой код. На основе анализа изображения CCD-матрицы встроенный контроллер рассчитывает угол наклона принятого луча и время, за которое он преодолел путь туда-обратно, а потом высчитывает расстояние до препятствия. Инфракрасный луч удобен тем, что позволяет определять расстояния в полной темноте.
В моделировании инфразвуковые, как и ультразвуковые, датчики используются для определения расстояний до очередного препятствия, чтобы модель автомобиля или того же робота не сталкивалась с препятствиями при движении по маршруту.
Датчик положения объекта в пространстве чаще всего представляет собой гироскоп.
Поскольку настоящие механические гироскопы стоят очень дорого (порядка 1500 долларов США), а кроме того, достаточно велики и массивны для моделей, вместо них в моделизме, робототехнике получили распространение МЭМС-гироскопы.
Такие микроэлектромеханические системы дешевы и миниатюрны, а потому встречаются сегодня практически в каждом смартфоне. Справедливости ради скажем, что это устройство правильнее назвать гиротахометром, то есть измерителем скорости угла поворота, но функции свои он все равно выполняет исправно.
В основе МЭМС-гироскопа лежит так называемый вибрационный гироскоп, в котором роль вращающегося ротора выполняет своеобразный вибрирующий маятник. При повороте гироскопа маятник пытается сопротивляться приложенной силе. Возникающее сопротивление маятника фиксируется и преобразуется в электрический сигнал.
МЭМС-гироскопы используются для стабилизации полета вертолетов, квадрокоптеров и прочих авиамоделей. Стоимость МЭМС-гироскопа — от 300 рублей и выше.
Емкостной датчик линейного перемещения с изменяющейся величиной зазора.
Емкостной датчик с цилиндрическим конденсатором.
Оптический датчик перемещения на основе дифракционных решеток.
Оптический датчик перемещения на основе оптической триангуляции.
Вихретоковый датчик перемещения.
Ультразвуковой датчик перемещения.
Схема МЭМС-гироскопа