Комментарии 20
Хабр почти торт.
Статья отличная, но как всегда чего то не хватило :)
Где подробности расчетов?) Откуда взяты значения углов? Как расчитать на иное кол-во шагов? Скрин из экселя это тоже огонь, но понятности что и к чему это не добавило ;)
Так же вызвали вопросы ваш поодсчет кол-ва шагов и последовательности.... у нас 5 разных значений повторяются 10 раз на круг? Тогда чегойта энкодер абсолютный?)
Разрешение энкодера составляет 6 градусов, то есть — 60 шагов (360/60 = 6 градусов). В ходе работы устройства получается последовательность [13, 3, 6, 2, 6, 13, 3, 6, 2, 6]. Шаг 13 соответствует 78 градусам.
Где подробности расчетов?
Нужно по ссылкам пощелкать. Там есть немного матана, но по английски.
[13, 3, 6, 2, 6, 13, 3, 6, 2, 6]
Это расстояния между точками, в которых меняется цвет.
Алгоритм их вычисления довольно нетривиален, с ним можно ознакомиться по приведённой автором ссылке.
Вообще, код Грея специально сконструирован так, чтобы он позволял определять абсолютное положение энкодера и был устойчив к дрожанию или неточному изготовлению шкалы. Это достигается благодаря тому, что каждый шаг энкодера меняет только один бит в считываемом двоичном коде.
Обычно это делается с помощью N дорожек, окрашенных наполовину чёрным и белым, и N датчиков, по одному на каждую дорожку. Здесь же весь код хитрым способом умещён в одну дорожку, а датчики стоят по окружности.
Спасибо за пояснения, про код Грея был не в курсе.
Здесь же весь код хитрым способом умещён в одну дорожку, а датчики стоят по окружности.
Видимо замечать ссылки - не мое, вот именно этого мне и не хватило для полного восторга от статьи :)
просто обалдеть
Спасибо! Очень круто! Искал как-то, но толкового материала не нашел, а тут все предельно ясно.
Часы "2 оттенка серого"
Мило! Жаль, что часики только на видео.
Для рисования подобных энкодеров есть удобный плагин для Inkscape
Идея интересная. Особенно когда требуется достаточно высокая точность определения положения при недостатке места по ширине кодовой полосы.
Существуют ли варианты с бОльшим количеством шагов? Например 360,720?
На сколько понял в зависимости от кол-ва детекторов. Все будет упираться на сколько точно они будут срабатывать.
Для высокого разрешения больше подходит классический энкодер на несколько дорожек. У кода Грея тут преимущество перед обычным двоичным кодом - секторы младшего разряда получаются вдвое шире. Промышленные энкодеры имеют разрешение в тысячи шагов.
А если совместить код Грея с энкодером? Получается как в видео с ключевыми кадрами.
да чаще уже за пару миллионов импульсов уходит :)
Код Грея вообще полезная вещь. Меня однажды выручил в борьбе с "гонкой фронтов" в электрической схеме
Абсолютный поворотный энкодер с однодорожечным кодом Грея