[Перевод] Абсолютный поворотный энкодер с однодорожечным кодом Грея

В этом материале речь пойдёт о физической реализации абсолютного поворотного энкодера. Разрешение этого энкодера составляет 6 градусов, то есть — 60 шагов. Этого достаточно для того чтобы сделать на его основе часы. Здесь используется одношаговый код Грея.

5gih0al387chb5_vbbawpiqmrtm.jpeg

Материалы


Для реализации проекта понадобится печатная плата с оптическим датчиком, Arduino (я применил тут Arduino Uno), а так же — диск энкодера.

3c9bc3a52ace6b56f5a16e116a1cd851.jpg


Плата с оптическим датчиком

image-loader.svg


Схема Arduino Uno

image-loader.svg


Диск энкодера

Шаг 1. Принципы работы энкодера


Работа энкодера

image


Преобразование однодорожечного кода Грея в двоичный код

image-loader.svg


Таблица преобразования кода Грея в двоичный код

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

Вот файлы с программным кодом:


Шаг 2. Принципиальная схема устройства


image-loader.svg


Принципиальная схема устройства

Микроконтроллер Arduino подключён к плате с оптическим датчиком 4 проводами. Речь идёт о контактах GND, +5V, SDA, SCL.

Шаг 3. Диск энкодера


image-loader.svg


Диск энкодера

Реальный диск энкодера, используемый в этом проекте, выглядит именно так.

Шаг 4. Подробнее о диске энкодера


На следующих рисунках выделена зона диска энкодера, которую анализирует оптический датчик.

image-loader.svg


Область диска энкодера, которую анализирует датчик

image-loader.svg


Область диска энкодера, которую анализирует датчик

Шаг 5. Создание диска энкодера


3dead5431ef9b818710d81a8928bad38.jpg


В основе диска энкодера лежит обычный CD-диск

image-loader.svg


Подготовка изображения для нанесения на диск

image-loader.svg


Разметка изображения

image-loader.svg


Чёрные и белые области разметки, на которые реагирует оптический датчик

79b36d6ec7b2fb6442209d4095577cdd.jpg


Размеченный диск

Приведённые здесь изображения можно распечатать на принтере и приклеить к диску. Того же эффекта можно достичь, вручную нанеся разметку на диск.

Я пользовался 38-миллиметровой клейкой лентой разных цветов. Сначала я наклеил два разноцветных куска ленты на диск, постаравшись, чтобы края лент сошлись бы точно в центре диска. Потом, следуя разметочным линиям, вырезал участки лент. Можно, вырезав участки ленты одного цвета, приклеить их поверх соответствующих участков ленты другого цвета.

Шаг 6. Проверка параметров элементов, формирующих одношаговый код Грея, и оптического датчика


image-loader.svg


Размеры элементов и диска

image-loader.svg


Элементы оптического датчика

Шаг 7. Сопоставление кода Грея и элементов оптического датчика


image-loader.svg


Код, который нужно прочитать датчику

Код Грея, нанесённый на диск, считывается элементами датчика, угловое расстояние между которыми составляет 30 градусов. Разрешение энкодера составляет 6 градусов, то есть — 60 шагов (360/60 = 6 градусов). В ходе работы устройства получается последовательность [13, 3, 6, 2, 6, 13, 3, 6, 2, 6]. Шаг 13 соответствует 78 градусам.

Шаг 8. Варианты применения абсолютного энкодера


Я использовал абсолютный энкодер для изготовления часов.
Часы
Большие часы

Вот — несколько снимков, демонстрирующих процесс изготовления часов.

1b9839f30511b8ad21a2d21602449ada.jpg


4de20188d4208787e1aa19ef3e216c5f.jpg


affc4f50bae59651a893f195d05011aa.jpg


e55584c5a6d3830009df25eca6ccb89d.jpg


cd9b46a7a882778c7b6d2e85616d9b73.jpg


809613074d0d3eebd82b1d292b3838cb.jpg


843ff560d98d2048033d18dafe90a7fd.jpg


54840e5fa9e5b0d556097e1cdd69f401.jpg


1e0b681e0a18936e35f6c8594dede3e0.jpg


a96f59166863daee938e8978738931b9.jpg


157b8e6b6acc38b7c9e485098667b646.jpg


71498b7096297e4072c6d2e2f2f7bb7f.jpg


66c79bbcd824e673119bfe6fd696d7c1.jpg


Планируете ли вы сделать какой-нибудь проект на основе абсолютного поворотного энкодера?

kghq9za934md5ceo14bxovinlgy.jpeg

© Habrahabr.ru