Оглавление:
- Шаг 1. Инструменты и материалы
- Шаг 2: склейте деревянную раму
- Шаг 3: Вырежьте раму с помощью приспособления для резки круга
- Шаг 4: Распечатайте и соберите шестерни
- Шаг 5: «Склейте» части вместе
- Шаг 6: вырезание рельефа в раме
- Шаг 7: Отрежьте зазор для датчиков Холла
- Шаг 8: приклейте внешнее кольцо
- Шаг 9: Отрежьте регулировочные винты датчика Холла
- Шаг 10: приклеиваем кольца к оргалиту
- Шаг 11: приклейте внутренний диск
- Шаг 12: прикрепите шпон
- Шаг 13: Обрезка шпона
- Шаг 14: вырезать шпон
- Шаг 15: приклеиваем шпон
- Шаг 16: отшлифуйте и закончите
- Шаг 17: Установите питание
- Шаг 18: соберите электронику
- Шаг 19: припаяйте и подключите электронику
- Шаг 20: задняя пластина
- Шаг 21: код Arduino
- Шаг 22: файлы STL
- Шаг 23. Файлы Solidworks
- Шаг 24: Заключение
Видео: Завораживающие магнитные настенные часы: 24 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Меня всегда интересовали механические часы. То, как все внутренние шестерни, пружины и спусковые механизмы работают вместе, чтобы обеспечить постоянную надежность часов, всегда казалось недосягаемым для моего ограниченного набора навыков. К счастью, современная электроника и детали, напечатанные на 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, я доволен тем, как это получилось и насколько точно. Он отлично выглядит и работает так, как я и надеялся.
Рекомендуемые:
Взрывающиеся настенные часы своими руками с подсветкой движения: 20 шагов (с изображениями)
Взрывающиеся настенные часы своими руками с подсветкой движения: в этом обучающем видео я покажу вам шаг за шагом, как создать креативные и уникальные настенные часы со встроенной системой освещения движения. Эта довольно уникальная идея дизайна часов ориентирована на то, чтобы сделать часы более интерактивными. . Когда я иду
Магнитные часы на холодильник: 9 шагов (с изображениями)
Магнитные часы на холодильник: Меня всегда восхищали необычные часы. Это одно из моих последних творений, в котором для отображения времени используются алфавитные цифры холодильника. Цифры нанесены на кусок тонкого белого оргстекла, к которому прикреплен тонкий лист металла
Настенные светодиодные часы Ambient: 11 шагов (с изображениями)
Настенные светодиодные часы Ambient: недавно я видел, как многие люди строят огромные светодиодные матрицы, которые выглядят абсолютно красиво, но состоят либо из сложного кода, либо из дорогих частей, либо из того и другого. Поэтому я подумал о создании собственной светодиодной матрицы, состоящей из очень дешевых деталей и очень
Светодиодные аналоговые настенные часы с использованием Arduino: 4 шага
Светодиодные аналоговые настенные часы с использованием Arduino: это светодиодные аналоговые настенные часы с использованием Arduino
Настенные часы Infinity Mirror в рамке IKEA: 4 шага
Настенные часы Infinity Mirror в рамке IKEA Picture Frame: Здравствуйте, я всегда хотел построить настенные часы. В таких магазинах, как IKEA, немало замечательных настенных часов. У меня были проблемы с этими коммерческими часами. Они слишком громкие для меня (раздражают сплошные крестики-нолики), часовых стрелок не видно