Рано или поздно в жизни каждого самоделкина возникает потребность в покупке чего-то такого этакого, что обычно само в голову не придет. Вот и я жил себе спокойно и об энкодерах даже не задумывался.
Хотя должен признаться опыт работы с энкодерами имел. Как-то в одной и поделок использовал энкодер из принтера.
В данной истории все приключилось внезапно. Ползая по своим хоббийным форумам натолкнулся на конкурс. Сайт (называть не буду, т.к. разговор не о нем) проводил видимо раскрутку посещаемости и плюс один из форумчан проводил раскрутку своих российского производства изделий. И разыгрывался комплект из 3 наборов для самостоятельной сборки сервоконтроллеров. Я зарегистрировался на этом форуме, подал заявку (вместе с 3 или 4-мя всего лишь участниками) и… выиграл.
Так я стал обладателем 3-х наборов для сборки сервоконтроллеров. Далее мне потребовались энкодеры. Позволю себе объяснить для читателей не так глубоко погруженных в электронные компоненты, что такое сервоконтроллер, энкодер и с чем все это едят.
Есть 2 основных способа управлять точным перемещением в изделиях с ЧПУ (числовое программное управление). Попробую объяснить максимально доступным языком, без сложных схем и терминов.
Первый способ это шаговые двигатели. Шаговый двигатель имеет сложное устройство — несколько катушек, притягивающих сердечник в заданных положениях.
Количество положений, в которых может быть зафиксирован сердечник называется шагами, промежуточные положения (регулируются различными промежуточными напряжениями и соответственно магнитными полями) называют микрошагами. Управляет шаговым двигателем драйвер — это плата управления, как правило с микропереключателями шагов и регулировкой тока, протекающего через двигатель. На вход драйвера подаются сигналы: Enable (разрешить работу шагового двигателя), DIR (направление вращения), STEP (количество шагов, на которое двигателю необходимо повернуть вал). И драйвер переводит команды в обороты вала двигателя. Очень простая и надежная конструкция. Из минусов — скорость вращения двигателя ограничена из-за его конструктива, и если двигатель пропустит по той или иной причине шаги, то управляющая программа об этом не узнает. Отсюда и область применения — низко и среднескоростные двигатели в заданной области нагрузок. Например 3Д принтер или хоббийные станки.
Второй способ управлять перемещениями — сервомотор. Мотор сам по себе может быть любым, постоянного или переменного тока, без разницы. Единственное условие, его вал должен иметь энкодер. Энкодер — это устройство определения позиции вала в данный момент времени. Об энкодерах мы поговорим подробнее чуть позже. Сервоконтроллер имеет другой принцип работы, в отличии от драйвера шагового двигателя. Сервоконтроллер получает на входе те же самые сигналы Enable, STEP, DIR и подает на двигатель напряжение. Двигатель начинает вращаться в нужном направлении, энкодер возвращает данные о положении вала двигателя. Как нужное положение достигается, вал двигателя в нем фиксируется. Конечно это сильно упрощено, т.к. есть ускорение и торможение двигателя, управление током и напряжением, пропорционально-интегрально-дифференцирующий (ПИД) регулятор в контуре обратной связи,… но мы же договорились в этот раз не сильно лезть в теорию.
Какие же плюсы серводвигателей: любая скорость вращения, отсутствие пропуска шагов, бесшумность (шаговый двигатель ощутимо громок в работе из-за своего конструктива). Но цена сервоконтроллеров выше и существенно драйверов шаговых двигателей. Поэтому основная ниша сервоконтроллеров — профессиональное применение.
Для своего проекта я выбрал двигатели Динамо Сливен. Эти двигатели широко использовались в советское время в ЭВМ и их было какое-то нереально большое количество. Кажется, что практически любой хоббийщик или имеет такой двигатель или сталкивался с ним. На барахолках их до сих пор перепродают. Это двигатели постоянного тока с фантастическим неубиваемым ресурсом и устойчивостью к любым издевательствам.
В качестве сервоконтроллера я использовал выигранную плату. Она представляет собой развитие open source сервоконтроллера, известного под устойчивым брендом «сервоконтроллер Чена» — по имени китайца, году так в 2004-м, если не ошибаюсь, предложившим данную схему.
Теперь уже практически переходим сути обзора — к энкодерам. Выбор энкодера был осуществлен по характеристикам и цене. Какие бывают типы энкодеров. В основном это оптические и магнитные. Магнитные — когда на краях диска закреплены магниты, а возле них находится датчик Холла.
Решение дорогое, промышленное, обладает повышенной надежностью. Цена не хоббийная ни разу.
Оптические энкодеры. Самое распространенное решение. Есть в каждой мышке. Раньше отвечали за вращение шарика и колесика. Теперь шариков уже нет, а вот колесики остались. Принцип работы прост — прерывание светового пучка проходящим непрозрачным телом.
Оптические энкодеры есть 2-х типов: инкрементальные и абсолютные. Инкрементальные делятся на 2 подтипа. Простейшие инкрементальные — такие как изображены на рисунке выше. Они определяют пересечение светового потока и на их основе можно построить, например, тахометр. Недостаток данного энкодера состоит в том, что при помощи него невозможно определить направление вращения диска. Инкрементальные 2-х канальные решают задачу определения направления вращения диска.
Для этого используется не один фотодиод, а несколько, обычно 4. Они формируют 2 независимых канала передачи данных, и сравнивая сигналы с этих каналов можно однозначно сделать вывод о направлении вращения диска.
Какие же недостатки есть у данного инкрементального энкодера? Недостаток один, но для ряда применений он критичный. При инициализации энкодера мы не знаем в каком положении находится диск. Т.е. мы можем узнать только направление и скорость вращения диска.
Для получения полной информации, а именно — начальное положение диска, направление и скорость вращения используются абсолютные энкодеры.
Абсолютные энкодеры используют диск со сложной системой кодировки положения. Наиболее распространен код Грея — двоичная кодировка с защитой от ошибок.
Я остановил свой выбор на инкрементальном энкодере с контролем направления вращения, т.е. с двумя квадратурными каналами вывода информации. Разрешения в 100 линий на оборот диска мне было за глаза. Поэтому на Алиэкспрессе я нашел энкодеры за разумную цену и с нужными мне характеристиками.
Вот фотка 3-х пришедших мне энкодеров. Дошли они недели за 3.
У энкодеров 4 вывода, Красный — питание 5В, Черный — земля, Цветные — каналы А и В.
Я быстренько выточил втулочку на вал двигателя под крепление диска, ввинтил туда стержень с резьбой.
На 3Д принтере распечатал площадку под крепление датчика энкодера
Собрал все вместе
Подключил сервоконтроллер, и… тут бы был счастливый конец обзору, но нет. Ничего не заработало. Даже близко ничего не заработало.
Подключил осциллограф и понял, что никаких квадратурных сигналов на выходе нет, только шумы, наводки и непонятные выплески. Грешил я на все на свете. И на требовательность к позиционированию, и на засветку, и на наводки электромагнитные. И часами аккуратно возюкал датчик в разных положениях, выключал свет и пытался проделать все тоже самое в темное. «Крокодил не ловится, не растет кокос.» Разумеется я перепробовал все 3 энкодера. Везде тоже самое. И тут меня дернуло поразглядывать датчик в микроскоп.
То что я увидел повергло меня в изумление. Все 4 сенсора стояли в ряд по радиусу диска, т.е. засвечивались через прорезь диска одновременно. Разумеется ничего не работало. Датчики должны стоять перпендикулярно радиусу диска, и засвечиваться последовательно разными фронтами прорези диска. Я не мог поверить, что это так просто и так глупо. Китайцы поставили датчик с поворотом на 90 градусов. Я спросил на форуме у такого же как я покупателя таких же энкодеров как у него стоит датчик. И у него все было также неправильно и не работало.
Почесав в затылке я решил попробовать это дело исправить. Энкодер разобрался легко, при помощи фена расплавил термоклей и достал внутренности.
Поднес датчик к диску так чтобы сенсоры был поперек рисок. Конечно датчик корректно не встал, но на осциллографе начал появляться какой-то осмысленный сигнал.
Дальше разрезал корпус энкодера сбоку, наростил проводочками расстояние между светодиодом и матрицей сенсоров и засунул все в корпус по-новому.
На фото видно, что сенсоры стали перпендикулярно радиусу диска.
Собрал, подключил к сервоконтроллеру и… Бинго, все заработало! Мотор встал в режим удержания позиции. Т.е. при попытке проворота вала двигателя, мотор упирается и если его все же провернуть, то возвращается в исходное положение.
Ну а дальше двигатель займет свое место на фрезерном станке, но это уже совсем другая история...:-)
Как резюме. Энкодер из коробки не работает. К покупке не рекомендую. Но в своей ценовой категории, если он был бы исправным, это хорошее бюджетное решение. Либо если переделка изделия в работающее не пугает, то можно брать и переделывать.
У продавца куча положительных отзывов на такой энкодер. Либо это все липа, либо, что вероятнее, брак пошел массово совсем недавно.
Я написал продавцу, он пока шлет мне тонну технических описаний и предлагает попробовать еще, и намекает, что это я не разобрался. Буду на него давить. Пусть хоть часть денег вернет. Я столько времени угрохал из-за их заводского разгильдяйства.
Всем добра и удовольствия от хобби!
Плюс в карму.
вечная мышка изготовителю не выгодна
просто в дорогих мышках обычно электроника хорошая и бренд+реклама
Ищи по фразе «mouse encoder KAILH».
Где вы в 2016 году взяли механических мышей, да еще и горячо обсуждаете их ремонт?
Или меня в прошлое забросило?
ТС,
вопрос, неужели шаговик пропускает шаги, что приходится энкодер использовать? Шагами нельзя углы считать ?Разобрался. А обороты у вашего двигателя какие? Энкодер считать то успевает?Частота вращения двигателя — до 6000 тыс об/мин, т.е. до 100 об/сек. 4 датчика с 2 фронтами сигнала умножить на 50 оборотов — 800 событий в секунду. Так что все будет успевать обсчитываться.
Частота вращения двигателя — до 6000 тыс об/мин, т.е. до 100 об/сек. 2 квадратурных канала с 2 фронтами сигнала умножить на 100 оборотов в секунду и 100 линий диска — 40 тыс. событий в секунду. Так что все будет успевать обсчитываться.
Можно будет потестировать кстати. Когда руки дойдут отпишусь.
Только коробят «хоббийщики», «хоббийная». Есть же нормальные слова, например — «любители», «любительская».
В мыше есть колесико. Датчик. Вперед назад определяет…
Вы сами бы прочитали бы.
Ну ладно, попробуйте тогда посчитать, сколько отсчётов у энкодера в вашей мышке. В моей — примерно 15-20, по ощущениям. Автору «100 — за глаза», но сомневаюсь, что хватило бы 15-20.
для этого нужен диск с кодом грея
в мышке просто 2 фотодиода для определения направления вращения
откуда тут взялся код грея?
в мышке ровно тоже самое, что является основным предметом обзора.
Так что нужно было найти мышку, посмотреть какой сигнал у нее на выходе, найти где находится компаратор, отдельно или в составе специализированной микросхемы, и все это выдрать, сделать корпус, возможно припаять компаратор и т.д. Я решил упростить себе жизнь и купить готовые энкодеры.
Путь с выдернутым датчиком из принтера я проходил. Вот плата, которую пришлось спаять возле выдранного из принтера датчика, чтобы на выходе был сигнал в нужном мне виде. На фото слева, там на обороте еще пара микросхем притаилась.
У других продавцов (в т.ч. на Ebay), где видно расположение сенсоров, они расположены так же.
Видимо есть способ заставить работать датчик без его переделки. Например, под углом поставить.
вон там внизу фотка с более правильным диском
вот фота самого сенсора в БОЛЬШОМ размере
Может прод. просто с дисками напутал?
Я привязывался к конфигурации комплектного диска с обычными прорезями и своей матрицы фотодиодов в один ряд по 4 штуки.
«Трехканальный энкодер содержит (рис. 3.6):
— два канала измерения положения ротора A и B, затемненные участки кото-
рых сдвинуты на 90°,
— канал определения начального положения ротора 0.»
Три светодиода- три (3) фотодиода. Что из этого можно извлечь: далее по тексту
«Это однозначно» Да, про абсолютные автор статьи не в курсе, нам оно и не надо.
Основной посыл — схем подключения много. И количество датчиков зависит от схемы подключения. Чем больше датчиков, тем помехозащищеннее решение.
Corel — струйник — пленка. Для увеличения оптической плотности печатаем зеркально и склеиваем рисунком внутрь. И не надо ломать датчик.
Но Вы опять не прочитали текст над картинкой. Помехозащищенность не при чем.
«Выходной сигнал имеет два канала, что позволяет определять направление вращения.»
ra4hmf.narod.ru/FILES/GRAYCODE/graycode.html
+
А у меня вот такой.
Если интересно, то вот ссылка на форум по данному сервоконтроллеру.
Экономия налицо. Сервы лучше чем ШД.
А тут ещё и дешевле выходит.
Что за токарник?
Очень вкусная тема, но моих знаний в электронике совсем недостаточно.
Мне кажется моих знаний мягко говоря будет недостаточно для самостоятельной сборки
Где-то я уже читал про подобное:
«Вчера правительственная комиссия по расследованию аварии ракеты-носителя “Протон-М» подтвердила, что причиной ЧП послужила неправильная установка трех из шести датчиков угловой скорости с недопустимым разворотом на 180 градусов. Это сказалось на получении системой управления ракеты некорректных данных о ее ориентации. Об этом сообщил руководитель комиссии, заместитель главы Роскосмоса Александр Лопатин, по словам которого такие технические нарушения могли произойти только из-за «применения физической силы» при установке датчиков, поскольку сами они были полностью исправны.
Подробнее: www.kommersant.ru/doc/2248968
Все новостные программы показали старт «Протона» 2 июля 2013 года.
Thanks a lot for the review and comments!
I've just spent a few hours struggling with this Chinese sensor and no luck either.
I saw the sensors with a good magnifying glass and realised what you reported… and I got very confused.
After finding this post, everything makes sense now!
Cheers!
P.S.: I used google translate to understand this page.
Кодируют и раскодируют. Как-то так.
Разработчик обновил прошивку. Теперь уже на 5 ку вышли.
И продолжает его улучшать.
Сейчас просто уникальная ситуация, разработчики серв встретились в одно время.
Раньше они не могли со стыковаться. То одного не было, то как раз другого.
И изначальный, начал баги править и новую прошивку выложил.
Зовет всех тестить.
Скоро думаю, он сделает прошивку под все модификации, то есть на разных МК.
Придет настроение — попробую новую прошивку.
У вас ведь до конца так и не доведено.
Отладит и опять исчезнет по своим делам.
Так что пользуйтесь возможностью, задать ему свои вопросы.