Оглавление:
- Шаг 1: материалы
- Шаг 2: Схема подключения
- Шаг 3: сделайте дело
- Шаг 4. Подключите компоненты к макетной плате для проверки возможности подключения (необязательно)
- Шаг 5. Загрузите программное обеспечение в Arduino Nano
- Шаг 6. Установите и подключите OLED-дисплей и пьезо-динамик
- Шаг 7. Установите и подключите аккумулятор, зарядное устройство и переключатель
- Шаг 8: Установите и подключите акселерометр
- Шаг 9: Завершите электронику, подключив Arduino Nano
- Шаг 10: Калибровка
- Шаг 11: установите Arduino Nano и соберите корпус
- Шаг 12: проверьте работу вашего нового цифрового уровня
- Шаг 13: Заключительные мысли…
Видео: DigiLevel - цифровой уровень с двумя осями: 13 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Вдохновением для этого руководства послужил DIY Digital Spirit Level, найденный здесь GreatScottLab. Мне понравился этот дизайн, но я хотел больший дисплей с более графическим интерфейсом. Также хотелось улучшить варианты крепления электроники в корпусе. В конечном итоге я использовал этот проект, чтобы улучшить свои навыки 3D-дизайна (с использованием Fusion 360) и изучить новые электронные компоненты.
DigiLevel предоставит обратную связь о том, является ли поверхность ровной - как по оси x (горизонтально), так и по оси y (вертикально). Отображаются градусы от уровня, а также графическое представление на 2-осевой диаграмме. Кроме того, отображается уровень заряда батареи и текущая температура в градусах Фаренгейта или Цельсия (по данным микросхемы акселерометра). Это минимальная звуковая обратная связь - начальный тональный сигнал для проверки мощности, а затем двойной тональный сигнал каждый раз, когда уровень перемещается из неуровневого положения в горизонтальное.
Я предоставил подробные инструкции о том, как вы можете сделать этот цифровой уровень, но не стесняйтесь расширять и изменять мой дизайн, так же, как я делал это на DIY Digital Spirit Level.
Шаг 1: материалы
Ниже приведены материалы, использованные при создании этого цифрового уровня. Большинство ссылок для покупки относятся к нескольким компонентам, что обычно дешевле, чем покупка отдельных компонентов. Например, микросхема TP4056 поставляется с 10 частями по цене 9 долларов США (менее 1 доллара США / TP4056) или ее можно купить отдельно за 5 долларов США.
- Зарядное устройство для Li-Po аккумулятора TP4056 (Amazon -
- Акселерометр LSM9DS1 (Amazon -
- Arduino Nano (Amazon -
- 128x64 ЖК-дисплей OLED (Amazon -
- Пьезо-динамик (Amazon -
-
Литий-полимерный аккумулятор 3,7 В (Amazon -
a.co/d/1v9n7uP)
- Саморезы M2 с полукруглой головкой - необходимы 4 винта M2x4, 6 M2x6 и 6 M2x8 (eBay -
- Ползунковый переключатель (Amazon -
За исключением винтов, предоставленные ссылки приведут вас на Amazon. Однако почти все эти товары можно купить на eBay или прямо из Китая со значительной скидкой. Просто имейте в виду, что заказ из Китая может занять длительное время (3-4 недели - обычное дело).
Также обратите внимание, что для многих из этих компонентов есть альтернативы. Например, вы можете заменить LSM9DS1 другим акселерометром (например, MPU-9205). Вы можете заменить Arduino Nano, используя любой Arduino-совместимый процессор с соответствующими контактами GPIO.
В частности, LSM9DS1 я купил на распродаже в Sparkfun менее чем за 10 долларов, но обычно он стоит дороже; MPU-9025 (https://a.co/d/g1yu2r1) предоставляет аналогичные функции по более низкой цене.
Если вы сделаете замену, вам, вероятно, потребуется изменить корпус (или, по крайней мере, то, как вы монтируете компонент в корпусе), и вам, вероятно, потребуется изменить программное обеспечение для подключения к альтернативному компоненту. У меня нет этих модификаций - вам нужно будет изучить и обновить по мере необходимости.
Шаг 2: Схема подключения
На схеме подключения показано, как различные электронные компоненты подключаются друг к другу. Красные линии представляют собой положительное напряжение, а черные линии - землю. Желтые и зеленые линии используются для сигналов данных от акселерометра и на ЖК-дисплей OLED. Вы увидите, как эти компоненты связаны друг с другом на следующих этапах.
Шаг 3: сделайте дело
Если у вас есть 3D-принтер, корпус можно довольно легко распечатать. Файлы STL, включенные в это руководство. Если у вас нет 3D-принтера, вы можете загрузить файлы STL в бюро 3D-принтеров (например, в этот) и распечатать их для вас.
Я напечатал свой без полей или рамы (и без опор) и с 20% заполнением, но вы можете распечатать свое, как бы вы ни печатали. Каждый лист должен быть распечатан отдельно, ровно. Возможно, вам придется повернуть его на 45 градусов, чтобы он поместился на платформе принтера. Мой был напечатан с использованием Monoprice Maker Select Plus с размером слоя 200 мм x 200 мм - на печать каждого экземпляра уходило около 12 часов. Если у вас кровать меньшего размера, она может не подойти. Масштабирование не рекомендуется, поскольку в этом случае крепления электронных компонентов не будут масштабироваться надлежащим образом.
Шаг 4. Подключите компоненты к макетной плате для проверки возможности подключения (необязательно)
Я настоятельно рекомендую подключить основные компоненты к макетной плате, чтобы проверить возможность подключения, прежде чем приступить к установке компонентов внутри корпуса. Вы можете загрузить программное обеспечение в Arduino Nano (см. Следующий шаг) и убедиться, что ЖК-дисплей OLED правильно подключен и работает, а также что акселерометр подключен правильно и передает свои данные в Arduino Nano.. Кроме того, это можно использовать для проверки работы дополнительного пьезодинамика.
Аккумулятор и зарядное устройство к макетной плате на данном этапе не подключал - подключение переключателя для управления аккумулятором производится после того, как вы установите переключатель в корпус. На последнем рисунке показано, как это выглядит до подключения.
Шаг 5. Загрузите программное обеспечение в Arduino Nano
Программное обеспечение загружается в Arduino Nano с помощью Arduino IDE. Это можно сделать в любое время в процессе построения DigiLevel, но лучше всего это сделать, когда компоненты подключены с использованием макета (см. Предыдущий шаг), чтобы проверить правильность подключения и работу электрических компонентов.
Программное обеспечение требует установки 2-х библиотек. Первая - это библиотека U8g2 (от oliver) - вы можете установить ее, щелкнув «Скетч -> Включить библиотеку -> Управление библиотеками…» в Arduino IDE. Найдите U8g2 и нажмите «Установить». Вторая библиотека - это библиотека Sparkfun LSM9DS1. Вы можете получить инструкции по установке этой библиотеки здесь.
После спецификаций библиотеки в программном обеспечении есть раздел настройки и основной цикл обработки. Раздел настройки инициализирует акселерометр и OLED-ЖК-дисплей, а затем отображает начальный экран перед отображением основного дисплея. Если динамик подключен, он издаст один звуковой сигнал на динамике, чтобы обозначить состояние включения.
Основной цикл обработки отвечает за считывание показаний акселерометра, получение углов x и y, а затем отображение значений в виде набора абсолютных чисел, а также графического изображения на графике. Также отображается показание температуры акселерометра (в градусах Фаренгейта или Цельсия). Если уровень ранее был неуровневым, при возврате на уровень он издаст два звуковых сигнала в динамике (если он подключен).
Наконец, напряжение от батареи получается для определения и отображения текущего уровня заряда батареи. Я не знаю, насколько точен этот код, но он достаточно точен, чтобы показать полную батарею и постепенное снижение уровня заряда батареи во время использования.
Шаг 6. Установите и подключите OLED-дисплей и пьезо-динамик
1,3-дюймовый OLED-дисплей (128x64) крепится к верхней половине корпуса с помощью 4 саморезов M2x4 с полукруглой головкой. Я предлагаю вам подключить провода к дисплею перед установкой. Это гарантирует, что вы увидите, как расположены контакты помечены, когда вы подключаете провода. После того, как дисплей будет установлен, вы не сможете увидеть метки для контактов. Вы заметите, что я добавил метку на задней стороне дисплея, чтобы я мог запомнить значения контактов (так как я не делал этого в первый раз и неправильно подключил…).
Громкоговоритель издает короткий звуковой сигнал при включении цифрового уровня, чтобы убедиться, что батарея исправна и работает. Он также издает двойной звуковой сигнал всякий раз, когда уровень перемещается из неуровневого положения в горизонтальное положение. Это необходимо для обеспечения звуковой обратной связи при позиционировании уровня или любого другого уровня. Крепится к верхней половине корпуса с помощью 2 саморезов M2x4 с полукруглой головкой. Вам не нужен динамик - DigiLevel будет нормально работать и без него, однако звуковой обратной связи будет не хватать.
Шаг 7. Установите и подключите аккумулятор, зарядное устройство и переключатель
Перед подключением к батарее переключатель необходимо установить на корпус. Это потому, что если вы сначала подключите его, вы не сможете установить переключатель, не отключив его. Поэтому сначала установите коммутатор, затем установите предварительно смонтированный TP4056 и Li-Po аккумулятор, а затем завершите подключение к коммутатору.
TP4056 имеет 4 контактные площадки: B +, B-, Out +, Out-. Вам нужно подключить аккумулятор к клеммам B + (положительное напряжение) и B- (земля). Выходное соединение используется для заземления, которое будет подключено к Arduino Nano, а выход Out + подключен к одному контакту переключателя. Затем второй контакт переключателя подключается к VIN Arduino Nano.
Моя паяльная работа не самая лучшая - мне нравится использовать термоусадочную трубку, чтобы покрыть и изолировать паяное соединение. Вы заметите, что на одном из паяных соединений здесь термоусадочная трубка подверглась воздействию тепла пайки, и она сжалась до того, как я смог ее сдвинуть.
Шаг 8: Установите и подключите акселерометр
Акселерометр (LSM9DS1) установлен посередине нижней половины корпуса. Необходимо подключить 4 контакта: VCC подключается к контакту V5 на Arduino Nano; GND идет на землю; SDA подключается к контакту A5 на Arduino Nano; и SCL идет к контакту A4 на Arduino Nano.
Я использовал перемычки с разъемами Dupont для проводки, однако вы можете припаять провод прямо к контактам, если хотите. Если вы припаяете провода непосредственно к контактам, вы, вероятно, захотите сделать это перед установкой микросхемы акселерометра, чтобы упростить задачу.
Шаг 9: Завершите электронику, подключив Arduino Nano
Окончательная разводка выполняется путем подключения всех электрических компонентов к Arduino Nano. Лучше всего это сделать до установки Arduino Nano, чтобы USB-порт был доступен для калибровки и любых других изменений программного обеспечения в последнюю минуту.
Начните с подключения переключателя к Nano. Положительный вывод (красный) идет от переключателя к контакту VIN Nano. Отрицательный провод (черный) от батареи будет соединяться с контактом GND на Nano. На Nano есть два контакта GND, и все четыре электрических компонента имеют заземляющий провод. Я решил объединить две земли в нижней части корпуса в один вывод, подключенный к одному из контактов GND. Два заземления в верхней части корпуса я объединил в один вывод, подключенный к другим контактам GND.
Акселерометр (LSM9DS1) можно подключить к Nano, подключив вывод VDD на акселерометре к выводу 3V3 на Nano. НЕ подключайте его к контакту 5V, иначе вы повредите микросхему акселерометра. Подключите SDA к контакту A4 на Nano, а SCL к контакту A5 на Nano. Контакт GND идет к контакту GND на Nano (вместе с отрицательным выводом от батареи).
Затем OLED LCD-дисплей можно подключить к Nano, подключив вывод VCC на дисплее к выводу 5V на Nano. Подключите SDA к контакту D2 на Nano, а SCL к контакту D5 на Nano.
Наконец, динамик можно подключить, подключив красный провод (положительный) к контакту D7 на Nano. Черный провод идет на GND вместе с GND ЖК-дисплея OLED.
Шаг 10: Калибровка
После загрузки программного обеспечения и перед установкой Arduino Nano вам может потребоваться откалибровать свой уровень. Убедитесь, что плата акселерометра установлена. При установке винтами доска должна выровняться, однако, если она по какой-либо причине немного отклонена, калибровка обеспечит правильное отображение.
Положите нижнюю часть корпуса на известную ровную поверхность (с помощью пузырькового уровня или других средств). Считайте отображаемые значения для X и Y. Если какой-либо из них не равен нулю, вам необходимо обновить программное обеспечение, указав калибровочную величину. Это делается путем установки либо переменной xCalibration, либо переменной yCalibration на соответствующую величину (то, что отображается).
// // Устанавливаем эти переменные с соответствующими начальными значениями // bool displayF = true; // истина для Фаренгейта, ложь для Цельсия int xCalibration = 0; // калибровочная величина для выравнивания оси x int yCalibration = 0; // калибровочная величина для выравнивания длинной оси y irvCalibration = 1457; // калибровочная величина для внутреннего опорного напряжения
В это время вы также должны установить значение displayF на соответствующую настройку в зависимости от того, хотите ли вы, чтобы температура отображалась в градусах Фаренгейта или Цельсия.
Перезагрузка программного обеспечения на Nano теперь должна привести к показанию 0/0 на поверхности известного уровня.
Шаг 11: установите Arduino Nano и соберите корпус
После завершения калибровки вы можете установить Arduino Nano в корпус, нанеся горячий клей на направляющие и поместив Arduino Nano на эти направляющие так, чтобы контакты были обращены вверх, а порт USB был обращен внутрь корпуса.
Корпус, содержащий всю электронику, теперь можно собрать, соединив две половины и используя 4 самореза M2x8 с цилиндрической головкой.
Шаг 12: проверьте работу вашего нового цифрового уровня
Убедитесь, что Li-Po аккумулятор заряжен. Если корпус собран, вы не сможете увидеть светодиодные индикаторы зарядки напрямую. Если вы хотите проверить процесс зарядки, посмотрев непосредственно на индикаторы зарядки, вам нужно будет открыть футляр, однако вы должны увидеть красное свечение, указывающее, что зарядка происходит при закрытом футляре.
После зарядки и сборки включите цифровой уровень и проверьте его работу. Если он не работает, две вероятные точки неисправности - это проводка для OLED-ЖК-дисплея и проводка для акселерометра. Если на дисплее ничего не отображается, начните с проводки OLED LCD. Если дисплей работает, но метки H и V показывают 0, а температура равна 0 (C) или 32 (F), то акселерометр, вероятно, подключен неправильно.
Шаг 13: Заключительные мысли…
Я собрал этот цифровой уровень (и Инструкцию) в первую очередь в качестве учебного опыта. Для меня было менее важно создать функционирующий уровень, поскольку он должен был исследовать различные компоненты и их возможности, а затем соединять их вместе таким образом, чтобы это добавляло ценности.
Какие улучшения я бы сделал? Есть несколько, которые я рассматриваю для будущего обновления:
- Откройте USB-порт Arduino Nano через корпус, изменив способ его установки. Это позволит упростить обновление программного обеспечения (что в любом случае должно быть редкостью).
- Напечатайте корпус на 3D-принтере с помощью деревянной нити. Я экспериментировал с филаментом Hatchbox Wood и очень доволен полученными результатами. Я думаю, это улучшит общий вид DigiLevel.
- Обновите конструкцию, чтобы использовать акселерометр MPU-9250, чтобы снизить стоимость, не влияя на работу.
Это моя первая инструкция, и я буду благодарен за обратную связь. Хотя я пытался избежать этого, я уверен, что это все еще более ориентировано на США - так что извиняюсь за тех, кто находится за пределами США.
Если вы нашли это интересным, проголосуйте за меня в Конкурсе впервые написанных авторов. Спасибо, что дочитали до конца!
Второе место в рейтинге авторов, впервые занявших второе место
Рекомендуемые:
Осциллограф с двумя трассами: 11 шагов (с изображениями)
Осциллограф с двумя трассами: когда я собирал свой предыдущий мини-осциллограф, я хотел посмотреть, насколько хорошо я смогу заставить работать свой самый маленький микроконтроллер ARM STM32F030 (F030), и он отлично справился со своей задачей. В одном из комментариев было высказано предположение, что "Синяя таблетка" с STM32F103
Сделай сам поворотный с двумя моторами: 10 шагов (с изображениями)
Сделай сам поворотный с двумя двигателями: сначала я всегда хотел иметь поворотный стол для стрельбы, и недавно я обнаружил, что там оказались два холостых мотор-редуктора. Итак, я подумал, могу ли я сделать с ними поворот. Без лишних слов, я попробую! Принцип: уменьшение r
Smart Planter - показывает уровень воды: 5 шагов (с изображениями)
Умное кашпо - указывает уровень воды: мы только что купили несколько симпатичных растений для нашего нового дома. Между всеми электронными устройствами, установленными в доме, растения действительно вызывают ощущение живости. Взамен я хотел сделать что-нибудь для растений. Вот почему я разработал этот умный план
Уровень DIY Digital Spirit: 5 шагов (с изображениями)
DIY Digital Spirit Level: в этом проекте мы более подробно рассмотрим микросхемы акселерометра и узнаем, как их можно использовать с Arduino. Впоследствии мы объединим такую ИС с парой дополнительных компонентов и корпусом, напечатанным на 3D-принтере, чтобы создать цифровой
Совершенная автоматическая кормушка для рыбы своими руками: уровень 2: 10 шагов (с изображениями)
Ultimate DIY Automatic Fish Feeder: Tier 2: Tier 2 Feeder - большой шаг вперед по сравнению с Tier 1. В этой версии используется модуль Wi-Fi ESP8266 для синхронизации часов Arduino для управления графиком кормления и освещением аквариума