Хочу начать цикл статей о своих разработках и обзоре аналогичных решений на мировом рынке. Основное направление - датчики угла, в частности, индукционные, способы взаимодействия с ними, а так же применении в современных электроприводах.  Я 11 лет занимаюсь разработкой датчиков угла а также систем позиционирования, основная часть изделий применяется в военной и промышленной технике, есть несколько патентов по кодированию в фотоэлектрических преобразователях, работал с самой точной в России гониометрической установкой, разрабатывал ASIC(БМК Миэт/Микрон), системы контроля погрешности порядка 0.5 угл. сек. В данной статье речь пойдет об индукционном (называть буду именно индукционным или же индуктосины по названию патента, потому что в российской теории принято называть преобразователь по типу первичного сигнала, в таких преобразователях при вращении изменяется электромагнитная индукция, а не индуктивность, которая в общем-то постоянная. В западной теории же используется "iductive encoders" те индуктивные преобразователи) преобразователе, собранном буквально на коленке в Тбилиси. Хотя эти коленки включают довольно точный вращающийся привод с двумя датчиками Renishaw Tonic, контроллер ELMO GDCWHI, кросс плату с ПЛИС Max X, топовый анализатор Saleae PRO 16, а так же минимальный запас компонентов, фен, паяльник, программатор, тестер-пинцет и тп. Собственно это минимальный список того, чтобы разрабатывать подобные датчики и оценивать функциональные параметры и можно уместить в рюкзаке. Сравнивать буду с современными аналогами прежде всего состоящими из двух плат ну и подобных по габаритам и функциональному назначению. Это емкостные энкодеры Netzer серии VLx(M, H, P, X), магнитные - Renishaw RLS Aksim2, индуктивные(в оригинале) - Flux IND-ROT, Heidenhain KCI/KBI, а так же Zettlex, российские Kubo и СКБИС. Сравнение будет сделано по описанию и на доступном на моей коленке оборудовании. Кстати, если вы хотите проверить купленные энкодеры из списка выше, я готов сделать это, оставив их у себя. В данное время я безработный и нахожусь в поиске интересных проектов, так что буду рассказывать основное устройство, способы взаимодействия и применения, оценки и контроля погрешности и динамических характеристик. Ключевые моменты разработки будут скрыты или намеренно искажены. В процессе разработки данного преобразователя на самом деле было заказано несколько (сотен) плат. Пару лет назад на Хабре была статья Открытый проект индуктивного абсолютного энкодера. На тот момент я уже разработал с десяток преобразователей для применений в военной и космической технике, а так же промышленных приводов. И хотел написать про это статью.  Вот время и пришло. Разрабатывал я фотоэлектрические преобразователи (категории ВП), емкостные аналоги Netzer, аналоги Zettlex, а так же прецизионные аналого-цифровые преобразователи для вращающихся трансформаторов. Так же работал с аналоговыми индуктивными преобразователями для Automotive ASIL D Steer by Wire, потому как разрабатывал одну из таких систем. Собственно в текущий момент хотел бы заняться собственными изделиями, поэтому сформируем основной список требований: датчик можно полностью изготовить на контрактном производстве в Китае на нем можно реализовать многооборотный счетчик с питанием от батарейки его можно применять в серийных промышленных высоковольтных приводах 220/380 В датчик должен контролировать/оценивать свою максимальную погрешность, а так же хотелось бы продолжить работу в сторону функциональной безопасности уровня SIL2 и SIL3 датчик должен легко масштабироваться в любой типоразмер Под эти требования в целом подходят 3 современных энкодера: Netzer VLx, RLS Aksim2 и Flux IND-ROT. Емкостные датчики не особо любят высоковольтные приводы в виду больших помех и обязательного заземления корпуса, которое в таких приводах в принципе не допускается. Магнитные - используют диски, которые могут быть необратимо повреждены внешним магнитным полем, что не очень вяжется с функциональной безопасностью. Индукционные довольно интересны, потому что имеют простой ротор, который в принципе можно изготовить на печатной плате, керамическом диске на оксиде алюминия, напечатать SLM из нержавеющей стали или алюминия или же отфрезеровать - в зависимости от требований. К тому в последнее время появилось много микросхем для построения таких преобразователей уровня SIL2, ASIL C. Одну из таких микросхем от компании Renesas - IPS2200 и будем использовать. Микроконтроллер возьму народный STM32G431, так как имеются версии до +125°(SIL3 required), он доступный, имеется библиотека построения SIL2/SIL3 систем и ну и лично я с ним довольно много работал. Из интерфейсов есть только широко-применяемый открытый с малым откликом двухсторонний BISS C, к тому же на нем также возможно построение систем уровня SIL2 и SIL3 (BISS Safety). Еще несколько деталей.Для возможности многооборотного режима нужно предусмотреть питание от батарейки, с возможностью работать в режиме счета оборотов с частотой обновления кода 50-1000 Гц с потреблением в районе 40 мкА - с расчетом 4 года от одной ER14250 батарейки. Для этого нужно предусмотреть свой датчик на рассыпухе, а так же выбрать комплектующие с суммарным потреблением в режиме ожидания 5-10 мкА. Так же нужно предусмотреть подключение батареи к внешнему разъему и измерения напряжения питания и самой батареи микроконтроллером. Так как датчик планируется продавать на международном рынке, он не должен использовать отличительные признаки других преобразователей (не нарушать патенты), а так же иметь собственные отличительные признаки - в целом достаточно, что таких же по характеристикам, внешнему виду и типу преобразования в принципе не существует. Хоть и решил делать аналог Flux IND, но стремиться будем "заместить" Renishaw RLS Aksym2, потому что они более популярны и чаще применяются, так что размеры буду выбирать такие, чтобы с готового привода можно было снять RLS MB064, установить мой датчик и продолжить работу/тестирование, потому как это удобно. Так же у RLS самый компактный энкодер OD Stator - ID Rotor, и повторить такие же габариты это некий вызов (потому что могу). Фактически мной написан автоматический генератор обмоток статора и рисунка ротора, так что масштабировать данный преобразователь можно в абсолютно любой размер(в пределах минимального ODS - IDR = 34 мм).  Основным производителями индукционных преобразователей являются:  Zettlex - Кембриджская фирма, производитель энкодеров с резонансным контуром в роторе, один из первых преобразователей, имеют два отсчета расположенных на разных слоях друг под другом CambridgeIC - производитель микросхем для энкодеров с резонансным контуром в роторе CamEncoders  - еще одна фирма - производитель энкодеров на печатных платах трансформаторного типа - индуктосинов. Как можно понять, все три фирмы пошли из Кембриджского университета Heidenhain - один из крупнейших мировых производителей энкодеров, выпускает энкодеры KCI/KBI для электроприводов. Основаны на роторах с металлическими дорожками и токах Фуко, имеют два отсчета, радиально разнесенных друг от друга Flux - появился недавно, имеет ротор с периодическими металлическими площадками, грубый отсчет основан на модуляции зазора между этими площадками А так же отечественные Kubo, СКБИС ИА2128А, ИДМ ИДП 115, Инелсо Ферзь - которые являются импортозамещением Zettlex, по видимому для военной техники (хотя их и нет в перечне ЕКБ). Различные Lenord+Bauer VarioCoder и Gel, Fenac FNC ASI 75, Posics и другие Если интересна подробная статья об устройстве данных преобразователей, плюсах и минусах, голосуйте и комментируйте. Сейчас же я немного остановлюсь на устройстве выбранном преобразователя от австрийской фирмы Flux. Устройство данного преобразователя описано в патенте EP3779369A1. Точный отсчет выполнен в виде однодорожечной периодической шкалы. Грубый отсчет может выполняться за счет аналоговой модуляции промежутков между элементами точного отсчета, а так же в виде цифрового кодирования различными промежутками. Данный преобразователь имеет 52 элемента на роторе с тремя периодами на оборот аналоговой модуляцией промежутков (насколько я понимаю). Попробуем повторить аналогичную структуру. Так как конкретного преобразователя у меня нет, я без понятия как выполнены обмотки, так что будем придумывать по ходу. Уже несколько лет на рынке автомобильных микросхем появились индукционные преобразователи угла для замены резолверов в основном приводе, а так же в руле/рулевой рейке. Среди них есть основные три: Renesas IPS2550, а так же IPS2200 для промышленного применения Microchip LX34070 - крайне перспективная и дешевая микросхема, с отпускной ценой при покупке нормоупаковки - 70 центов за штуку AMS AS5715R - аналог IPS2550 как по функциям так и по цене Для меня было важно, чтобы микросхема имела возможность питаться от 3.3 В - которые можно отключать. А так же возможность программирования от пинов микроконтроллера. Под эти параметры подходит только Renesas. Так как IPS2550 и IPS2200 фактически одинаковые, с одним отличием IPS2550 automotive, а IPS2200 - промышленная. Заложил на будущее IPS2200, но купил IPS2550, потому что они были доступны. Еще один плюс для использования Renesas - большая библиотека с примерами, открытые мануалы, калькуляторы расчета обмоток, а так же описанием принципов построения этих обмоток. Недолго думая берем похожий размер, переделываем под 52 периода и в продакшен. Неиспользуемый сектор сверху при этом убираем за ненадобностью (зачем он есть у Flux я не знаю). С устройством определились, с компонентами тоже. Прикидываем сигналы в знакомой программе. Три вывода для слева сверху, для питания лампочки. Вывод TIM2_ETR для таймера сброса BISS C. ADC2_12 для измерения напряжения питания. Напряжение батарейки будет измеряться через Vbat/Vref. Остальные выводы АЦП включены дифференциально. Корпус выбран исключительно из-за наличия четырех отдельных дифференциальных входов АЦП. Рисуем схему, разводим, заказываем на известной площадке. Получаем готовые платы. Осталось напаять пару микросхем, которых нет в наличие на китайском складе. Маленькая фишка. Пружинные JTAG можно использовать без третьего штифта, который был предусмотрительно вырван перед отладкой. На самом первом фото как раз виден процесс отладки. Разъем держится, проблем с выпаданием нет, да и в будущем он будет использоваться только для прошивки загрузчика. В верхней части платы есть контактная информация, куда можно обращаться с предложениями сотрудничества. Так же можно стучаться в личку на хабре или в телеграм. Получаем заказ из Китая, за 5 комплектов + доставка  $125.57. Так же сюда нужно купить и поставить IPS2200/IPS2550. Штучно цены на них высокие, в итоге нужно отдать примерно столько же. Самостоятельно зенкуем отверстия на роторе, позже это можно будет делать на производстве практически бесплатно, при заказе сотен штук. Пока что цена за это в районе 30 баксов. Дело осталось за малым: рисуем фланцы для поворотного стола, печатаем на SLA/LCD принтере, устанавливаем платы, отлаживаем и тестируем. По этому вопросу есть множество уточнений, подробнее по допуска и погрешности поговорим в одной из следующих статей. Потому как делать совсем некорректно, но на самом деле в данном случае вполне достаточно, потому как погрешность мы оцениваем достоверно, датчик самокалибруется и самостоятельно  умеет оценивать свою погрешность. В этом одна из фишек. В целом сама головка по сути самая сложная и важная деталь проекта. Но у меня она уже больше шести лет. Делал её еще на своей первой работе. Главная деталь тут - поворотный столик на прецизионных подшипниках, двигатель без залипаний и кольцо Renishaw RESM20USA150 + две головки Tonic T20xx. Я купил это в давние времена на ebay баксов за 350, но такой сетап может стоить очень (безумно) дорого. Кросс плата (назовем её так) нужна для подключения головок renishaw, датчика, компьютера, а так же контроллера двигателя Elmo. Контроллер, как можно понять, подключается гальванически изолировано. Головки подключаются через быстрые компараторы, потому что сигнал с них получается напрямую без интерполяторов. Сам же интерполятор (динамический) нужно реализовать на ПЛИС.  Эту плату я делал так же очень давно для отладки ASIC (верней различного рода БМК). Она так же необходима для отладки интерфейса, без такой платы в продакт датчики не отправить, потому как о проблемах с подключением вам будут говорить каждый первый раз, их надо отслеживать и показывать, как делать правильно. Вывод на контроллер тут может также использоваться для гальванически развязанного подключения к приводу заказчика, для это есть DC/DC на термосоплях и посадочное место под входную микросхему RS422. К компьютеру подключается через USB-UART 12 MBaud, хотя можно реализовать и 480, но необходимости нет. Сердцем кросс-платы является Terasic de10-lite - удобная плата в плане наличия индикаторного дисплея, светодиодов, кнопок, переключателей и IDC разъема.  Так же для нормальной отладки необходим хороший анализатор. Я использую Saleae Pro16. Покупал еще во времена, когда он стоил 600 баксов, и очень рад, что он у меня есть) Если отлаживать только цифровую часть, подойдет клон Saleae 16 на 100 МГц за 35-40 баксов с али. Устанавливаем датчик и начинаем отладку. Тут можно писать сколько угодно долго, а статья и так уже длинная и начинает утомлять, так что немного расскажу о принципах работы и полученных результатах, а продолжение будет в следующих статьях. В целом я пока решил состряпать материала на Сезон DIY, а разработка еще ведется. Как видно из фото сам датчик отличается от Flux, но если вы читали статью полностью, то поняли, что это есть одно из требований. Нельзя просто так взять, скопировать чужое устройство и начать продавать. Патентное право рано или поздно настигнет вас и в конечном счете ваша экспертиза в данной области будет хуже, чем у оригинала и по факту бесполезна. Хотя сейчас и на этом можно много заработать... но не будем об этом. 52 - откуда взялось это число? На самом деле я точно не уверен. У меня это удобное 2^n*k, где k - нечетное, которое не должно делиться на 3. Подходит да и ладно. В целом если вы занимались подобными датчиками, то обмотки статора и ротора тут играют огромную роль. Самое интересно в этом, что k - практически не ограничен, и если использовать керамический ротор, прецизионные опоры, малые зазоры, то можно получить разрешение до 25-27 разрядов! Причем это будет заметно дешевле всего похожего, что есть на рынке. Хотя есть одно но, о котором будет рассказано в статье по погрешности. Почему у Flux (Heidenhain и др) используются прямые сектора на роторе, а у меня причудливой формы? Тут сложно ответить. Фактически у них сделано правильно, а у меня нет. Но в конкретном случае по другому сделать нельзя, такая форма убирает нелинейности сигнала для конкретно моей конфигурации обмоток статора. В любом случае датчик будет самокалиброваться, и форма рисунка ротора при этом не особо важна. В отличие от примера Renesas, в данном датчике используется две микросхемы IPS2200 и в этом основная прелесть конструкции. Фактически сигналы на них должны быть одинаковы и смещены на 180 градусов. Зная это всегда можно оценивать(и уменьшать) погрешность каждые пол оборота датчика. К тому же можно измерять тот самый "зазор" в рисунке ротора и получать грубый отсчет = абсолютный код. Внимательные читатели заметили, что часть схемы вырезана, а на плате в верхней части последнего фото установлены дополнительные микросхемы. Они нужны для работы от батарейки, и показать я их не могу из-за NDA, как не могу показать и сам рисунок обмоток. Но на самом деле это не суть важно. Примера от Reses в данном случае хватит всем, просто каждый дополнительный разряд достигается огромным трудом. Я лишь хотел показать, что все возможно. Осталась одна важная деталь. Ответить на кликбейт в заголовке. Почему я считаю этот датчик самым точным в мире? Покажу в таблице.  RLS  MB064  Netzer VLX80 Flux IND-080 SMIT64 Разрешение, бит 20 21 20 23 Пульсации кода угла, " ±   72 2.4 2(*1) 0.4 Погрешность, " ±  86 36(*2) 65(*1)   45(*3) 1) Flux довольно странно заявляет характеристики, по факту значения могу отличаться2) У Netzer погрешность определена в очень жестких установочных размерах, реальная погрешность может быть выше3) Погрешность полученная на данный момент, впереди еще много работы, отладка самокалибровки, ресурсов, методов компенсации и тп. В планах же достичь уровня 20"(угл.сек). *Дополнение. Одно уточнение, цифра 45" получилась путем анализа исходных данных с сенсоров на датчике в Matlab, внесение компенсации и измерения погрешности на эталоне после этого. В целом я еще в процессе, а сезон уже закрывается. Сейчас уже понятно, что спешить смысла не было. Более подробно про измерение погрешности расскажу в следующей статье. Надеюсь это вводная статья в цикл об угловых преобразователях. Статья написана на скорую руку для Сезона DIY. Дальнейшие статьи будут более технического характера. В конце я сделал опрос, по которому будет определяться порядок. Если вам интересно применять подобные преобразователи у себя в проектах, пишите в один из контактов напрямую. Но потребности типа пару штук для лабораторной/кусовой/поделки и тп меня совсем не интересуют. Думаю в статье написано достаточно материала, чтобы сделать (поделку) самому.  Все работы выполнены самостоятельно и за свой счет, не считая сотен заказанных плат, в течение 8 лет для различных ОКР(военных и космических), проектов и предприятий, которые так или иначе вели к конечному результату. Flux IND-Rot https://flux.gmbh/products/inductive-rotary-encoder/ RLS Aksim2 https://www.rls.si/eng/aksim-2-off-axis-rotary-absolute-encoder Netzer VLX-80 https://netzerprecision.com/products/vlx-80/ Renesas Resolver 4.0 https://www.renesas.com/eu/en/products/sensor-products/position-sensors/ips2x-customer-reference-board-catalog Renesas IPS2200 https://www.renesas.com/eu/en/products/sensor-products/position-sensors/ips2200-inductive-position-sensor-high-speed-motor-commutation  Разработчик преобразователей угла