Авторизация
Регистрация

Напомнить пароль

Установка цифровых линеек на фрезерный станок

Давно присматривался к цифровым линейкам для станка. Они способны сильно облегчить работу – не надо всматриваться в лимбы, считать обороты маховика подачи, и самое главное, можно забыть про люфты в парах винт-гайка. Из-за этих люфтов приходится подходить к нужной координате всегда с одной стороны, что замедляет работу. В итоге лишний раз не хочется переезжать на другую координату. Например, если требуется просверлить отверстие, затем начисто рассверлить, сделать углубление для винта и снять фаску, то приходится, стоя на одном месте, много раз сменять инструмент. И так для каждого отверстия. А с линейками можно пробежаться одним инструментом по всем координатам, а затем без проблем вернуться назад с другим инструментом. В общем, одни плюсы. Но меня останавливала высокая цена линеек. Регулярно откладывал деньги и в течении года купил все три линейки. Теперь остается их только установить.



Цифровые линейки подключаются к блоку индикации, и всё вместе это называется DRO (Digital Read Out) или УЦИ (Устройство Цифровой Индикации). Продается много вариантов готовых систем. Самым распространенным является вариант сразу на 3 оси. Блок индикации представляет собой огромного размера шарманку с кучей кнопок и индикаторов, по сравнению с которой домашний настольный станок меркнет. Ну и цена такого комплекта совершенно негуманная. Поэтому я искал что-то попроще – самые дешевые линейки. Отдельно линейки купить не удалось, но нашлись недорогие комплекты бренда SHAHE с небольшим блоком индикации на одну ось. Были куплены две линейки длиной 300 мм, и одна длиной 200 мм, вот ссылка.


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


Инструкция


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


С этим контактом получилась занятная история. После разборки собрал линейку обратно, подключил к блоку индикации, а она начала страшно глючить. Показывала всякую ерунду. Начал грешить на то, что повредил внутренности статикой. На всех внешних сигналах на плате датчика установлены защитные TVS-диоды и последовательные резисторы. Но вдруг случайно заметил, что если алюминиевый профиль соединить с землей источника питания, то линейка начинает работать нормально. Как так, ведь пружинящий контакт никуда не делся? Оказалось, что алюминиевый профиль анодирован, но одна боковая грань выглядит слегка потертой. С этой стороны пружина контачит, а с другой – нет. Поэтому при сборке профиль нельзя переворачивать.

Для механического подключения к движущимся частям станка корпус датчика имеет 6 отверстий с резьбой М3. Чертеж расположения этих отверстий есть в инструкции. Конструктивно это обычные гайки М3, вклеенные в выемки пластикового корпуса.


Для защиты от попадания стружки с двух сторон имеются фетровые прокладки.


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


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


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




Блок индикации выглядит не очень аккуратно.


Но как оказалось, сверху у него защитная пленка, которую можно снять.


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


Индикатор выводит координату с дискретностью 0.01 мм, три цифры перед запятой, две – после. Впереди может выводится минус. Сверху выводятся микроскопического размера буквы mm или in в зависимости от системы отсчета. В дюймовом режиме справа выводятся еще и доли дюйма в виде дробей.


Под индикатором расположены 5 кнопок управления. Кнопка ON/OFF включает или выключает дисплей, на датчик питание подается непрерывно, он все время работает. Кнопка in/mm выбирает дюймы или миллиметры. Кнопка ZERO обнуляет показания. Кнопка SET задействована только при работе в дюймах, она выбирает вид дробей. Кнопка ABS включает абсолютные или относительные измерения, в последнем случае сверху загораются маленькие буквы INC. При этом всегда происходит сброс показаний (абсолютная шкала при этом не сбрасывается).

Питается блок индикации от двух батареек CR2032, сзади есть крышка батарейного отсека. Батарейки соединены параллельно, напряжение питания блока и датчика 3 В.


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


Три блока индикации можно расположить вплотную, если их крепить к площадкам по очереди. Но даже так они занимают довольно большую площадь, примерно 18 х 9 см, и это без учета торчащих вбок кабелей. Как и у датчика, кабель прикручен к корпусу с помощью пластикового хомута, чтобы разъем невозможно было выдернуть. Саморезы хомута вкручиваются точно в щель между половинками корпуса, сомнительное решение.


Для подключения датчика используется разъем mini-USB, но это, конечно, никакой не USB. По кабелю подается питание 3 В на датчик, а с датчика поступают последовательные данные и сигнал тактирования.


Внутри блока индикации ничего особо интересного нет. Микросхема маркирована как C001G2, во второй строке 2247P03. У разъема mini-USB контакт 1 – данные, 2 – клок, 3 – земля, 4 – питание, 5 – свободный. На каждой цифровой линии, а также линии питания, установлен защитный TVS-диод в миниатюрном корпусе SOD-923 с маркировкой CA (тип установить не удалось). Плату из корпуса не вынимал, снизу там только дисплей и кнопки.



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

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




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




После этого можно пилить сам профиль, слегка отступив от стекла.


Ну и напоследок надо выровнять торец. Сделать это можно с помощью напильника, но я сделал фрезой на станке.


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


Проще всего было установить линейку вертикальной подачи. Сюда подошла линейка 300 мм (реальная длина от точки до точки крепления 420 мм), обрезать ее не пришлось. Ход этой линейки используется не полностью, но лишняя часть ничему не мешает. С левой стороны колонны расположен механизм с возвратной пружиной, который берет на себя часть веса головы станка при ее опускании и подъеме. А справа относительно свободно. Только торчит фиксатор оси этого механизма. Пришлось его доработать – ось обрезать, в ее торце просверлить глухое отверстие и нарезать резьбу. Теперь ось может фиксироваться с помощью потайного винта, который практически не выступает над плоскостью колонны.


В колонне просверлил два отверстия и нарезал резьбу М4. Линейки допускают крепление винтами М5, но я подумал, что хватит и более мелких. Через шайбы прикрутил линейку так, чтобы ее высота позволяла применить в качестве поводка плоскую алюминиевую пластину.


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


Чтобы установить остальные линейки, пришлось разобрать весь стол станка. Хотя я это давно хотел сделать. Необходимо было заменить гайку поперечной подачи (у моей образовался слишком большой люфт). Новую гайку купил на Aliexpress, внешне она не вызывала доверия, но после установки показала себя прекрасно, люфт не больше 0.1 мм. Кроме того, давно надо было всё смазать и заменить резиновую защиту от стружки. Не знаю почему, но резинки постоянно трескаются. Может такое качество резины попалось? Покупал на барахолке. Теперь купил на Ozon, сделал защиту из нее, посмотрим, сколько простоит.

Необычно наблюдать, как станок сам себя сверлит.


Для крепления поводков линеек Y и X нарезал резьбу М4. Поводок линейки Y нужен слегка изогнутый, потому что боковая поверхность станины имеет небольшой наклон.


Станину сверлил с помощью шуруповерта, им же нарезал резьбу. Под линейку Y тоже пришлось подложить шайбы, чтобы обеспечить нужную высоту установки.


Сложнее всего оказалось с линейкой X. Единственное подходящее место установки – за столом. Но туда летит много стружки. Поэтому обязательно надо делать защиту. Для этого подошел профиль сложного сечения, который используют для монтажа подвесных потолков. Долго фрезеровал его на станке, пока удалил всё лишнее. Основная задача состояла в том, чтобы защита ни на миллиметр не увеличивала толщину линейки, так как это ограничило бы доступную величину хода по Y.



Установленная на станок линейка X при двух крайних положениях стола выглядит так:



Защита находится в плоскости стола и не мешает установке на него больших заготовок.


Линейки по всем осям установлены, станок собран и смазан, зазоры в направляющих отрегулированы. Всё стало двигаться гораздо приятнее, чем раньше. Пользуясь случаем, проверил ящик электроники. Управление двигателем здесь собрано на ATmega8. Нашел внутри ящика две валяющихся гайки. Это же ужас, они могли что угодно закоротить! Нашел, откуда они открутились – крепление платы процессора. Немудрено, жесткость здесь никакая, а вибрации при работе бывают сильные. Закрутил гайками с нейлоновыми вставками, они не должны больше раскрутиться.

Ящик


На всё это ушло 4 дня, с черными руками, как у тракториста.


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

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

Во-вторых, блоки питаются от батареек. На 3 оси надо целых 6 батареек, которые еще и довольно быстро разряжаются, как пишут. Мне больше по душе питание от сети.

В-третьих, ЖК дисплей без подсветки трудно читаем в условиях станка. Специфика работы заставляет постоянно переводить взгляд с рабочей области, где находится фреза, на дисплей DRO. Рабочая область очень хорошо освещена, обычно использую два светильника с двух сторон. Глаза привыкают к яркому свету и не видят темный дисплей. В промышленных DRO обычно применяют большие и яркие LED-индикаторы, или не менее яркие цветные дисплеи.

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

Получается, надо делать что-то свое, хоть и не собирался. Сильно затягивать проект не хотелось, тем более, что как раз выдалось некоторое количество свободного времени. Поэтому решил делать экспромтом. От одного из приборов остались печатные платы передней панели, рассчитанные на установку монохромного OLED-дисплея размером 2.42 дюйма с разрешением 128х64 точки. На плате разведен процессор STM32F405RG с необходимой обвязкой, а его порты выведены на разъемы. Эта плата вполне подходит для построения блока индикации DRO. Правда, кнопок на плате всего три, но для минимального варианта и этого достаточно.



Чтобы быстрее опробовать плату в деле, решил собрать адаптер для подключения линеек. Схема его простая, это фактически переходник с трех разъемов mini-USB на один IDC-10, который установлен на моей плате индикации. Все необходимые сигналы и питание 3.3 В там есть.


В штатных блоках индикации на всех линиях есть защита. Решил поставить защиту и я. Но где бы что-то подходящее раздобыть? Недавно мне притащили платы от LCD-телевизора, которые были найдены на мусорке. В современном телевизоре почти нечего взять. Но тут я вспомнил про плату TCON, на которую приходят несколько линий LVDS, а на них может быть защита. Действительно, на плате были обнаружены 6-ногие корпуса SC-70 с маркировкой F75. Поиск показал, что это RClamp7534F – диодная сборка со встроенным стабилитроном, способная защищать 4 линии данных. Для простоты разводки я использовал только 2 канала в каждой сборке, ни к чему экономить дармовые детали.

Плата была по-быстрому нарисована в PCAD, отутюжена, вытравлена и собрана.



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

Линейка передает пакеты данных, которые повторяются примерно через 110 мс.


Каждый пакет длится примерно 8.5 мс и состоит из передачи 6-ти групп по 4 бита каждая. По одной линии линейка шлет тактовые импульсы, по другой – данные.



Если посмотреть одновременно такты и данные, то видно, что защелкивать данные можно по фронту тактовых импульсов, данные устанавливаются раньше.


Если подвигать датчик по линейке, то видно, как меняются биты. Сначала идут младшие биты, они меняются при минимальных перемещениях. Самая старшая тетрада почти не меняется, только ее младший бит устанавливается, когда данные становятся отрицательными. Получается, здесь всего 20 информационных бит, плюс знаковый бит. На основе увиденного написал функцию приема данных – в прерывании по фронту тактового сигнала принимается один бит данных и вдвигается в 32-разрядную переменную. Пауза между пакетами используется для синхронизации: если давно ничего не приходило, значит будет первый бит нового пакета. Сначала я думал, что данные передаются в BCD-коде, поскольку разбиты на тетрады. Но нет, это биты обычного двоичного числа. Причем в прямом коде (передается модуль числа и знаковый бит отдельно). Написанная программа сразу заработала, не понадобилось ни доставать из ящика логический анализатор, ни запускать отладчик.


Проверил точность линейки с помощью концевых мер длины. На самой длинной плитке 100 мм показания равны 100.03 мм. Для моих целей этого более чем достаточно.



При испытаниях макета был выявлен один неприятный момент: если питание включается резко, то линейка нормально сбрасывается и передает нулевую координату. Но если питание нарастает медленно (как при включении обычного линейного источника с фильтрующим конденсатором), то нормального сброса не происходит. Линейка начинает выдавать случайное число. Это плохо, потому что нет гарантии, что это число не окажется близким к переполнению, тогда диапазона может не хватить на ход линейки. Такой эффект наблюдается как у моего макета, так и у штатных блоков индикации, если питать их от внешнего БП. При использовании батареек такой ситуации не возникает, ведь батарейки всегда подключаются резко. Как-то повлиять на сброс линейки мы не можем, у нее есть только два выходных сигнала. Ничего другого не остается, как управлять питанием.

У меня когда-то был похожий случай с клавиатурой компьютера. При включении она не всегда сбрасывалась. Тогда я встроил в нее «обостритель» включения питания на транзисторах (ключ + аналог тиристора). С такой добавкой клавиатура долгие годы нормально работала.


Но в данном случае такое не требуется, можно поступить проще. Достаточно добавить ключ, который будет включаться процессором с некоторой задержкой после появления питания. Для минимизации доработок платы применил цифровой транзистор DTA144.


Когда линейка плохо сбрасывалась, заметил еще одну аномалию. Кроме того, что от нее получал случайный код, она еще и пакеты вначале посылала с частотой раза в два большей, затем частота приходила в норму. Это косвенно может говорить о том, что есть возможность увеличить частоту отсчетов. Такое есть в некоторых электронных штангенциркулях, там можно включить быстрый режим, кратковременно подавая единицу на выход Clk. Здесь пока с этим не экспериментировал. С другой стороны, скорость считывания вполне достаточная, быстрей и не надо, цифры будет трудно считывать. Но владельцы токарных станков критикуют такие медленные линейки и утверждают, что с ними плохо работать с автоподачей. У меня станок другой, фрезерный, автоподач нет, а в ручном режиме скорость не нужна.

Питание от батареек кроме недостатков имеет и один плюс – линейки постоянно включены, координата всегда остается актуальной. Не скажу, что это сильно надо (чаще всего в начале сеанса работы на станке выполняется базирование), но как дополнительный бонус вполне неплохо. Было бы хорошо, если бы внезапное отключение питания не приводило к потере координат. Получается, надо сохранять координаты в энергонезависимой памяти.
Поскольку координаты при работе все время меняются, то непонятно, в какой момент их сохранять. Периодическое сохранение не имеет смысла, потому что сохраненное значение будет неточным. Сохранять на каждом шаге невозможно по причине ограниченного ресурса EEPROM и требуемого на запись времени. Поэтому остается один вариант – сохранять при пропадании питания.

Для этого в своих платах управления я обычно предусматриваю вход для специального сигнала, который называю PVG (Power Very Good). Он формируется при снижении напряжения на входе стабилизатора. После этого есть еще некоторое время, чтобы успеть сохранить данные. Этот сигнал используется и для других целей. При выдергивании вилки из розетки прибор часто ведет себя неадекватно – микросхемы при питании ниже нормы сходят с ума. Чтобы выключение выглядело красиво, надо заблаговременно всё отключить, пока напряжение питания еще в норме.

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


Думал – буду ее всегда применять. Но цены сейчас стали такие, что пришлось придумывать альтернативное решение. Заменой стала схема на одном транзисторе и дешевой микросхеме TL431, которая показана ниже (вместе со стабилизатором 3.3 В). За счет положительной обратной связи схема имеет гистерезис, что предотвращает дребезг выходного сигнала. С практической точки зрения схемы одинаковы, зато теперь можно обойтись копеечными комплектующими.


Именно по этой схеме собрана плата блока питания макета. Но даже в такой простой платке не обошлось без ошибки. У меня давно валялись TL431 в корпусе SOT-23 неизвестного производителя. Несколько раз их применял, всегда нормально работали. Но в этой схеме TL-ка не заработала. Оказывается, раньше я всегда их использовал как опорный источник на 2.5 В, поэтому катод и REF были соединены. А тут они подключены отдельно. Вылезла особенность расположения выводов. По документации фирмы TI вывод REF у TL431 – это ножка 2. Но у них есть еще TL432, где REF – это ножка 1. У других производителей тоже основной является разводка с REF на ножке 2, и только изредка бывает другая разводка. Хотя в Интернете пишут, что классической является разводка с REF на ножке 1. Для TO-92 это так, но у меня SOT-23, и REF оказался на ножке 1. Пришлось выпаивать и переворачивать микросхему вверх ногами. К слову, TL432 других производителей, в том числе ПО «Интеграл», имеют опорное напряжение 1.25 В, в отличие от микросхем TI. Сплошная путаница.


Порог срабатывания схемы установлен 6.2 В. Этого напряжения достаточно, чтобы стабилизатор 3.3 В еще некоторое время продолжал работать, пока входной конденсатор разряжается. Как только процессор обнаруживает низкий уровень на сигнале PVG, он тут же отключает лишние потребители энергии (например, дисплей) и начинает сохранять данные. В реальности на входе я установил конденсатор 470 мкФ, это дает время на сохранение около 20 мс. Желтый луч – это сигнал PVG, сиреневый – напряжение питания 3.3 В.


Сохранять надо три координаты, которые представлены 32-разрядными числами, всего 12 байт. Начиная с 24С04 имеем размер страницы 16 байт, она записывается за один прием, на что тратится типично 5 мс. Формально – успеваем, и даже с запасом.

Но я вспомнил про когда-то применявшиеся микросхемы FRAM фирмы Ramtron. Это функциональные аналоги EEPROM, только имеют почти неограниченное количество циклов записи и практически мгновенную запись. Как только по I2C передали данные, на момент ответа ACK они уже записаны. С такой микросхемой можно ни о чем не заботиться. Но как с ними обстоит дело сегодня – предстоит узнать. Оказывается, в 2014 году фирма Ramtron куплена Cypress, и под этим именем продолжает выпускать микросхемы FRAM. Кроме того, их выпускает Futjitsu (семейство MB85RCxx), причем с 2025 года под брендом Ramxeed. Купить микросхемы FRAM не составило труда, в местном магазине оказались в наличии FM24CL64B по 1.4$. Повторюсь – можно было поставить обычную EEPROM, но захотелось экзотики.


Поскольку при включении питания линейка всегда передает ноль, то в память записывается текущая координата, а читается она в переменную, которая задает смещение при обнулении шкалы. В результате при включении питания видим на дисплее то же значение, которое было перед выключением. Конечно, если линейку двигали с выключенным питанием, координата не будет соответствовать действительности. Но этим болеют и «взрослые» DRO, которые тоже питаются от сети.

Алгоритм был реализован, сохранение в память заработало как положено. При отладке я питал плату от лабораторного БП и включал/выключал выходное напряжение кнопкой. Но это временно. А специально для питания DRO подобрал подходящий линейный источник – блок питания от телефона Panasonic KX-TG1105.



Всё рухнуло, когда я попытался проверить работу с этим источником и выдернул его из розетки. Линейки показали полную чушь, которая и была записана в память. При каждом выключении в розетке раздавался треск, стоящие на другом конце стола компьютерные колонки громко щелкали, а осциллограф показывал в момент отключения питания многовольтовый выброс даже после того, как я все цепи питания утыкал супрессорами и ёмкой керамикой. При выдергивании вилки из розетки с деревьев разлетались птицы и в городе останавливались трамваи :) Не думал, что такой маленький трансформатор может быть таким злобным.


Когда-то я моделировал процесс отключения похожего маломощного трансформатора, результаты можно посмотреть по ссылке (https://leoniv.livejournal.com/262160.html). Тогда я постарался максимально точно описать в модели все паразитные параметры трансформатора. Моделирование показало, что в момент размыкания контактов выключателя на них возникает выброс величиной в киловольты. Распространенная мера – включение параллельно выключателю или трансформатору емкости (типично 22 нФ). Она снижает эффект, но не устраняет его полностью. Гораздо эффективней применение снаббера – последовательной RC-цепи. Номиналы снаббера попробовал подобрать на модели. Емкость получилась вполне обычная, 0.1 мкФ, а вот резистор получился необычно большой – 5 кОм. Обычно применяют сотни Ом, но при этом вижу резкое снижение эффективности снаббера. Возможно, всё дело в том, что здесь трансформатор очень маленький.

Для проверки подключил БП в розетку через короткий провод, к которому подсоединил цепочку 0.1 мкФ + 5.1 кОм. Эффект как рукой сняло. Совершенно никакого искрения в розетке, никаких помех на колонки и прекрасно работающее сохранение координат при выключении. Резистор 5.1 кОм становится при работе немного теплым. Чтобы снизить мощность рассеяния, уменьшил номинал до 1 кОм. Эффективность снаббера чуть пострадала, зато нагрев ушел.

Для установки снаббера пришлось разбирать неразборное – склеенный намертво корпус БП. Пользовался стандартным методом ножа и молотка. Разобрался вполне культурно, все повреждения внутри, а снаружи следов вскрытия практически не видно. Параллельно первичке установил емкость X2 номиналом 0.1 мкФ и резистор МЛТ-0.25 номиналом 1 кОм. Все это нормально влезло в корпус. Выходной конденсатор пришлось заменить, потому что при разборке я его немного помял.



Как и в любом современном проекте, самое трудное – это программирование. Поскольку никакого плана у меня не было, решил для начала повторить функционал штатного блока индикации. А функций у него не так и много: индикация абсолютной координаты, относительной, сброс в ноль. Остальное не требуется – переключение inch/mm и выбор дробей для inch в наших реалиях ни к чему.

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

Короткое нажатие кнопки переключает абсолютную шкалу ABS и относительную REL (ее в других DRO почему-то называют INC). При включении шкалы REL сразу производится сброс. Это вопрос спорный, но так сделано в штатном блоке. Если сброса не делать, фактически будем иметь две независимых шкалы ABS1 и ABS2, это может быть полезней. Если что, поменять не сложно.

Удержание кнопки (1 сек.) вызывает сброс координаты в ноль. Сброс работает независимо для ABS и REL шкалы.

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


Это сказка! В передней панели из оргстекла просверлил по координатам крепежные отверстия, пользуясь цифровыми линейками. Приложил к пустой печатной плате – совпадение идеальное! И главное, резко сократились потери времени на смену инструмента, так как приехать еще раз в ту же позицию не составляет труда. Только дисплей, расположенный далеко за станком, я видел плохо. Надо его крепить ближе к рабочей зоне.

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


Боковые и заднюю стенку сделал из листового пластика ABS толщиной 2 мм, купленного на Ozon. Чтобы корпус проще собирался, в деталях сделал выборки на половину толщины пластика.


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



Возможно, это как раз тот случай, когда можно было применить 3D-принтер. Но на фрезерном станке, похоже, получилось быстрее.




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



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

Конечно, платы макета плохо в этот корпус подходили, потому что не были изначально для него предназначены. Встал вопрос – или переделать платы специально под этот корпус, или работать с тем, что есть. Пошел по второму пути, решил, что так будут быстрей. Пришлось фрезернуть несколько пластиковых деталей, чтобы закрепить платы. Плату питания пришлось поставить вертикально. Еще была добавлена маленькая платка с разъемом USB-C, но о ней позже.


Коробку закрепил сзади на колонне станка двумя винтами М4. Через один из винтов соединил общий провод DRO с массой станка. Провода от линеек очень длинные, но резать их не хочется. Позже аккуратно их смотаю и закреплю под гайкой крепления колонны, там их почти не будет видно. В будущем их обрежу и заменю разъемы, mini-USB – это совсем не то, что надо для станка.


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

В большинстве случаев все три координаты не нужны. Например, при сверлении отверстий и фрезеровании контура нужны X и Y, а координата Z выставляется на глаз. Часто при фрезеровании нужна вообще только одна координата – делаются проходы по всей заготовке, чтобы обеспечить один размер. В таких случаях лишние цифры на дисплее только отвлекают. И я сделал их отключение.

При долгом удержании (4 сек.) кнопки индикация данной оси отключается. Коротким нажатием кнопки ее можно включить снова.


Название осей станка – это дискуссионный вопрос. Для фрезерного станка все более-менее понятно: продольная подача – это X, поперечная – это Y, поднятие/опускание шпинделя – это Z. А вот для токарного не так очевидно. Движение вдоль оси шпинделя принято обозначать Z, это будет продольная подача. Поперечная тогда будет X. А Y на токарном нет вообще. Но готовые DRO для токарного часто предлагают оси X и Y.

Последовательность осей на дисплее тоже не очевидна. Подача по Z находится где-то вверху, логичней эту ось разместить на дисплее верхней. А самая читаемая строка дисплея – это нижняя, там лучше разместить самую «ходовую» подачу X. Получается последовательность Z, Y, X. Но в готовых DRO всегда наоборот. Поэтому решил сделать выбор последовательности осей. Для подобных настроек пришлось добавить специальное меню.


Вход в меню настроек делается удержанием (1 сек.) одновременно верхней и нижней кнопки. Чтобы при этом случайно не сбросить координаты ABS, можно для верхней и нижней оси перейти в режим REL. Навигация по меню производится верхней кнопкой (вверх) и средней кнопкой (вниз). Нижняя кнопка служит для изменения по кругу значений параметров. Выйти из меню можно коротким одновременным нажатием верхней и нижней кнопки, или выбором пункта меню Exit с подтверждением нижней кнопкой.

Самый верхний параметр – Axes order, он позволяет выбрать очередность осей на дисплее: ZYX, ZXY или XYZ.

Еще одним важным вопросом является направление осей, т.е. при перемещении в какую сторону координата должна увеличиваться, а в какую – уменьшаться. Логично, чтобы увеличение координаты происходило при вращении маховика подачи по часовой стрелке. Но с подачей по Z не совсем очевидно: основная рукоятка по часовой стрелке поднимает шпиндель, а микроподача – опускает. При выполнении разного рода работ может оказаться удобней одно или другое направление. Да и линейки на станке могут быть установлены по-разному, иногда удобней их развернуть. Поэтому должна быть возможность изменения направления осей.

Надо сказать, что она есть и в штатном блоке индикации, хоть в инструкции про это не сказано. Для выбора направления оси надо удерживать кнопку in/mm, в первом разряде индикатора появится символ «+» или «-», который покажет новое направление оси.


В своем DRO сделал индивидуальный выбор направления для каждой оси через пункты X axis dir, Y axis dir, Z axis dir. Они могут принимать значения Right и Left.

Индикатору OLED при долгой однообразной работе грозит эмоциональное выгорание, поэтому был предусмотрен автоматический переход DRO в режим сна. Это происходит, если ни одна кнопка не нажимается, и координаты не меняются дольше заданного времени. На экране при этом запускается screen saver в виде случайно появляющихся на небе звездочек. В STM32F4 есть хороший генератор случайных чисел. Не какой-нибудь псевдослучайный генератор на основе сдвигового регистра с отводами и элементами XOR, а настоящий, на физическом источнике энтропии на основе кольцевых осцилляторов.


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

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

Время засыпания выбирается в меню из ряда OFF, 1, 2, 5, 10, 20, 30, 45, 60 мин. Все параметры, заданные в меню настроек, сохраняются в энергонезависимой памяти.

Что еще показала первая проба работы с DRO? Неплохо было бы иметь возможность прямого ввода координат и возможность простых математических операций с ними. Например, хотим сделать отверстие или углубление с центром на расстоянии 10 мм от края детали. Коснулись фрезой края заготовки, обнулили координату X. Чтобы получить координату центра отверстия, надо прибавить к координате X сначала радиус фрезы, затем еще 10 мм. Делать это было бы удобно с клавиатуры с полным цифровым полем. На готовых DRO такая клавиатура есть, но вряд ли это здесь будет удобно. Такое решение, возможно, подходит для больших отдельно стоящих станков, за которыми работают стоя. Но для маленьких настольных станков, за которыми работают сидя, был бы более удобным вариант настольной клавиатуры. Нашел готовые блоки цифровых и дополнительных клавиш, причем даже с механическими свичами. Заказал на Ozon такой блок, а в соединительной коробке предусмотрел разъем USB-C для подключения внешней клавиатуры.


Какие еще нужны функции – пока неясно. Например, обычно в DRO есть функция сверления отверстий по окружности. На практике даже не помню, встречалась ли такая задача хоть один раз. Если отверстий 4, то их легко сверлить и в прямоугольной системе координат. Если 3, то можно заранее на чертеже проставить координаты. Хотя одно полезное применение этой функции есть –фрезерование скруглений без поворотного стола (а его у меня нет, ибо очень дорогой). Можно задать на дуге очень большое количество якобы отверстий, DRO будет давать последовательно координаты каждого из них, в каждой точке надо побывать с фрезой. Получается вполне плавная дуга, эдакий ЧПУ с ручным управлением :)

Еще в DRO бывает возможность индицировать удвоенные значения для одной из координат. Это больше актуально для токарных станков, там смещение поперечной подачи на 1 мм меняет диаметр детали при точении на 2 мм. Такое переключение обозначают как Радиус-Диаметр. На фрезерном тоже иногда приходится токарить, возможно, эту функцию позже добавлю.

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

Заметил один минус индикации с высокой точностью. Раз на дисплее показываются сотые миллиметра, всегда хочется установить координату именно с такой точностью. Это во многих случаях не нужно, а постоянная ловля соток работу замедляет. Подумываю, не сделать ли в настройках выбор разрешения для индикации? Тогда можно будет для неответственных деталей обрезать точность, скажем, до десятой миллиметра, работа пойдет быстрей.

Данный проект DRO появился спонтанно, без всяких планов и продумывания. Просто не понравились купленные блоки индикации. Свой вариант сделал из того, что было. Может, это и правильно – не имея никакого опыта в использовании DRO все равно не получилось бы сделать как надо. Поэтому рассматриваю данный проект как тренировочный. На всякий случай выложил текущую версию схем и исходников: DROt.

В идеале хотелось бы вообще перейти от цифр к графическому представлению информации. Такую самодельную реализацию DRO я видел в ролике на Youtube. Но для этого желательно иметь дисплей побольше и с более высоким разрешением. Хотя попробовать можно и на этом OLED. В будущем, возможно, проект получит развитие. Хотя нет ничего более постоянного, чем временное.

Добавить в избранное
+27 +32
свернутьразвернуть
Комментарии (24)
RSS
+
avatar
+1
  • asasls
  • 19 февраля 2026, 14:12
Для хобби — отлично.
+
avatar
0
  • 00svd00
  • 19 февраля 2026, 14:17
Хех. Я у себя гораздо проще сделал. Впаял в бортовую сеть станка AC-DC 220->3v3, точнул на токарнике блямбы по габаритам батарейки и запитал через них родные индикаторные блоки. Всё, кнопки нажимать не надо(разве что если выставить новый ноль, но как-то ни разу неудобств не испытал), включены они перманентно, не садятся никогда.
Кстати, для передачи движения на линейки вполне неплохо справляются печатные детали. Если линейку нормально выставить, без перекосов, нагрузки на них всё равно нет никакой
Но так вообще конечно плюс)
+
avatar
+1
  • Leoniv
  • 19 февраля 2026, 14:23
Дисплеи очень далеко от глаз. Вы что, стоя работаете?
+
avatar
+2
  • 00svd00
  • 19 февраля 2026, 14:25
А вы что — сидя?
Ни разу не видел чтоб за станками сидя работали, разве что если это ЧПУха и ты запустил программу, сидишь и куришь.
+
avatar
+2
  • Leoniv
  • 19 февраля 2026, 14:32
Конечно сидя. Это же настольный станок, стол обычной высоты, за ним только сидя.
+
avatar
+1
  • 00svd00
  • 19 февраля 2026, 14:35
Странно. Я в какой-то момент задолбавшись стоять у токарника — попробовал сидя. Минуты через три вскочил — неудобно. Не видно ничего что происходит и вообще как-то оно как будто не рассчитано. Впрочем, если вы сумели — то ваше везение. Сидя оно конечно приятнее если всё устраивает.
+
avatar
+1
  • Leoniv
  • 19 февраля 2026, 14:36
Наверное, слишком высоко стоит. Хотя про токарник не знаю, его у меня нет.
+
avatar
+1
  • 00svd00
  • 19 февраля 2026, 14:40
На комплектной тумбе. Не хотелось изобретать стол, тем более что очень важна жёсткость установки. А тумба стальная, сама по себе ничего такая, а после того как я её по контуру притянул к бутерброду из двух листов 32 фанеры — вообще хорошо стало).
В идеале на анкеры и в бетонный пол, но чего нет того нет.
+
avatar
+1
  • Leoniv
  • 19 февраля 2026, 14:48
Стол делал сам, высота рабочей поверхности над полом 74 см. Столешница — срощенные 2 шт. ДСП по 18 мм. Сижу на обычном стуле, высота 45 см. Изредка приходилось вставать, потому что сидя не виден лимб вертикальной микроподачи. Но с установкой DRO больше вставать не надо будет. А у Вас DRO в неправильном месте размещается, будет всегда заставлять стоять.
+
avatar
0
  • 00svd00
  • 19 февраля 2026, 14:55
А у меня DRO и не будет никогда. Как-то так сложилось, что станок я схватил от жадности, когда понял что китайские посылки собираются новыми налогами обкладывать. А по факту оказалось что задач именно под ручной фрезер довольно мало. Несколько раз торцевал детали, подрезал резцы под токарник, всякое такое по мелочи. А вот токарник — да, невероятно полезная штука, после 3D принтера — самый ходовой станочек)
И на нём у меня уже давно стоит электрогитара, быстросменный столик, линейки по двум осям и всякие прочие ништяки.
+
avatar
0
  • Leoniv
  • 19 февраля 2026, 15:11
Так DRO у вас уже установлено, только слишком высоко, не для сидячей работы. И тахометр, вижу, есть. Надо бы и мне сделать. Что касается токарного станка — думаю о его покупке, но он очень редко нужен. Большинство работ делается на фрезерном — всякие передние панели, другие детали корпусов устройств. А что делать на токарном — толком и не знаю. Бывает, над какую-то стоечку резьбовую выточить, но и на фрезерном с этим справляюсь.
+
avatar
0
  • 00svd00
  • 19 февраля 2026, 15:24
Так DRO у вас уже установлено,
Не, это не DRO, это ерунда уровня самоделки из цифровых штангенов. Хотя не спорю, конкретно линейки от SHAHE работают на удивление неплохо, для дома более чем годятся.
DRO же всё таки подразумевает кроме сведения в единую систему(как у вас) ещё и абсолютную позицию по осям. Линейки же, к сожалению, дают только относительную.
Но да не суть, задач, где это бы играло роль, всё равно нет.
А что делать на токарном — толком и не знаю.
Вы знаете, огромное количество того, что делается на фрезерном, делается и на токарном, но без необходимости в куче оснастки. Нужно сделать плоскость? Пожалуйста, главное чтоб деталь прошла над направляющими. Нужно просверлить отверстие по координатам — опять же можно, правда придётся повозиться с четырёхкулачковым патроном(ну и чтоб оно было не слишком тяжёлым, а то станок упрыгает)
Нарезать резьбу? И снова да, причём с почти любым шагом.
А если докинуть некоторой оснастки и проявить смекалку — можно делать даже прямозубые шестерни и червячные передачи(хотя шестерни проще печатать, но вот хорошего гладкого червяка на принтере уже не получить). Ну и т.д.
И разумеется всеаозможнве шкивы и поочие тела вращения всех цветов и размеров.
З.Ы.Ы. Кстати, если вдруг хочется интересного проекта на поломать голову — то во время оно пытались делать DRO для бедных из старых магнитных лент и магнитоыонных головок, но какого-то внятного успеха как будто не добились.
+
avatar
0
  • goldmine
  • 19 февраля 2026, 14:41
Интересный и. полный объективный обзор. Представляю, сколько сил и времени было потрачено…
Спасибо автору за проделанную работу!
Познавательно.
+
avatar
+1
  • Leoniv
  • 19 февраля 2026, 14:49
Ушло 4 дня на механику и еще неделя по вечерам на программирование. Но это только начало работы. Придет клавиатура, тогда появится на порядок больше функций.
+
avatar
+1
  • ignv
  • 19 февраля 2026, 14:46
У меня конечно ходы стола побольше ( станочек в районе тонны), поэтому поставил оптические линейки с УЦИ, и сверление по кругу уже много раз использовал, ремонтировал сверлилку, там несколько деталей с фланцами на 3 отверстия по кругу, плюс фланец на токарник тоже 3 отверстия и т.д., очень нужная функция ( хотя можно конечно вручную вычислить)! А на ось Z линейка так и лежит, не стал ставить потому как лимб вертикальной подачи 2,5 мм на оборот, деление 2 сотки пока вполне хватает (но ещё не вечер)…
А так уже реально не понимаю как можно без линеек работать автору респект!!!
+
avatar
+2
  • Leoniv
  • 19 февраля 2026, 14:52
Здесь лимбы 1.5 мм на оборот, тоже деление 2 сотки. Но по ним неудобно — есть люфты и надо считать обороты.

Сверление по кругу — специфическое дело, чаще бывает нужно на круглых деталях. А так как у меня нет токарника, все вещи делаю плоскими :)
+
avatar
0
  • SDL2000
  • 19 февраля 2026, 15:09
Сверление по кругу — специфическое дело, чаще бывает нужно на круглых деталях. А так как у меня нет токарника, все вещи делаю плоскими :)
Нее… И на плоскости часто нужно. Да и не такой уж и дорогой УЦИ. Я год назад брал за 15 вроде тыс
+
avatar
0
  • Leoniv
  • 19 февраля 2026, 15:12
Так я функцию сверления по кругу и у себя могу дописать. Только пока ни разу не понадобилась. Не хочется засорять DRO чем-то лишним.
+
avatar
0
Пока что бегло проглядел, детально прочитаю вечером :)

Но сразу возник вопрос — зачем вы усложнили конструкцию сигналом хорошего питания, запоминанием координат и связанной с этим логикой, когда самым простым и хорошим решением было бы организовать постоянное питание линеек от аккумулятора? В этом случае даже перемещение линеек при отсутствии сети не вносило бы никакой погрешности, а так как вы пользуетесь фрезерным станком регулярно, проблем с зарядкой аккумулятора бы не было.
+
avatar
0
  • Leoniv
  • 19 февраля 2026, 15:16
На ну его в баню — этот аккумулятор. За ним же следить постоянно надо. У меня к ним сильная нелюбовь :)

Помнить координату без питания особо и не надо, в больших DRO этого и нет. Ни разу не припомню такого, чтобы недоделанную заготовку оставил в станке и пошел спать. А если что, можно найти край еще раз.
+
avatar
0
За ним же следить постоянно надо
Зачем? Это за вас сделает БМС, можно будет хоть три года станок не включать.
У меня к ним сильная нелюбовь :)
Магнитометр был же с ним) Значит, не такая уж нелюбовь.
Ни разу не припомню такого, чтобы недоделанную заготовку оставил в станке и пошел спать. А если что, можно найти край еще раз.
Конечно можно) А можно было и штатные индикаторы линеек оставить) Или вообще без линеек работать. Но неудобно же. Вон вам пришлось сколько реализовывать дополнительно в устройстве для запоминания, а можно было всё это исключить, проект был бы проще и быстрее.
+
avatar
0
  • Leoniv
  • 19 февраля 2026, 15:35
Нет, аккумулятор тут точно не нужен. И сохранение координат тоже не нужно, но память все равно нужна для всяких настроек. Решение с сигналом PVG мне нравится, тем более, что такой сигнал полезно иметь и для другого (для корректного отключения).
+
avatar
0
  • TYNYBEAR
  • 19 февраля 2026, 15:12
Тож шикарная вещь, я тоже такую хочу, а работа проделанная автором еще шикарней. Ее даже жалко использовать на простом сверлильном станке.
+
avatar
0
  • Leoniv
  • 19 февраля 2026, 15:21
На сверлильный иногда ставят одну ось — для глубины сверления. Но еще лучше на сверлильный добавить координатный столик, хотя бы такой, можно будет фрезеровать мягкие материалы. Установить DRO тоже можно, но тут всё зависит от достатка — это тупо дорого.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.