Как стать автором
Обновить

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

Время на прочтение11 мин
Количество просмотров30K
Всего голосов 102: ↑101 и ↓1+125
Комментарии122

Комментарии 122

Был изготовлен макет с мотором

офф Честно говоря я восхищен. Это не заводское? Коническая зубчатая пара, металлический корпус...

Хм, мишень из текстолита? не покоробит от влаги? что с балансировкой?

Мишени разные испытывали.
Вот сбалансированная из нержавейки:

Но в целом на малых скоростях данный энкодер способен заменить оптический энкодер

Спасибо за статью.

Насколько малых скоростях? Сотни оборотов в минуту, больше?
Хотелось бы видеть какие то таблицы измерений.

P.S. И, насколько изменяющаяся металлическая полоса в её ширине позволяет получить предполагаемую точность измерений полагаю соотносящююся с используемыми катушками индуктивности выполненных печатным способом.

В статье показан график шума на частоте 2 КГц.
Вы сами решаете подходит или нет.
Т.е. зная заданные обороты выбираете сколько точек на оборот хотите получить. Прикидываете какой там будет шум и соответственно точность. Если точность устраивает, то значит все получится.
Для 1500 оборотов в минуту, как у обычного асинхронного двигателя думаю 128 точек с 9-и битной точностью можно получить.

А проект потому и открытый чтобы заинтересованные сами его развивали.

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

может я конечно пропустил по тексту, но сразу не вижу какая максимальная скорость вращения? и максимальная скорость получения данных с энкодера тоже интересует. например у меня в руке робота двигатели по 4000об/мин вращаются и в них 17ти битные энкодеры позволяют отдавать данные до 2,5 миллионов точек в секунду (данные из мануала). скажем вы получаете 10 точек в секунду с энкодера, точное положение гарантировано, но если двигатель будет вращаться 10об/сек то каждая точка что вы будете получать будет одной и той же так как угол поворота вала будет одним и тем же при замерах данных. так что вопрос предельной скорости вращения важен. плюс на больших скоростях и малых скоростях сэмплирования точность упадёт. если у вас 15к точек в секунду, но на скорости 1об/сек вы получите 15к точек точность, а при 60об/сек (4000rpm) вы уже получаете 250 точек на оборот что довольно таки мало для точных девайсов (не для лифта, а для станка с чпу или руки робота)

Да все точно написали.
Для скоростных дивайсов с прецизионным позиционированием такой энкодер не подойдёт.
Однако в своей практике я не встречал мощных частотных приводов с ШИМ-ом больше 24 КГц.
Т.е. такому приводу даже на 4000об/мин не пригодятся отсчёты чаще чем 24 килосемпла в сек.
Данный энкодер способен давать до 150 килосемплов в сек. Насчет точности при этом не скажу. Не пробовал.

А каким интерфейсом можно считать "2,5 миллиона точек в секунду"? Инкрементник что ли? В двигателях постоянные времени в районе 500 - 2000 Гц, 2.5 МГц им не нужно. А большое разрешение нужно скорей для хорошей обратной связи по скорости особенно на низких скоростях вращения. И частота опроса больше частоты PWM двигателя не нужна в принципе.

Ого, круто что делитесь своими наработками с обществом. Полагаю, что конструкция тоже требует защиты от пыли?


Пыли может быть очень много. Энкодер на неё не реагирует.
А как будет работать механика в пыли вопрос к механике.

Немагнитной пыли?

Спасибо большое. Насколько я понял, этот энкодер позиционируется как "дешево и сердито". Не поделитесь, сколько у Вас BOM получился?

Это исследовательский проект и я не считал BOM поскольку реально не пытался минимизировать цену. Здесь и размер платы завышен и интерфейсы избыточные.
Но думаю 40-60 евро будет стоить при заказе 100 шт.

Коммуникация с модулем осуществляется по интерфейсам:

CAN, разъем X2

Какой протокол верхнего уровня используется?

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

А что с влиянием мощных электромагнитных полей, которые должны присутствовать при работе двигателей?

Вроде по принципу измерения влиять не должны, и в статье написали что проверили - не влияют.

Мощные электромагнитные поля конечно могут вывести из строя все что угодно.
Я проверял в полях обычных BLDC двигателей и неодимовых магнитов. Они не влияют.

Если речь о сильных помехах от коммутации силовых элементов, то полагаю что они могут исказить один или два отсчёта, но не более. Скорее такие помехи приведут к сбою на шине коммуникации с хостом или сбою самого хоста.

Ну-у-у, как сказать. Это по сути аналоговый датчик положения. Конечно если точность устраивает, почему бы и нет. А с другой стороны, есть же конструкции и чисто цифровые: Абсолютный поворотный энкодер с однодорожечным кодом Грея

Но есть же магнитные энкодеры, стоимость копеечная, габариты и обвязка минимальные. Тот же AS5600 из самых простых, за 150 рублей отдают: https://aliexpress.ru/item/1005001785138053.html

магнитные энкодеры постоянных полей боятся, в отличии от индуктивных датчиков.

Есть еще емкостные. К слову в поисках чего бы прикрутить подешевле на второй вал торчащий из движка наткнулся на amt102/amt103, выглядят аппетитно и относительно дешевые, как в работе - хз, как приедут буду мучать.

у механичеких и потенциометров живучесть под вопросом.


емкостные вроде обычно по размерам получаются больше индуктивных, то есть как у автора в квадратный сантиметр на плате можно более менее приличную индуктивность спокойно упихать + в глубь на несколько слоёв уйти можно, а с ёмкостью 1х1см да на 1мм расстояния до "мишени" будет 1пФ, что вполне сравнимо с паразитыми ёмкостями и работать будет так себе.


из подешевле ещё есть оптика tcut1300, из печатной платы можно диск сделать практически за бесплатно, только не с отверстиями как в мышке, а наоборот с медными дорожками, тонкий текстолит на 900нм достаточно прозрачный, ну и удавалось на 20мм диаметре нарисовать дорожек с расстоянием 0.8*3/4 под расстояние между оптопарами, так что sin/cos сигнал не прямоугольный, а плавный sin/cos с 5 градусов периодом, который ещё раз в 100 интерполировать можно.
если откалиброваться до 0.1 градуса повторяемости вполне получалось, но от температуры/влажности может и уплыть куда-нибудь.

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

Т.е. при проходе в одну и ту же точку с левой и с правой стороны будет показывать по разному.

Это больше на люфт в механике похоже.

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

вопрос в абсолютной точности.
у этого датчика диапазон измеряемых полей — 50мТ, магнитное поле Земли 50-100мкТл, то есть если повезёт, то уже 0.2/50 = 0.4% уход нуля просто от того, что мотор в пространстве, например, перевернули на 180 градусов.
плюс около железяк (корпус мотора) поле Земли в него ещё засосёт магнитной проницаемостью железа из окружающего пространства и может ещё раза в 2-3 тем самым усилить в районе датчика, хотя может и заэкранировать точно также.
а так конечно 12бит.

На сколько я понимаю, AS5600 устаревшая модель, сейчас есть AS5047P, у него 14 бит и 28 тыс. оборотов в минуту. Что до магнитного поля, не очень в этом разбираюсь, но специально сейчас проверил. Установил вместо штатного маленького крупный неодимовый магнит. Это не вызвало у AS5047P никаких затруднений, шум остался в пределах двух младших разрядов, двигатель успешно откалибровался и вошел в Closed Loop.

повторюсь про абсолютную точность.

Откуда вы знаете что у него абсолютное значение нуля при этом не ушло на градус? В большинстве случаев это никак не помешает, особенно если есть отдельный референс. 14 бит разрешения это конечно здорово, но если ноль может сам по себе на градус гулять, то толку от такого разрешения.

Есть у меня проект и с магнитным энкодером на TLI5012. Позже выложу.
Результат там был такой что размещение такого круглого магнитика как на фото выше в 10 см от энкодера который оснащался своим магнитом мог вызвать ошибку в один градус у энкодера.
А это уже неприемлемо было в моем случае. Плюс магниты еще сложней ставить и калибровать для задач точного позиционирования.

Да и на перекос механики одиночные магнитные энкодеры хуже реагируют. А как из них сделать взимо-компенсирующие группы как в случае с индуктивными слабо представляю.

Использую именно такие в своём проекте.

Рядом сервы и пара двигателей.

Полёт нормальный.

Отклонения, если и есть, - незаметные.

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

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

Там разрешение на оборот где-то на два порядка ниже, чем в промышленных энкодерах.

дело даже не в разрешении, а в точности и повторяемости

если при перемещении мыши на 15 см, выдаёца условно 205-255 отсчетов, то никакой дачтик перемещения из этого не сделать

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

Пользуем эти, неплохо себя показали.

Спасибо, интересный вариант.
Но первое что настораживает в даташите это такая фраза -
Some stepper motors may leak a magnetic field causing the AMT index pulse to not function properly (non-magnetic version available with 8 pulses per revolution)

А в технической презентации вот такая -
As the encoder rotates, an integral ASIC counts these line changes and also interpolates to find the position of the shaft and direction of rotation to create the standard quadrature outputs

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

Some stepper motors may leak a magnetic field causing the AMT index pulse to not function properly (non-magnetic version available with 8 pulses per revolution)

а что насторожило то? то что сигнал метки начала у них магнитный?

Т.е. используется не прямое измерение, а интерполяция.

и что?

Что означает продолжительное искажение данных после единичного сбойного измерения, вызванного скажем сильными наводками от сторонних переходных процессов.

это почему?

Да, странно что для более точных меток ёмкостная технология, а для более грубого измерения вдруг магнитный. Что помешало применить ту же ёмкостную технологию?

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

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

Определение относительного положения работает всегда идеально.

Единицы измерения поправьте: "мкг", "КГц"...

"24-е бита" буквенные окончания числительных используются только для порядковых значений, напр. "24-й бит".

Кстати делаем в Питере серийно индуктивные (для меня правильнее индукционные) энкодеры для приводов, по 17-19 бит (можем и 20-23 делать), многоборотные с работой от батарейки, с периодом обновления 10-14 мкс (можно и 600 нс сделать). Погрешность в районе пары угловых минут. А вариантов "открытых" довольно много. Кроме LDC1101 у TI, есть у Microchip - LX34050 и LX330x, у Renesas - ZMID520x и другие. А также уже лет 8 есть Кембриджские CAM204, CAM312 и др. Все с мануалами и примерами.

А вы кто? Где можно на вас подробнее посмотреть?

Не знаю насколько корректно рекламировать себя в чужих постах, и потребительский сектор (тем более в России) нам cовсем не интересен. Зовёмся Lenz Encoders. В общем имею десятилетний опыт в разработке угловых преобразователей и приводной техники с обратной связью. Могу ответить на любые вопросы. Из того что было выше: максимальная частота вращения у них такая, что вряд ли возможно её проверить. Могу сказать, что готов сделать 18 разрядный датчик на 40 000 об/сек (именно в сек). Способов уменьшения и контроля погрешности очень много. Мы делаем ~ 1-2 угл. минуты, потому что это можно получить дешево для нас и для заказчиков. Погрешность меньше минуты это прежде всего точная механика. Пока для нас это скорее хобби, но датчики успешно стоят (в небольших количествах) на производствах в Европе.

Спасибо! Очень интересно! Может и рекламироваться нельзя, но мне вот интересно - я раньше не встречал. 18 бит 40-1 это абсолютные? Вот то что на картинке он на каком принципе работает?

Делаем только абсолютные, можем делать многооборотные с запоминанием при выключении питания или со счетом оборотов от батарейки (50 мкА потребление). Принцип примерно такой что и у всех, только у нас датчики двухотсчетные, как у зеттлекса, но без всяких резонансов. Трансформаторы и электроника свои. Сердце всего G030. Если хотите больше разрядов или скорости то H730. Цена всего BOM сопоставима с LD1101. Интерфейс только BISS C, хотя можем сделать и другие если будет большая потребность. В следующем году будет BISS Line. К датчику можно подключить термистор, установить нулевое положение и направление вращения через BISS. Ну выполняем любые пожелания.

Как контролируют погрешность? Опять же Зеттлекс делает точность 2 секунды. Не разрешайку, а именно точность. Как такое вообще контролируется / калибруется?

Не делают они точность(верней погрешность) 2 секунды, там все очень близко к нам. 2 секунды мы тоже можем получить при желании, проблема только в механике, там будет каленка и 6 квалитет у деталей + допуски меньше 1 сотки на посадку. Мы каждый датчик калибруем и проверяем в автоматическом режиме. Эталон Renishaw Tonic с двумя головками + свои фильтры, эктраполяторы и компенсация. Теоретическая погрешность эталона 0,6-0,8 угл сек. Но нам и 5 достаточно, так что даже поверять не планируем, там явно меньше 2 угл сек.

Тот же Z..x говорит что несоосность им пофиг.

Я похоже уже экспертом по их продукции стал пока все прочитал :-)

Могу сказать что в даташите они заявляют 22 разряда с повторяемостью +-1, на деле там только 18 причем довольно медленных. А еще там есть дисклеймер, что за точность даташита Zettlex не несет ответственности. Несоосность влияет только на погрешность, монотонность при этом сохраняется.

Я вообще то радист и мне даже 18 бит с 96 дБ ДД выглядят не очень просто достижимыми, а 22 бита совсем за гранью реальности. Только в математике :-). Дисклеймер вот не видел.

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

Точнее чего?

аналогов Zettlex

к слову

О, суперррр. А нижние это кто?

нижние (слева) Netzer, в плане повторения кстати самый простой вариант, диск распечатать можно, платы довольно простые, даже на JLC можно сделать. Единственное схемотехника там не тривиальная в плане понимания, если не знать как работают схемы на переключающихся конденсаторах. Планирую (уже пол года как) выложить одноотсчетный пример с ротором на печатной плате. Пока никому не интересно было, да и сам занят

Хвала Хабру! Свел. Мне интересно :-) Я ЦОС знаю, и схемы на переключающихся конденсаторах видел - это аналог КИХ фильтра.

Тогда где то источник тактирования должен быть. Это ротор?

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

Да, влет понимание не приходит. Надо проводить мысленные эксперименты :-) Хотя в целом понятно, что источник V1 раскидываем через перезаряд С2 и С3.

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

По сути схема перекачки заряда с токовым усилением на операционнике

Я в сенсорах угла начинающий, поэтому сразу сделал макет Зеттлекса. Для понимания, что я верно разгадал буржуинскую тайну. И мне не понравилось что фаза гуляет. Точнее, что изменяется все - и фаза и амплитуда, хотя в этом включении должна меняться только амплитуда.

У Зеттлекса фаза очень стабильная, потому как ротор работает в резонансе и фаза там 90+-2° от фронтов (прямоугольных) возбуждения и в целом обрабатывать довольно просто, если знать, что делать. Основная проблема у Зеттлекса, что нужны экраны и проводящий корпус с достаточным отступом от обмоток. У них недавно вышел IncOder Core, и там как раз написано где металл нужен, а где нет. Да и под патентами он, повторить то можно, а продавать нет. Так что это больше для саморазвития.

Как тогда объяснить такое поведение сигналов с обмоток?

https://youtu.be/FSlEQSjqzU8

просто присутствует постоянная составляющая от возбуждения, которой быть не должно

кстати если знать что она постоянная, от неё всегда можно избавиться с помощью операции вычитания)

Я решил бороться с этим калибровкой. Принимать как есть, но учитывать это обстоятельство в самом конце. Да и принимать в квадратурах и синус и косинус сразу. Что бы знать их фазовый сдвиг. Потому что избавиться от наводок возбуждения скорее всего не получится.

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

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

Результаты реверса?
Микросхема в золоте интересная. Что это?

ага, Микроновский БМК))

Я правильно понимаю, что вы крутите свой датчик и сравниваете показания с Ренишоу? А потом создаете калибровочную таблицу? А какие есть способы уменьшения и контроля погрешности? Ну кроме усреднения :-)

У погрешности угла есть два интересных свойства: 1 её можно уменьшать до 0, зная характер погрешности, 2 погрешность датчика содержит в себе погрешность эталона. Допустим вы знаете что в вашем датчике приобрладают три гармоники погрешности: 1 - вызванная торцевым и радиальным биением, 8 - количество периодов точного отсчета и 32 - вызванная нелинейностью формы синусоид. Тогда вы можете снизить её до минимума имея два датчика, последовательно поворачивая один относительно другого на 180, 22.5 и 5.625 градусов соответственно и каждый раз вычитая из обоих полусумму получившейся погрешности для соответствующей сдвигу гармоники. Это может быть табличный метод или просто описания амплитуд и фаз этих гармоник. Но если вы не знаете характер, то вам нужно иметь эталон в 3 раза точнее того, что вы в итоге хотите получить. У нас по техпроцессу необходим функциональный контроль в первую очередь для отбраковки плат. Он автоматизирован и совмещен с калбировкой.

А вот такой вопрос. Как жить без образцового датчика угла? Причем желательно такой как Ренишоу или точнее. Мне пока на ум приходят две идеи как сделать стенд калибровки. В общем нужно получить точный образцовый угол с которым сравнивать то, что покажет испытуемый датчик.

1. Сделать карусель большого диаметра, на внешнем диаметре установить шаговый двигатель с маленьким колесиком, которым крутить через это большое коромысло ось, на которой сидит испытуемый датчик. Тогда получаем эдакий редуктор, который крутит шаговый двигатель. Шаговик относительно точен, обычно 200 шагов на оборот. За счет того что маленьким колесиком обкатываем большой диаметр можно получить некоторую разрешающую способность и равномерность. Но есть нюанс - а если будет проскальзывать маленькое колесико привода?

  1. Использовать равномерно вращающийся маховик. Своей массой он будет интегрировать неравномерность движения. Зная точную скорость вращения, и период взятия отсчетов можно вычислить какой угол между отсчетами. Кстати в качестве маховика можно использовать синхронный двигатель, например колесо гироскутера. Вращаем его магнитным полем, скорость которого задается от кварцевого резонатора, а значит она все время постоянна и мы ее точно знаем, как и положение векторов поля. Период взятия отсчетов тоже известен, так что остается только сравнить то что покажет испытуемый датчик с расчетными величинами.

Что скажете?

НЛО прилетело и опубликовало эту надпись здесь

Пойдет конечно. Но разговор идёт об углах в доли секунды. Хотелось бы что то более точное

Кстати работал с гониометром с теоретической погрешностью в 0.12 угл сек, аттестован был на 0.2 (на приличный диапозон скоростей кстати). К слову этало угла в России 0.06...0.08(возможно что-то поменялось). Так вот там воздушные подшипники 5й квалитет на всем, что можно, большая инерционная масса, несколько специальных датичков, куча математики, развязанный фундамент и допуск на переменность температуры(как и влажность) несколько десятых градуса. Стоило это все больше 10 млн рублей еще когда доллар был по "30". Если есть желание сделать еще точнее, могу огранизовать)))

Скажу, что в первом случае придется учитывать погрешность редуктора и шагового двигателя, а во втором время преобразования/передачи и пульсации скорости. Если вы можете все это определить и вас это устраивает, то почему бы и нет.

Второй вариант мне больше нравится. Там минимум механики - сделать просто. Пульсации должен маховик убрать. Если после раскрутки ток оставить небольшой, только на преодоление трения, то теоретически должно быть гладкое вращение. Опять же, ток на моторе синусоидальный, гладенький

Если вам этого достаточно, сможете так и записать: погрешность - мягкая и гладенькая угл. сек. Я написал два способа математических. Маховик кстати один из вариантов уменьшения погрешности измерения, но привязка к эталону все равно должна быть, даже если это метка в 360° как сказали выше. Дальше раскручиваем маховик, берем второй датчик с меткой 360, поворачиваем на 180 (гармоика погрешности квантования), измеряем погрешность установки по интегрированию скорости, записываем и учитываем дальше и так до бесконечности. Теодолиты и ОДГ у нас до сих пор применяют, так что почему бы и нет.

:-) Справедливое замечание.

Безусловно нужно контролировать скорость вращения. Это тоже можно сделать очень точно - частотомером и меткой.

У меня есть автоколлиматор АК-0,25. Он конечно хоть и с помойки, но думаю измерительных свойств не потерял.

Спасибо за подсказку про теодолит. Посчитал тангенсы. Получается не очень приятное. Если взять лазерную указку и посветить на расстояние 1 км, потом повернуть ее на 1 секунду, то пятнышко переместится всего на 4,8 мм. Есть подозрение, что даже и повернуть то не так просто на 1". Действительно какой то воздушный или магнитный подвес надо, что б упругость рычага не влияла. Да и рычаг какой то стеклянный что ли.

Короче я прикупил теодолит 2Т5К на барахолке. Думаю точнее "на коленке" я ничем уже малый угол не измерю. :-)

Кстати посмотрел видосы про теодолиты - так похоже в современных теодолитах какие то подобные датчики угла стоят, потму что оптических шкал уже нет, а все показания сразу на ЖК дисплее показываются.

Могу дать еще одну наводящую подсказку: для поверки(верней проверки) своих датчиков на 17 разрядов и 1-2 угл минут мы производим около 2 млн измерений + столько же на калбировку. Теперь представьте сколько уйдет времени на измерения теодолитом.

положение пятна (его "центра масс") от лазерной указки на матрице любой вебкамеры со снятым объективом вычисляется с субмикронным разрешением.

Здравствуйте! Не подскажете хороший материал где почитать про принцип действия подобных конструкций?
Не общими словами, типа как работает LVDT или RVDT, а более конкретными.
Хочется немного погрузиться в тему с технической стороны.

Может все таки лучше в сторону резольверов посмотреть, там потенциал побольше будет :)

Мдауж вот это уровень. Уровень тот к которому я наверно хочу придти) Ну знание всего и вся, разводка плат, досканально электронику, программирование под винду, программирование мк) Да еще и такой уровень инженерии. Новаторство по сути.
Тоже планировал написать на хабре статью первую, там конечно детский лепет по сравнению с этим.

Спасибо хороший источник для сравнения разных технологий

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

Ого. Интересная микросхемка. Но у Zettlex не она. У них мишень тоже в виде платы, а Ренессанс железяку предлагает использовать

Если присмотреться у Zettlex не на всех платах мишеней некий хитрый рисунок, там и простая решетка используется. И не сплошное покрытие медью скорее всего только для того чтобы платы не коробились при изменение температуры.
Технологию то они срисовали один в один из даташита Renesas. А склонировать микросхему конечно можно.

Тут надо заметить что LDC1101 кроме того может замерить и сопротивление материала. Эт тоже можно использовать для уточнения результатов.

склонировать то склонировали, только Renesas делает датчики года 3, а Zettlex уже почти 20)))

Статья Zettlex про сравнение их технологии с другими вышла в 2019 году.
Так что я не знаю что они делали предыдущие годы. )))
Хотя не буду отрицать что Renesas стал выпускать такие чипы по их просьбе.

у спецмикросхем для lvdt какой-то неприлично конский ценник, хотя там и обычный МК вполне справляется своей периферией.

статор с тремя обмотками, снаружи - первичная, внутри sin/cos, ротор - полукруг из меди на плате, по ВЧ такой "сердечник" наоборот экранирует.
статор с тремя обмотками, снаружи - первичная, внутри sin/cos, ротор - полукруг из меди на плате, по ВЧ такой "сердечник" наоборот экранирует.

из-за расположения приёмных катушек на разных слоях всё получается несколько криво и угол надо дополнительно потом л.инеаризировать, да и сигналы миливольтовые, но как-то работает

У нас кстати сигналы ~150 мВ, при том что имеет полное экранирование: на высоте 2 мм сплошной полигон меди и у ротора и у статора. И нелинейность она только в голове, в плане её всегда можно вычесть. Куда важнее повторяемость.

тут размер < 20mm

но на таких размерах речи о погрешности менее 0.3 градуса не идет, хотя 16 разрядов с повторяемостью +-2 кванта получится, амплитуда сигналов ~ 100 мВ

Я в процессе изучения всяких технологий пробовал индуктосин из учебника нарисовать - там тоже сигналы милливольтные.

https://photos.app.goo.gl/TZXv31hXDA7vNH4z7

Там ничего нет про чипы.
Думаю вопрос остался открытым кто раньше стал делать чипы.

Но да, признаю что первенство самой технологии за Zettlex

да в чипах нет ничего сложного, возбуждение два транзистора, усилитель на входе, амплитудный детектор двух каналов, либо синхронный УВХ, дальше АЦП и SinCos (читай арктангенс) преобразователь, вот и все. Они друг с другом не конкурируют, потому как Zettlex точнее, а остальные разработаны для автомобильной техники. Хотя пару патентов Zettlex они нарушают: первый на "круглый" индуктивный датчик угла)))))), второй на индуктивный преобразователь с металлическими "мишенями". Но думаю пока нет конкурентных аналогов (либо есть договор с Zettlex), проблем нет.

Прямоугольниками что ли возбуждают?

если АЦП от него же и тактировать, то почему бы и нет.

В букварях про СКВТ пишут что там гармоники точность понижают. А если мы сигналом с гармошками сразу накачиваем, то они ж и сложиться могут там где не нужно.

сэмплировать надо там где нужно, а если и сложатся, то эту "нелинейность" по углу потом полечить можно постобработкой.

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

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

на картинке выше энкодер абсолютный, 1 период/оборот.

Не обязательно. Если на одной оси два нечетных период/оборота, например 3 и 8, то по соотношению сигналов можно определить абсолютный угол.

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

А. Я вот еще что делал с целью погружения в тему.

https://photos.app.goo.gl/6gJU1sNU3P16eDpi8

Это контроллер СКВТ в амплитудном включении. (в фазовом тож делал). Так вот, Zettlex работает не так. В классическом СКВТ фаза синуса и косинуса стоит на месте, а там она прилично шевелится. Градусов на 10-15 на глаз. А это значит, что обычным фазочувствительным выпрямителем не обойтись.

Как можно эффективно начертить диск энкодера, если там 500+ окон?
Это же замучится можно вычерчивая мышкой каждое окно.

В 3D CAD-ах есть команда радиального копирования. Рисуется один зубец, и даётся одна команда копирования

Есть ли вариант нарисовать это в еще как-то? В какой-нибудь бесплатной рисовалке.

Возможности бесплатных я плохо знаю. Но радиальное копирование издавна было во всех чертёжных программах. Даже в Altium-е оно есть.

В OpenSCAD можно написать цикл.

Вам на плоскости надо или в 3D? На плоскости я обычно пишу SVG или PostScript, смотря что хочу получить. Для 3D - OpenSCAD, но у меня редко такие задачи бывают.

Пока это самое простое.
Но только количество зубцов не предсказуемое получается.
https://www.youtube.com/watch?v=TBu9EZhWAeM

solvespace

тут наверное поискать надо рисовалку которая так делать не умеет

можно вообще открыть в браузере easyEDA редактор плат и нарисовать в нём, он тоже умеет делать "array clone".

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории