Энкодер



Энкодер — это устройство преобразующее линейное или угловое перемещение в последовательность сигналов, позволяющих определить величину перемещения.
Т.о. можно выделить линейные и поворотные энкодеры.

Поворотный энкодер (иначе — датчик угла поворота) — устройство, преобразующее угол поворота вращающегося объекта (вала) в электрические сигналы, позволяющие определить этот угол.
Датчики угла поворота широко применяются в автоматике (например — в сервоприводах).

Энкодеры бывают двух типов:
1. абсолютный — энкодер возвращает своё абсолютное положение.
Пример: переменный резистор в сервомашинке.
2. инкрементный — энкодер выдаёт импульсы, означающие изменение его положения
Пример: энкодер используемый на колёсике компьютерной мышки.

Кроме того, энкодеры различаются по принципу действия:
1) с щеточными контактами;
2) резисторные (потенциометры);
3) оптические;
4) магнитные (на датчиках Холла);
5) индуктивные;
6) ёмкостные.

Пример использования магнитного энкодера мы видели у робота-пылесоса Neato XV-11,

— на валу двигателя закреплён пластиковый диск с магнитиками, на которые реагирует датчик Холла.
А стандартный оптический энкодер мы можем наблюдать у роботов-пылесосов iRobot Roomba 400-серии (iRobot Create),
< img src="/files/robots/iRobot/Roomba/roomba_wheel_optical_encoder.jpg" />
или в компьютерных мышках.

Принцип действия оптического энкодера:

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

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

Т.о., оптические энкодеры работают по двум принципам:
* на просвет;
* на отражение.

В обоих случаях, фотоприёмник, фиксирует переход от одной области к другой и энкодер может сгенерировать импульс, инкрементирующий «счётчик положения».

Так же, можно разделить энкодеры по типу считываемой информации:

* Одиночный энкодер — считаем количество импульсов

Плюсы:
+ самый простой и доступный вариант энкодера (только один датчик — излучатель+приёмник).

Минусы:
— ошибки инициализации (при старте системы, не ясно в каком положении находтся энкодер);
— ошибки при подсчете импульсов на границах ( возможны ложные срабатывания из-за «дребезга»;
— невозможность определить направление движения.

* Сдвоенный (квадратурный) энкодер — считаем количество импульсов, учитывая направление.

Разновидность инкрементального энкодера, которая состоит из двух датчиков срабатывающих со смещением в полшага, что позволяет практически полностью гарантировать отсутствие ложных срабатываний на границе одного из энкодеров.

Плюсы:
+ относительная простота реализации (два датчика);
+ отсутствие ошибок при подсчете импульсов;
+ возможно определить направление вращения.

Минусы:
— ошибки инициализации (при старте системы, не ясно в каком положении находимся).

* Энкодер на двоичных кодах — позволяет считывать точное положение в каждый момент времени.

Плюсы:
+ отсутствие ошибок инициализации (при старте системы, ясно в каком положении находимся);
+ нет ошибок при подсчете импульсов, т.к. такой задачи просто нет;
+ возможно определить направление вращения.

Минусы:
— относительная сложность реализации (несколько датчиков);
— проблемы с граничными положениями (если меняется одновременно более 1 бита, то можно временно получить некорректное положение);
— ограничения в разрешающей способности (для большей точности требуется больше каналов).

* Энкодер на кодах Грэя — позволяет считывать точное положение в каждый момент времени.

Плюсы:
+ отсутствие ошибок инициализации (при старте системы, ясно в каком положении находимся);
+ отсутствие ошибок при подсчете импульсов на границах;
+ возможно определить направление вращения;
+ отсутствие проблемы с граничными положениями (одновременно меняется не более 1 бита).

Минусы:
— относительная сложность реализации (несколько датчиков);
— ограничения в разрешающей способности (для большей точности требуется больше каналов).

Для самостоятельного изготовления энкодера потребуются:
1. диск с прорезями (можно изготовить самостоятельно — например, травлением) или найти готовый (например, в компьютерной мышке)), а можно наоборот — распечатать на плёнке для принтеров чёрные штрихи по кругу или диск с контрастным рисунком (просто распечатать на бумаге и приклеить к диску или колесу)

2. фото-датчик (светодиод + фото-приёмник).

Для энкодеров «на отражение» можно использовать фотопрерыватель (photo-interrupter), который в одном корпусе содержит оба элемента.

различные варианты паттернов энкодеров:

Пример энкодера в колесе от Pololu

На плате стоят фотопрерыватели, фиксирующие отражённый сигнал от белых зубцов внутри колеса.

Ссылки
http://ru.wikipedia.org/wiki/Датчик_угла_поворота
http://roboforum.ru/wiki/Энкодеры
http://ru.wikipedia.org/wiki/Код_Грея
Building a Self-Balancing Robot: Motor Driver and Wheel Encoder

По теме
Энкодер и шкала
Датчики Холла
Одометрия


0 комментариев на «“Энкодер”»

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение