Оглавление:

Многофункциональные часы с кубом на основе положения: 5 шагов (с изображениями)
Многофункциональные часы с кубом на основе положения: 5 шагов (с изображениями)

Видео: Многофункциональные часы с кубом на основе положения: 5 шагов (с изображениями)

Видео: Многофункциональные часы с кубом на основе положения: 5 шагов (с изображениями)
Видео: Плюнул на Amazfit и Xiaomi и Взял АМОЛЕД Часы! 🔥 2999 руб Новинка Mibro Watch X1 2024, Июль
Anonim
Image
Image
Многофункциональные кубические часы на основе положения
Многофункциональные кубические часы на основе положения
Многофункциональные кубические часы на основе положения
Многофункциональные кубические часы на основе положения

Проекты Fusion 360 »

Это часы на базе Arduino с OLED-дисплеем, которые работают как часы с датой, как таймер дневного сна и как ночник. Различные «функции» управляются акселерометром и выбираются вращением кубических часов.

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

У меня было несколько целей для этого проекта:

  1. Отображение этого времени с возможностью отключения
  2. Включите функцию ночника
  3. Включите таймер сна на 15 минут с будильником
  4. Уметь отображать дату

Запасы

  • Arduino Pro Mini 5 В
  • Трехосевой акселерометр ADXL335
  • DS3231 AT24C32 IIC Precision Часы реального времени
  • Мини-динамик
  • OLED-дисплей SSD1306 IIC 0,96 дюйма
  • Источник питания 5 В постоянного тока
  • LED x 2
  • Резисторы 220 Ом x 2
  • Штекерное гнездо постоянного тока
  • Проволока
  • Инструменты

    • Кусачки / стрипперы
    • Паяльник / припой
    • 3D-принтер (опционально)
    • Программатор FTDI для взаимодействия между Pro mini и Arduino IDE

Шаг 1: прототип и проверка схемы

Прототип и испытание схемы
Прототип и испытание схемы
Прототип и испытание схемы
Прототип и испытание схемы
Прототип и испытание схемы
Прототип и испытание схемы

Подключите компоненты к Arduino. Макет или схема макета показаны выше. RTC и OLED используют протокол I2C для взаимодействия с Arduino и используют контакты A4 и A5. Акселерометр использует 3 аналоговых контакта. Я использовал A0, A1, A2. Светодиоды и Piezo могут использовать любой из цифровых контактов, я использовал 4 и 8 соответственно.

Интерфейс с каждым компонентом. Мне пришлось установить несколько библиотек Arduino для взаимодействия с каждым компонентом. Они показаны на изображении выше.

Код с использованием IDE Arduino. Я просмотрел несколько примеров набросков, предоставленных каждой библиотекой, чтобы выяснить правильный синтаксис для каждого компонента в зависимости от того, что я хотел, чтобы они делали. Я придумал эскиз для каждого компонента, чтобы протестировать их индивидуально. Они представлены ниже. Я начал с пьезо-динамика, потому что он был самым простым. На самом деле ему не нужна была специальная библиотека, а просто специальная функция, которая устанавливает частоту и звук. Для того, чтобы светодиоды заработали, требовалось всего лишь подтянуть один из цифровых выводов вверх и вниз. Затем я перешел на OLED, и это тоже было довольно просто настроить. Приведенный ниже эскиз представляет собой демонстрацию Adafruit, в которой просматриваются все анимации / тексты, которые могут отображаться. Затем я попытался заставить работать RTC. Приведенный мной эскиз был частью примера в библиотеке, которая получает текущее время и выводит его на монитор последовательного порта. Наконец, я использовал предоставленный пример для проверки акселерометра. Выходы каждой оси печатаются на серийном мониторе.

Пришло время собрать все воедино!

Шаг 2: Основная программа

Основная программа
Основная программа
Основная программа
Основная программа

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

Мне нужно было отображать время и дату на OLED-экране, что было довольно просто. Мне просто нужно было вывести текущее время на дисплей вместо последовательного монитора. Мне пришлось учесть несколько моментов форматирования, чтобы он отображал 12-часовой формат вместо 24 и добавлял / удалял нули там, где они были уместны. Дата была аналогичной с добавлением отображения месяца и дня в прямоугольниках, нарисованных на экране. Я использовал вложенный цикл FOR для создания таймера и отключения пьезо после окончания цикла. Я решил сделать так, чтобы экран мигал при срабатывании зуммера, что было базовой анимацией, взятой из демонстрации Adafruit. Я сделал поворот куба обратно в положение часов - единственный способ отключить зуммер. Наконец, мне нужен способ выключить экран, для чего достаточно просто очистить дисплей. Теперь мне нужно, чтобы все эти функции работали на основе выходных данных акселерометра. Я использовал скрипт Accel_Test, чтобы определить координаты оси каждой позиции, которую я хотел, чтобы каждая функция выполнялась. Я вручную переставил микросхему акселерометра и записал показания на последовательном мониторе. На диаграмме выше показаны выходные координаты каждой позиции СЕРЫМ цветом. Координаты, выделенные КРАСНЫМ цветом, - это границы между каждой позицией, и я использовал эти числа для своей программы. В 4 положениях дисплея необходимы только координаты осей X и Y. Пятая позиция для ночника использует ось Z. Я использовал простые операторы IF для позиций акселерометра перед каждым функциональным блоком. Если вы используете другой акселерометр, эти координаты могут отличаться, и их необходимо будет скорректировать в программе.

Шаг 3: 3D-печать куба

3D-печать куба
3D-печать куба
3D-печать куба
3D-печать куба
3D-печать куба
3D-печать куба

Я решил, что куб будет лучшим дизайном, чтобы приспособить то, как я хотел, чтобы часы работали. Для изготовления модели я использовал fusion360. Мне понадобился вырез для OLED и цилиндрического домкрата. Мне также нужен был легкий доступ для замены аккумуляторной батареи в RTC после того, как все было подключено. Мне нужен был слот, чтобы держать Arduino в ориентации, которую можно было бы легко перепрограммировать в случае необходимости. Кроме того, корпус должен был легко сниматься, чтобы я мог получить доступ к Arduino. Вы можете увидеть модель САПР выше и файлы STL ниже.

Я напечатал корпус из черного PLA с заполнением 20% и разрешением 0,2 мм.

Корпус или рукава были напечатаны на гибкой нити Solutech со 100% заполнением, разрешение 0,3 мм. Я использовал этот материал, потому что он обладает некоторой гибкостью, благодаря чему его легко растягивать по телу. Он также более мягкий на ощупь при вращении часов. Наконец, я выбрал прозрачную нить, чтобы светодиоды ночников светили сквозь нее.

Шаг 4: Сборка

сборка
сборка
сборка
сборка
сборка
сборка

Я соединил все вместе, используя схему из шага 1. Я использовал небольшой кусок перфорированной платы, чтобы соединить все общие провода, так что мне не пришлось припаять несколько проводов к одному контакту на Arduino. Горячий клей использовался, чтобы закрепить все на своих местах, кроме Arduino. Его просто вставили в предназначенный для этого слот. Я убедился, что плата акселерометра расположена перпендикулярно и ровно на нижней части корпуса, чтобы координаты в коде не нужно было менять.

Шаг 5: Загрузите и готово

Загрузите и готово!
Загрузите и готово!
Загрузите и готово!
Загрузите и готово!
Загрузите и готово!
Загрузите и готово!
Загрузите и готово!
Загрузите и готово!

Теперь окончательную программу можно загрузить на часы, чтобы установить правильное время. Ячейка батареи должна сохранять время даже при отключенном питании. Наденьте напечатанный на 3D-принтере рукав на корпус, чтобы скрыть все компоненты, и вы получите готовые кубические часы!

Надеюсь, вам понравится делать этот проект и вы найдете его таким же полезным, как и я. Самое приятное в этом проекте - то, что он очень настраиваемый. Не стесняйтесь добавлять свои собственные различные функции, такие как функция будильника, использовать различные компоненты, такие как более крупный OLED-экран, FM-радиоприемник и т. Д. Удачи!

Рекомендуемые: