Дамы и господа, здравствуйте.
В данной статье я расскажу о разработке устройства для снятия показаний с цифровых линеек и других датчиков, размещенных на токарных и фрезерных станках.
Разработка ещё не завершена и будет описано то, что сделано на данный момент.
Кому интересно, добро пожаловать под кат.
Характеристики shDRO:
(зачеркнута функциональность, которая ещё не реализована)
Модульная схема:
Устройство состоит из следующих модулей:
Принципиальная схема:
В следующей части я опишу логику работы shDRO, опишу доступные на данный момент команды консоли, и так же выложу первую версию прошивки.
Вторая часть.
В данной статье я расскажу о разработке устройства для снятия показаний с цифровых линеек и других датчиков, размещенных на токарных и фрезерных станках.
Разработка ещё не завершена и будет описано то, что сделано на данный момент.
Кому интересно, добро пожаловать под кат.
Почему своя разработка, а не готовое изделие.
У меня есть два станка по металлу (китайские): фрезерный и токарный.
Я периодически изготавливаю на них изделия разной степени сложности (я не токарь и не фрезеровщик, это просто хобби). И, если изделие сложное, то приходилось брать в руки калькулятор и просчитывать ход фрезы или резца. И так же, если ход фрезы/резца получался достаточно большим, то приходилось считать обороты ручек суппортов, что откровенно говоря напрягало. В итоге я задумался о DRO (давно были куплены цифровые штангенциркули как раз для этой цели, но нехватка времени постоянно откладывало изготовление).
Прежде чем приступить к разработке своего DRO, мне нужно было ответить на два вопроса, касающихся целесообразности собственной разработки:
Отвечаю сам себе.
Да, на рынке представлено множество изделий, как отечественных, так и зарубежных, с разными ценами и с разной функциональностью. Тот же Али предлагает готовые DRO с тремя оптическими линейками по цене порядка 13000 руб. – очень низкая цена для такого устройства. Но мне интересен сам процесс изготовления, поэтому вариант «купил и поставил», отпал.
Отвечая на второй вопрос, я поставил себя на место человека, который сам будет собирать устройство по какому-либо описанию, и что он должен сделать. А именно:
И только после этих шагов, получится законченное изделие. Каждый шаг занимает какое-то время, а так как человек существо ленивое и нетерпеливое (в хорошем смысле этих слов), то ему хочется как можно быстрее увидеть результат работы устройства, пусть даже промежуточный. И я все же решил разработать своё устройство таким образом, чтобы человек даже в самом начале процесса сборки, видел промежуточные результаты его работы.
Теперь нужно было выбрать плату для реализации.
Выбирал между Arduino на базе Atmega и STM.
Я программист верхнего уровня, но по работе приходилось программировать микроконтроллеры семейства Atmega и MSP-430, с STM я не был знаком. Поэтому выбрал Atmega. Выбрал самую дешевую плату (или нет? просто они у меня были) Arduino Nano на базе микроконтроллера Atmega328.
Я периодически изготавливаю на них изделия разной степени сложности (я не токарь и не фрезеровщик, это просто хобби). И, если изделие сложное, то приходилось брать в руки калькулятор и просчитывать ход фрезы или резца. И так же, если ход фрезы/резца получался достаточно большим, то приходилось считать обороты ручек суппортов, что откровенно говоря напрягало. В итоге я задумался о DRO (давно были куплены цифровые штангенциркули как раз для этой цели, но нехватка времени постоянно откладывало изготовление).
Прежде чем приступить к разработке своего DRO, мне нужно было ответить на два вопроса, касающихся целесообразности собственной разработки:
- почему бы не купить готовое изделие?
- в сети есть много проектов DRO, разного уровня сложности, с подробными описаниями изготовления своими руками. Так почему бы не собрать одно из них?
Отвечаю сам себе.
Да, на рынке представлено множество изделий, как отечественных, так и зарубежных, с разными ценами и с разной функциональностью. Тот же Али предлагает готовые DRO с тремя оптическими линейками по цене порядка 13000 руб. – очень низкая цена для такого устройства. Но мне интересен сам процесс изготовления, поэтому вариант «купил и поставил», отпал.
Отвечая на второй вопрос, я поставил себя на место человека, который сам будет собирать устройство по какому-либо описанию, и что он должен сделать. А именно:
- приобрести нужные компоненты: процессор, индикацию, кнопки и мелочевку типа резисторов, конденсаторов, стабилизаторов и т.д. (без этого конечно никуда);
- в зависимости от сложности проекта, изготовить/приобрести печатную плату;
- затем всё спаять и прошить процессор;
- после, сделать работу над ошибками;
И только после этих шагов, получится законченное изделие. Каждый шаг занимает какое-то время, а так как человек существо ленивое и нетерпеливое (в хорошем смысле этих слов), то ему хочется как можно быстрее увидеть результат работы устройства, пусть даже промежуточный. И я все же решил разработать своё устройство таким образом, чтобы человек даже в самом начале процесса сборки, видел промежуточные результаты его работы.
Теперь нужно было выбрать плату для реализации.
Выбирал между Arduino на базе Atmega и STM.
Я программист верхнего уровня, но по работе приходилось программировать микроконтроллеры семейства Atmega и MSP-430, с STM я не был знаком. Поэтому выбрал Atmega. Выбрал самую дешевую плату (или нет? просто они у меня были) Arduino Nano на базе микроконтроллера Atmega328.
Характеристики shDRO:
(зачеркнута функциональность, которая ещё не реализована)
- плата Arduino Nano, процессор Atmega328;
- 12 независимых каналов/портов Arduino, к которым подключаются устройства считывания;
- каждый канал имеет свойства: Type (CLKin, DATAin, Ain, Bin и т.д.), EI (Enable Interrupt), IL (Interrupt Level), Inv (инвентированный сигнал);
- максимальное количество подключаемых устройств: 6;
- каждому устройству можно назначить один или более каналов из 12ти доступных;
- поддержка протоколов: 24BIT,
21BIT,BCD7, BIN6, квадратурный сигнал,периодический сигнал с тахометра(есть возможность добавления новых протоколов); - консоль: позволяет при помощи терминальной программы конфигурировать и тестировать shDRO в процессе сборки и эксплуатации;
- в режиме консоли, реализован «псевдо» логический анализатор, который позволяет считывать уровни заданных в консоли каналов и определить протокол обмена. Максимальное количество выборок 256, минимальное замеряемое время между выборками 8мкс. Хотя бы один анализируемый канал должен быть настроен на прерывание;
Модульная схема:
Устройство состоит из следующих модулей:
- три стабилизатора напряжения 5в., 3в., 1.5.в. Стабилизаторы на 3в. и 1.5.в. регулируемые. Данные уровни напряжения используются в цифровых штангенциркулях (1.5в.) и в линейках iGAGING (3в.);
- 4 восьмиразрядных семисегментных индикатора на основе MAX7219, подключенных каскадно к аппаратному SPI;
- клавиатура. Клавиатура состоит из двух резистивных матриц: 2х4 и 4х4 в этом случае разводка дорожек на плате проще (но можно сделать две матрицы 3х4, кому как удобнее). Каждая матрица подключена к каналу ADC;
Использование резистивных матриц для меня большой минус, т.к. со временем, сопротивление кнопок будет расти, и соответственно будут изменяться уровни напряжения, замеряемые ADC. Но на «честную» матрицу просто не хватило ножек/портов платы (для 24х кнопок нужно 10 портов). Исходя из этого, в прошивке реализована функциональность обучения клавиатуры, обучение можно сделать в любое время, и при этом не нужна связь с терминальной программой (про обучение будет написано ниже). - динамик, подключенный к аппаратной ножке таймера 1;
- плата адаптеров, которые предназначены для согласования уровней между устройствами и портами Arduino;
- 4 разъема DB9 female (по хорошему нужно ставить 6 разъемов, т.к. shDRO поддерживает до 6 устройств, но я не стал загромождать будущую заднюю панель корпуса, предполагая что три разъема будут использованы для осей, а один разъем будет расшарен между остальными устройствами). Разъемы самые простые, с ножками для пайки проводов. Провода в свою очередь распаиваются на плату адаптеров;
Выбор такого типа разъема обусловлен следующими причинами: надежность (по сравнению с USB разъемами и RJ-45), большое количество выводов и легкость распайки. И так же у меня есть одна оптическая линейка с разъемом такого типа.
Принципиальная схема:
В следующей части я опишу логику работы shDRO, опишу доступные на данный момент команды консоли, и так же выложу первую версию прошивки.
Вторая часть.