В этой статье мастер-самодельщик расскажет нам, как собрать цифровой уровень с различными режимами работы, в том числе и с перекрестным лазерным лучом. Так же для этого уровня мастер разработал платформу для регулировки при работе в режиме луча. Платформу можно установить на обычный фотоштатив. Ее можно отрегулировать на +/- 4 градуса по оси y / x, чтобы выровнять линию лазера.
Инструменты и материалы:
-Arduino Pro-mini;
-Модуль MPU6050 (гироскоп + акселерометр);
-Модуль зарядного устройства TP4056;
-Литий-полимерная батарея (подойдет любая с размером 40x50x10 мм. Емкость и выходная мощность не имеют большого значения, поскольку уровень энергопотребления устройства довольно низок.);
-Лазерный диод 6.5×18 мм;
-Лазерный диод с «крестом»;
-Транзистор 2N2222;
-Ползунковый переключатель 19x6x13 мм;
-Резистор 1кОм — 4 шт;
-Резистор 100 кОм — 2 шт;
-Многослойный керамический конденсатор 1 мкФ;
-Тактильная кнопка 6x6x10 мм;
-Штекеры 2,54 мм;
-Кабель для программирования;
-Неодимовый магнит 6×1 мм;
-Прозрачный акрил 25×1,5 мм;
-3D-принтер;
-Паяльное оборудование;
-Клей для пластика;
-Клеевой пистолет;
-Краска + кисть;
-Пинцет;
-Нож;
-Три винта M3x16 мм с гайками;
Шаг первый: размеры, детали, режимы работы
Устройство имеет несколько режимов работы.
Уровень XY — это обычный круговой пузырьковый уровень. Когда уровень лежит на тыльной стороне, можно измерить горизонтальный уровень наклона поверхности.
Следующий режим — вертикальный уровень с функцией угломера.
Третий режим — горизонтальный угломер.
Четвертый режим — обычная лазерная указка.
И наконец пятый режим — это проецируемый лазерный крест. Этот режим также можно активировать на режиме пузырькового уровня и вертикального уровня. Для этого нужно дважды нажать кнопку «Z».
На видео ниже можно посмотреть пример работы с различными режимами.
Корпус уровня напечатан на 3D-принтере и имеет размеры 74x60x23,8 мм с лазером «крестом» и 74x44x23,8 мм без него, что делает инструмент карманного размера.
Уровень питается от перезаряжаемой Li Po батареи.
Фотографии сборки, которые мастер предоставил, относятся к более старой версии печатной платы. Было несколько мелких проблем, которые он исправил в новой версии. Отличия очень небольшие, и монтаж в основном не изменился.
Мастер хотел сделать уровень как можно более компактным, а также сделать так, чтобы его легко смог собрать человек со средними навыками пайки. Он использовал резисторы / конденсаторы SMD 0805, потому что их довольно легко паять, они дешевы и и легко заменить в случае неисправности при монтаже.
Использование предварительно изготовленных коммутационных плат для датчика / OLED / микроконтроллера также снижает общее количество деталей.
На уровне, поскольку MPU6050 — единственный датчик, было решено использовать Arduino Pro-mini. Хотя он имеет небольшую память, он меньше по размерам чем, например, Wemos D1 Mini. К тому же поскольку это собственный продукт Arduino, поддержка программирования изначально включена в Arduino IDE.
В приборе используется версия Arduino Pro-Mini 5 В вместо версии 3,3 В. Это главным образом потому, что версия 5В имеет вдвое большую тактовую частоту версии 3.3v, что помогает сделать уровень более отзывчивым. Полностью заряженный аккумулятор LiPo выдает 4,2 В, так что можно использовать его для питания pro-mini непосредственно от его вывода vcc. Это позволяет обойти встроенный регулятор напряжения 5 В.
И MPU6050, и OLED работают при напряжении от 5 до 3 В.
Можно было бы использовать повышающий регулятор на 5 В, чтобы поддерживать постоянное напряжение 5 В на всей плате, это было бы хорошо для обеспечения постоянной тактовой частоты (она уменьшается с понижением напряжения) и предотвращения затемнения лазеров (что на самом деле не заметно), но мастер не захотел усложнять прибор.
Также уровень показывает текущий процент заряда LiPo батареи в правом верхнем углу дисплея. Это рассчитывается путем сравнения внутреннего опорного напряжения 1.1V на ARDUINO к напряжению, измеренного на Vcc.
Обе кнопки имеют схему защиты от дребезга. Это можно настроить программно, но мастер предпочел сделать это аппаратно. Для этого нужны всего два резистора и один конденсатор.
Шаг второй: монтаж платы
Изготовив печатную плату, мастер приступает к ее монтажу.
Схему устройства, файл с печатной платой можно найти перейдя по этой ссылке.
Чтобы упростить сборку, он будет добавлять компоненты на плату поэтапно, в порядке увеличения высоты.
Сначала нужно припаять все SMD резисторы и конденсаторы на верхней стороне платы. Значения указаны на плате, но можно использовать прилагаемое изображение для справки. Резистора 10 кОм нет будет на плате. Изначально мастер собирался использовать его для измерения напряжения батареи, но нашел альтернативный способ сделать это.
Затем отрезает и зачищает провода питания маленького лазерного диода. Возможно их придется удалить полностью до контактной площадки лазера.
Помещает лазер в вырез на правой стороне печатной платы. Фиксирует клеем. Припаивает провода лазера к монтажным отверстиям +/- с надписью «Laser 2», как показано на фото.
Затем припаивает два транзистора 2N2222 в правый верхний угол платы согласно обозначениям. При пайке нужно вставлять ножки в плату примерно наполовину, как показано на фото. После того, как они будут припаяны, обрезает ножки, а затем сгибает 2N2222 так, чтобы плоская поверхность находилась напротив верхней части платы.
Переворачивает плату и припаивает отдельные штекерные разъемы к отверстиям возле лазерного диода. Далее припаивает модуль TP4056 к разъемам, как показано на фото. Порт USB должен быть совмещен с краем платы.
Далее монтирует плату MPU6505, как показано на фото. Нужно постараться, чтобы MPU6050 был установлен как моно параллельно плате. Это поможет сохранить его начальные значения угла близкими к нулю.
Припаивает штыревые разъемы для Arduino Pro-Mini на верхней стороне платы. Их ориентация не имеет значения, за исключением самого верхнего ряда. Это программный заголовок для платы, поэтому очень важно, чтобы они были ориентированы так, чтобы длинная сторона разъемов располагалась на верхней стороне печатной платы уровня. Кроме того, нужно убедитесь, что используются контакты A4-7, соответствующую данному Pro-Mini (здесь они расположены в виде ряда вдоль нижней части платы, но у некоторых они расположены парами вдоль одного края). Припаивает Arduino Pro-Mini на место.
Теперь нужно установить OLED-дисплей SSD1306 к верхней части платы. Как и в случае с MPU6050, нужно, чтобы дисплей был максимально параллелен плате уровня. Платы SSD1306, похоже, бывают двух возможных конфигураций, одна с перевернутыми контактами GND и VCC. Оба будут работать на данной плате, но нужно настроить контакты с помощью перемычек на задней стороне печатной платы уровня.
Припаивает две тактильные кнопки и ползунковый переключатель на место, как показано на фото. Здесь нужно будет обрезать монтажные выступы ползункового переключателя кусачками.
Дальше нужно установить батарею. Мастер приклеивает липучку к плате и к батареи (на первом фото красный провод имеет отношение к первой версии платы).
Затем закрепляет аккумулятор на плате. Провода от аккумулятора, согласно полярности, припаивает к B + и B- на TP4056.
На этом печатная плата уровня готова, еще один лазерный диод будет установлен позже.
Шаг третий: корпус
Детали корпуса мастер напечатал на 3D-принтере. Файлы для печати можно скачать здесь.
В файлах присутствуют два варианта корпуса для печати. «Main Base.stl» и «Main Top.stl» для корпуса с лазером-крестом, и «Main Base No Cross.stl» и «Main Top No Cross.stl» без креста.
В обоих случаях на внешней стороне корпуса приклеиваются круглые магниты 1×6 мм в каждое из отверстий. Всего понадобится 20 магнитов.
Затем нужно приклеить заготовку из акрила в соответствующее окно. Для того, чтобы можно было перепрограммировать уровень после того, как он будет собран, нужно вырезать прямоугольник в верхнем левом углу.
На кнопках прорисовывает контуры букв «M» и «Z».
Устанавливает плату в корпус устройства. Плата должна плотно прилегать к выступам во внутренней части корпуса.
Шаг четвертый: загрузка кода
Код можно скачать здесь.
Перед прошивкой нужно установить следующие библиотеки:
I2C Dev
Adafruit’s SSD1306 library
Voltage Reference
Чтобы загрузить код, необходимо подключить кабель программирования FTDI к шестиконтактному разъему над Arduino pro-mini. Кабель FTDI должен иметь либо черный провод, либо маркер для ориентации. Когда мы вставляем кабель в разъем, черный провод должен входить в контакт с маркировкой «blk» на плате уровня. Если все сделано правильно, светодиодный индикатор питания на Arduino должен загореться, в противном случае нужно перевернуть кабель.
Также можете загрузить код, используя Arduino Uno, как описано здесь.
Обязательно выберите Arduino Pro-Mini 5V в качестве платы в меню инструментов при загрузке. Перед загрузкой кода следует откалибровать MPU6050, запустив пример «IMU_Zero» (находится в меню примеров для MPU6050). Используя результаты, нужно изменить показания в верхней части кода. Как только смещения установлены, можно загрузить код, и уровень должен заработать. Если не используется лазер с перекрестными линиями, то нужно установить для «crossLaserEnable» значение false в коде.
Смена режима уровня осуществляется кнопкой «M». Нажатие кнопки «Z» обнулит угол или включит один из лазеров в зависимости от режима. В режиме крена или XY двойное нажатие кнопки «Z» включит перекрестный лазер.
Если код не загружается, возможно, придется установить плату как Arduino Uno с помощью меню инструментов.
Если дисплей не включается, проверьте его адрес I2C у продавца. По умолчанию в коде это 0x3C. Его можно изменить, изменив DISPLAY_ADDR в верхней части кода. Если это не поможет, придется вынуть печатную плату уровня из корпуса и убедиться, что контакты дисплея соответствуют контактам на плате уровня. Если они соответствуют, возможно поврежден дисплей.
Шаг пятый: установка перекрестного лазера
Дальше нужно установить лазерный модуль в корпус, как показано на фото, он должен защелкнуться в закругленных вырезах для лазера.
Затем провода лазера нужно протянуть под дисплеем к порту Laser 1 на печатной плате уровня. Зачистить и припаять их к +/-, как показано на фото. Красный провод плюс.
Теперь нужно выровнять лазер с корпусом уровня. Для этого мастер использовал пластиковую карточку, согнутую под прямым углом. Помещает уровень и учетную карточку на одну и ту же поверхность. Включает перекрестный лазер и наводит его на карточку. Используя пинцет или плоскогубцы, вращает переднюю крышку линзы лазера с рифлением, пока крест лазера не совместится с горизонтальными линиями карточки. Фиксирует крышку каплей термоклея.
Теперь можно собрать две половинки корпуса просто вставив и защелкнув их.
Шаг шестой: платформа
Дальше мастер переходит к этапам сборки платформы. Платформа предназначена для использования вместе с режимом уровня XY. Три ручки регулировки позволяют точно контролировать угол наклона уровня, что полезно при работе с неровными поверхностями. В платформе также есть место для гайки, которая позволяет установить уровень на штативе камеры.
Снизу платформы устанавливаются и приклеиваются три гайки M3.
Дальше нужно собрать три болта M3 длинной 16 мм. Головка болта должна быть заподлицо с верхней частью ручки.
Затем нужно закрутить винты в болты платформы и накрутить на них ножки.
Все готов.
Источник (Source)
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
Подборки: перекрестный уровень Arduino Диод
Источник: