Оглавление:

Завораживающие магнитные настенные часы: 24 шага (с изображениями)
Завораживающие магнитные настенные часы: 24 шага (с изображениями)

Видео: Завораживающие магнитные настенные часы: 24 шага (с изображениями)

Видео: Завораживающие магнитные настенные часы: 24 шага (с изображениями)
Видео: Охрана Путина 🫵🏻 2024, Июль
Anonim
Завораживающие магнитные настенные часы
Завораживающие магнитные настенные часы
Завораживающие магнитные настенные часы
Завораживающие магнитные настенные часы

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

Эти минималистичные настенные часы скрывают пару напечатанных на 3D-принтере кольцевых шестерен, приводимых в движение недорогими шаговыми двигателями, которые вращают магниты, за классической фанерой из орехового дерева.

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

Изображение
Изображение

Шаг 1. Инструменты и материалы

Инструменты и материалы
Инструменты и материалы
Инструменты и материалы
Инструменты и материалы
Инструменты и материалы
Инструменты и материалы
Инструменты и материалы
Инструменты и материалы

Материалы:

  • 13 x 13 x 2 дюйма. Фанера / ДСП (я склеил 3 куска обрезков древесины)
  • Оргалит 13 x 13 дюймов
  • Ардуино Нано
  • Часы реального времени
  • Шаговые двигатели и драйверы
  • Датчики на эффекте Холла
  • Магниты
  • Силовой кабель
  • АС адаптер
  • Затыкать
  • Ассорти машинных винтов
  • Ассорти шурупов по дереву
  • Детали, напечатанные на 3D-принтере (последний шаг)
  • Шпон (12 x 12 дюймов - лицевая сторона, полоса длиной 40 дюймов)
  • Спрей-лак
  • Черная аэрозольная краска

Инструменты:

  • 3д принтер
  • Компас
  • X-acto нож
  • Клей
  • Зажимы
  • Приспособление для резки круга
  • Hack Saw
  • Дисковый шлифовальный станок
  • Зажим с храповым механизмом
  • Долото
  • Правитель
  • шлифовальный
  • Сверла
  • Отвертки
  • Паяльник
  • Пистолет для горячего клея

Шаг 2: склейте деревянную раму

Склейте деревянную раму
Склейте деревянную раму
Склейте деревянную раму
Склейте деревянную раму
Склейте деревянную раму
Склейте деревянную раму
Склейте деревянную раму
Склейте деревянную раму

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

Шаг 3: Вырежьте раму с помощью приспособления для резки круга

Вырезать раму с помощью приспособления для резки круга
Вырезать раму с помощью приспособления для резки круга
Вырезать раму с помощью приспособления для резки круга
Вырезать раму с помощью приспособления для резки круга
Вырезать раму с помощью приспособления для резки круга
Вырезать раму с помощью приспособления для резки круга
Вырезать раму с помощью приспособления для резки круга
Вырезать раму с помощью приспособления для резки круга

Отметьте центр доски и закрепите на приспособлении для резки круга. Вырежьте пять кругов следующих диаметров:

  • 12 дюйм.
  • 11 1/4 дюйма
  • 9 1/4 дюйма
  • 7 1/4 дюйма
  • 5 3/8 дюйма

Шаг 4: Распечатайте и соберите шестерни

Распечатать и собрать шестерни
Распечатать и собрать шестерни
Распечатать и собрать шестерни
Распечатать и собрать шестерни

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

Выведите следующее количество деталей, найденных на шаге 22:

  • 1-часовой сегментный магнит с кольцевой шестерней
  • 6-часовой сегмент зубчатого колеса, базовый
  • 1-часовое крепление шагового сегмента со стопорным кольцом
  • 6-часовой сегмент стопорного кольца, базовый
  • 1-часовой держатель датчика Холла
  • 1-минутный магнит сегмента зубчатого венца
  • 7-минутный сегмент кольцевой шестерни, базовый
  • 1-минутное крепление шагового сегмента стопорного кольца
  • 6-минутный сегмент удерживающего кольца, базовый
  • 1-минутный держатель датчика Холла
  • 2 - прямозубая шестерня
  • 1 - Крепление электроники

Шаг 5: «Склейте» части вместе

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение

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

Шаг 6: вырезание рельефа в раме

Вырезать рельефы в рамке
Вырезать рельефы в рамке
Вырезать рельефы в рамке
Вырезать рельефы в рамке
Вырезать рельефы в рамке
Вырезать рельефы в рамке

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

Шаг 7: Отрежьте зазор для датчиков Холла

Зазор для датчиков Холла
Зазор для датчиков Холла
Зазор для датчиков Холла
Зазор для датчиков Холла
Зазор для датчиков Холла
Зазор для датчиков Холла

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

Шаг 8: приклейте внешнее кольцо

Клей внешнее кольцо
Клей внешнее кольцо

Приклейте и скотчем внешнее кольцо размером с стопорное кольцо минуты.

Шаг 9: Отрежьте регулировочные винты датчика Холла

Отрежьте регулировочные винты датчика Холла
Отрежьте регулировочные винты датчика Холла

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

Шаг 10: приклеиваем кольца к оргалиту

Приклеиваем кольца к ДВП
Приклеиваем кольца к ДВП
Приклеиваем кольца к ДВП
Приклеиваем кольца к ДВП
Приклеиваем кольца к ДВП
Приклеиваем кольца к ДВП

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

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

Шаг 11: приклейте внутренний диск

Клей внутренний диск
Клей внутренний диск
Клей внутренний диск
Клей внутренний диск

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

Шаг 12: прикрепите шпон

Прикрепите шпон
Прикрепите шпон
Прикрепите шпон
Прикрепите шпон
Прикрепите шпон
Прикрепите шпон
Прикрепите шпон
Прикрепите шпон

Отрежьте полоску фанеры шире, чем часы, чтобы она была глубокой и достаточно длинной, чтобы обернуть ее круглосуточно (диаметр часов 3,14 *, вернет необходимую длину. Добавьте дюйм, чтобы убедиться, что у вас достаточно). Насухо установите фанеру на отрезать по длине. Нанесите на шпон достаточное количество клея и зафиксируйте его зажимом для ремня. Дайте высохнуть пару часов, чтобы обеспечить адгезию.

Шаг 13: Обрезка шпона

Обрезать шпон
Обрезать шпон

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

Шаг 14: вырезать шпон

Вырезать шпон
Вырезать шпон
Вырезать шпон
Вырезать шпон

На моей фанере были трещины. Чтобы с ним было легче работать, я применил малярный скотч, чтобы скрепить его. Используя нож x-acto в компасе, вырежьте фанеру размером чуть больше, чем циферблат часов.

Шаг 15: приклеиваем шпон

Клей Шпон
Клей Шпон
Клей Шпон
Клей Шпон

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

Я использовал пару плоских досок на лицевой стороне часов и несколько замков на обратной стороне.

Шаг 16: отшлифуйте и закончите

Отшлифовать и закончить
Отшлифовать и закончить
Отшлифовать и закончить
Отшлифовать и закончить

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

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

Шаг 17: Установите питание

Установить питание
Установить питание
Установить питание
Установить питание

С помощью сверла 27/64 дюйма просверлите отверстие в нижней части часов и вверните вилку питания на место.

Шаг 18: соберите электронику

Собрать электронику
Собрать электронику
Собрать электронику
Собрать электронику
Собрать электронику
Собрать электронику
Собрать электронику
Собрать электронику

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

Шаг 19: припаяйте и подключите электронику

Паять и соединять электронику
Паять и соединять электронику
Паять и соединять электронику
Паять и соединять электронику
Паять и соединять электронику
Паять и соединять электронику

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

Изображение
Изображение

Шаг 20: задняя пластина

Задняя пластина
Задняя пластина
Задняя пластина
Задняя пластина
Задняя пластина
Задняя пластина

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

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

Вырежьте прорезь длиной 1 дюйм и шириной 1/4 дюйма в верхней части задней части с помощью фрезы или сверла. Сделайте зенковку в четырех отверстиях, чтобы закрепить заднюю часть корпуса в корпусе часов.

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

Шаг 21: код Arduino

Код arduino прокомментирован как можно лучше. Имейте в виду, что я не программист, у меня минимальный опыт работы с ардуино (будьте добры). Код работает непрерывно, проверяя, совпадает ли текущее время со «временем сброса». Поскольку я не мог придумать способ перевести текущее время в шаги, он исправляется только один раз в день (по умолчанию в полночь). В полночь шестеренки поворачиваются в полночь, затем ждут до 00:01, переход к этому времени, а затем продолжается оттуда. В настоящее время часы теряют около 5 секунд за 24 часа.

Вам потребуются установленные библиотеки Stepper и RTClib.

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

#включают

#include "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // количество шагов за один оборот шагового двигателя 28BYJ-48 Stepper hourHand (oneRotation, 3, 5, 4, 6); Шаговый минутаHand (oneRotation, 7, 9, 8, 10); #define hourStopSensor 12 #define minuteStopSensor 11 int endStep = 0; // Время зависит от скорости часов. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Текущее время для вычислений. float hr = 0; float mn = 0; float sc = 0; // Устанавливаем время дня для сброса часов (24-часовой формат). int resetHour = 0; int resetMinute = 0; // Переменные для установки правильного времени при запуске и сброса. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float hourTest = 0; float minuteTest = 0; void setup () {Serial.begin (115200); // Настройка часов реального времени и сброс датчиков холла. pinMode (hourStopSensor, INPUT_PULLUP); pinMode (minuteStopSensor, INPUT_PULLUP); rtc.begin (); // Раскомментируйте строку ниже, чтобы установить время. // rtc.adjust (DateTime (2020, 2, 19, 23, 40, 30)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Устанавливаем максимальную скорость шаговых двигателей. hourHand.setSpeed (15); minHand.setSpeed (15); // Цикл, пока минутная и часовая стрелки не будут в полдень while (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } else {задержка (3); } если (digitalRead (minuteStopSensor) == LOW) {minuteHand.step (3); } else {задержка (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } else {задержка (3); } если (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } else {задержка (4); }} // Получить текущее время DateTime now = rtc.now (); час = now.hour (); mn = now.minute (); sc = now.second (); // Переход на 12-часовой формат if (hr> = 12) {hr = hr - 12; } // Посмотрите, какая рука должна двигаться по лицу дальше, и используйте это расстояние // для соответствующей настройки времени. hourTest = час / 12; minuteTest = мин / 60; если (hourTest> minuteTest) {handDelay = hourTest; } еще {handDelay = minuteTest; } // Устанавливаем текущий час setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Устанавливаем текущую минуту setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Проверяем, какой руке потребуется больше шагов, и устанавливаем самое длинное количество шагов для цикла for. если (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } еще {endStep = setTimeStepMinute; } for (int я = 0; я <= endStep; я ++) {если (я <setTimeStepHour) {hourHand.step (2); } else {задержка (3); } если (я <setTimeStepMinute) {minuteHand.step (3); } else {задержка (4); }} // Устанавливаем текущие часы RPM hourHand.setSpeed (1); minuteHand.setSpeed (1); } void loop () {// Запускаем цикл работы часов. для (int я = 0; я <22; я ++) {minuteHand.step (1); задержка (setDelay1); // Тест на время сброса, если готов к сбросу, останов. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {перерыв; }} задержка (setDelay3); для (int я = 0; я <38; я ++) {hourHand.step (1); задержка (setDelay1); // Тест на время сброса, если готов к сбросу, останов. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {перерыв; } для (int я = 0; я <20; я ++) {minuteHand.step (1); задержка (setDelay2); // Тест на время сброса, если готов к сбросу, останов. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {перерыв; }}} // Сбрасываем часы во время сброса if (rtc.now (). Hour () == resetHour && rtc.now (). Minute () == resetMinute) {// Изменяем скорость часов hourHand.setSpeed (10); minuteHand.setSpeed (10); // Цикл, пока минутная и часовая стрелки не достигнут полудня. while (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } else {задержка (3); } если (digitalRead (minuteStopSensor) == LOW) {minuteHand.step (3); } else {задержка (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } else {задержка (3); } если (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } else {задержка (4); }} // Подождите, пока не пройдет время сброса. в то время как (rtc.now (). минута () == resetMinute) {задержка (1000); } // Получить текущее время DateTime now = rtc.now (); hr = now.hour (); mn = now.minute (); sc = now.second (); // Переход на 12-часовой формат if (hr> = 12) {hr = hr - 12; } // Посмотрите, какая рука должна двигаться по лицу дальше, и используйте это расстояние // для соответствующей настройки времени. hourTest = час / 12; minuteTest = мин / 60; если (hourTest> minuteTest) {handDelay = hourTest; } еще {handDelay = minuteTest; } // Устанавливаем текущий час setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Устанавливаем текущую минуту setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Проверяем, какой руке потребуется больше шагов, и устанавливаем самое длинное количество шагов для цикла for. если (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } еще {endStep = setTimeStepMinute; } for (int я = 0; я <= endStep; я ++) {если (я <setTimeStepHour) {hourHand.step (2); } else {задержка (3); } если (я <setTimeStepMinute) {minuteHand.step (3); } else {задержка (4); }} hourHand.setSpeed (1); minuteHand.setSpeed (1); }}

Шаг 22: файлы STL

Вам нужно будет распечатать следующее количество файлов:

  • 1-часовой сегментный магнит с кольцевой шестерней
  • 6-часовой сегмент зубчатого колеса, базовый
  • 1-часовое крепление шагового сегмента со стопорным кольцом
  • 6-часовой сегмент стопорного кольца, базовый
  • 1-часовой держатель датчика Холла
  • 1-минутный магнит сегмента зубчатого венца
  • 7-минутный сегмент кольцевой шестерни, базовый
  • 1-минутное крепление шагового сегмента стопорного кольца
  • 6-минутный сегмент удерживающего кольца, базовый уровень
  • 1-минутный держатель датчика Холла
  • 2 - прямозубая шестерня
  • 1 - Крепление электроники

Шаг 23. Файлы Solidworks

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

Шаг 24: Заключение

Эти часы оказались лучше, чем я ожидал. Имея минимальный опыт работы с Arduino, я доволен тем, как это получилось и насколько точно. Он отлично выглядит и работает так, как я и надеялся.

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