Table des matières:

Horloge murale magnétique envoûtante : 24 étapes (avec photos)
Horloge murale magnétique envoûtante : 24 étapes (avec photos)

Vidéo: Horloge murale magnétique envoûtante : 24 étapes (avec photos)

Vidéo: Horloge murale magnétique envoûtante : 24 étapes (avec photos)
Vidéo: The 😺 🐈 😺 who brought down 🔥 the 🏡 🏠 full English book review 2024, Novembre
Anonim
Horloge murale magnétique envoûtante
Horloge murale magnétique envoûtante
Horloge murale magnétique envoûtante
Horloge murale magnétique envoûtante

Les horloges mécaniques m'ont toujours fasciné. La façon dont tous les engrenages internes, les ressorts et les échappements fonctionnent ensemble pour donner un garde-temps fiable et constant a toujours semblé hors de portée pour mes compétences limitées. Heureusement, l'électronique moderne et les pièces imprimées en 3D peuvent combler le fossé pour créer quelque chose de simple qui ne repose pas sur de petites pièces métalliques précises.

Cette horloge murale minimaliste cache une paire de couronnes imprimées en 3D entraînées par des moteurs pas à pas peu coûteux qui font tourner des aimants derrière un placage de noyer classique.

Initialement inspiré par STORY Clock, je voulais une montre qui indiquait l'heure à l'aide de roulements à billes uniquement par rapport à la lecture numérique et aux roulements à billes lents que leur produit utilise.

Image
Image

Étape 1: Outils et matériaux

Outils et matériaux
Outils et matériaux
Outils et matériaux
Outils et matériaux
Outils et matériaux
Outils et matériaux
Outils et matériaux
Outils et matériaux

Matériaux:

  • 13 x 13 x 2 po. Contreplaqué/Panneau de particules (j'ai collé ensemble 3 morceaux de bois de rebut)
  • Panneau dur 13 x 13 po
  • Arduino Nano
  • Horloge en temps réel
  • Moteurs pas à pas et pilotes
  • Capteurs à effet Hall
  • Aimants
  • Câble d'alimentation
  • Adaptateur pour courant alternatif
  • Prise de courant
  • Assortiment de vis à métaux
  • Vis à bois assorties
  • Pièces imprimées en 3D (dernière étape)
  • Placage (12 x 12 po - face, bande de 40 po de long)
  • Laque en aérosol
  • Peinture en aérosol noire

Outils:

  • Imprimante 3D
  • Boussole
  • Couteau X-acto
  • La colle
  • Pinces
  • Gabarit de coupe de cercle
  • Scie à métaux
  • Ponceuse à disque
  • Pince à cliquet
  • Ciseau
  • Règle
  • Ponceuse
  • Perceuses
  • Tournevis
  • Fer à souder
  • Pistolet à colle chaude

Étape 2: Collez ensemble le cadre en bois

Cadre en bois à coller
Cadre en bois à coller
Cadre en bois à coller
Cadre en bois à coller
Cadre en bois à coller
Cadre en bois à coller
Cadre en bois à coller
Cadre en bois à coller

Collez ensemble trois morceaux de bois qui formeront le cadre de l'horloge. J'ai utilisé des panneaux de particules récupérés d'un vieux cadre de lit.

Étape 3: Coupez le cadre à l'aide du gabarit de coupe circulaire

Couper le cadre à l'aide du gabarit de coupe circulaire
Couper le cadre à l'aide du gabarit de coupe circulaire
Couper le cadre à l'aide du gabarit de coupe circulaire
Couper le cadre à l'aide du gabarit de coupe circulaire
Couper le cadre à l'aide du gabarit de coupe circulaire
Couper le cadre à l'aide du gabarit de coupe circulaire
Couper le cadre à l'aide du gabarit de coupe circulaire
Couper le cadre à l'aide du gabarit de coupe circulaire

Marquez le centre de la planche et montez sur un gabarit de découpe circulaire. Coupez cinq cercles avec les diamètres suivants:

  • 12 pouces
  • 11 1/4 po
  • 9 1/4 po
  • 7 1/4 po
  • 5 3/8 po

Étape 4: Imprimer et assembler les engrenages

Imprimer et assembler des engrenages
Imprimer et assembler des engrenages
Imprimer et assembler des engrenages
Imprimer et assembler des engrenages

Les couronnes dentées sont divisées en segments afin qu'elles puissent être imprimées sur une petite imprimante et emboîtées ensemble. Toutes les pièces ont été imprimées en ABS pour faciliter le processus de fusion illustré à l'étape suivante. Poncez tous les bords et surfaces des pièces.

Imprimez les quantités suivantes de pièces trouvées à l'étape 22:

  • 1 - Aimant de segment de couronne d'heure
  • 6 - Segment de base de la couronne dentée des heures
  • 1 - Montage pas à pas de segment de bague de retenue d'une heure
  • 6 - Segment d'anneau de retenue d'heure de base
  • 1 - Support de capteur à effet Hall d'une heure
  • 1 - Aimant de segment de couronne de minutes
  • 7 - Segment de base de la couronne dentée des minutes
  • 1 - Montage pas à pas de segment de bague de retenue minute
  • 6 - Segment d'anneau de retenue des minutes de base
  • 1 - Support de capteur à effet Hall minute
  • 2 - Engrenage droit
  • 1 - Support électronique

Étape 5: "Coller" les sections ensemble

Image
Image
Image
Image
Image
Image

Dans une bouteille en verre avec un peu d'acétone, dissoudre le vieux support d'impressions ratées, etc. Peignez le mélange d'acétone sur chaque joint pour fusionner les pièces. Une fois durci, poncez chaque joint à plat.

Étape 6: Découpez les reliefs dans le cadre

Couper les reliefs dans le cadre
Couper les reliefs dans le cadre
Couper les reliefs dans le cadre
Couper les reliefs dans le cadre
Couper les reliefs dans le cadre
Couper les reliefs dans le cadre

Placez les couronnes dentées et les bagues de retenue dans le cadre et découpez les reliefs pour les moteurs pas à pas. J'ai mesuré et coupé la bague intérieure trop grande, alors je l'ai calée à la taille en utilisant des bandes de chant en érable que j'avais dans le magasin.

Étape 7: Dégagement de coupe pour les capteurs à effet Hall

Dégagement de coupe pour les capteurs à effet Hall
Dégagement de coupe pour les capteurs à effet Hall
Dégagement de coupe pour les capteurs à effet Hall
Dégagement de coupe pour les capteurs à effet Hall
Dégagement de coupe pour les capteurs à effet Hall
Dégagement de coupe pour les capteurs à effet Hall

Découpez un trou de dégagement dans la bague intérieure pour le capteur à effet Hall des minutes et la fente pour le capteur à effet Hall des heures. J'ai utilisé un ciseau, une lime et une petite scie à main pour couper ces dégagements.

Étape 8: Collez la bague extérieure

Colle Anneau Extérieur
Colle Anneau Extérieur

Collez et scotchez la bague extérieure de la taille de la bague de retenue des minutes.

Étape 9: Coupez les vis de réglage du capteur à effet Hall

Couper les vis de réglage du capteur à effet Hall
Couper les vis de réglage du capteur à effet Hall

Coupez les vis mécaniques avec une scie à métaux pour qu'elles soient juste plus longues que l'épaisseur de la bague de retenue et du support du capteur à effet Hall. Coupez une fente dans les filetages afin qu'il puisse être ajusté à partir de l'extrémité filetée avec un tournevis plat.

Étape 10: Collez les anneaux sur le panneau dur

Coller les anneaux sur le panneau dur
Coller les anneaux sur le panneau dur
Coller les anneaux sur le panneau dur
Coller les anneaux sur le panneau dur
Coller les anneaux sur le panneau dur
Coller les anneaux sur le panneau dur

Coupez un cercle de panneau dur juste plus grand que l'anneau extérieur. Collez les bagues extérieure et intérieure sur la face du panneau dur. Utilisez la bague de retenue des minutes et la couronne dentée pour placer la bague intérieure. Faites plus attention que moi à ne pas coller la bague intérieure à l'envers. L'image deux montre une nouvelle fente découpée pour le capteur à effet Hall minute.

Utilisez une ponceuse à disque pour couper le panneau dur jusqu'à la taille de l'anneau extérieur.

Étape 11: Collez le disque intérieur

Colle Disque Intérieur
Colle Disque Intérieur
Colle Disque Intérieur
Colle Disque Intérieur

Collez le disque intérieur en place à l'aide de la bague de retenue des heures et de la couronne dentée pour placer le disque intérieur.

Étape 12: Fixez le placage

Attacher le placage
Attacher le placage
Attacher le placage
Attacher le placage
Attacher le placage
Attacher le placage
Attacher le placage
Attacher le placage

Coupez une bande de placage plus large que la profondeur de l'horloge et suffisamment longue pour s'enrouler autour de l'horloge (3,14 * diamètre de l'horloge, renverra la longueur nécessaire. Ajoutez un pouce pour être sûr que vous en avez assez.) Ajustez à sec le placage à coupé à longueur. Appliquer suffisamment de colle sur le placage et fixer en place avec une pince à sangle. Laisser sécher quelques heures pour assurer l'adhérence.

Étape 13: Garniture de placage

Placage de finition
Placage de finition

À l'aide d'un ciseau bien aiguisé, coupez l'excédent de placage à l'avant et à l'arrière de l'horloge.

Étape 14: Couper le placage

Placage coupé
Placage coupé
Placage coupé
Placage coupé

Mon placage avait quelques fissures. Pour faciliter le travail, j'ai appliqué du ruban de peintre pour le maintenir ensemble. À l'aide d'un couteau x-acto dans une boussole, coupez le placage juste plus grand que le cadran de l'horloge.

Étape 15: Coller le placage

Placage de colle
Placage de colle
Placage de colle
Placage de colle

Utilisez les anneaux coupés pour répartir la pression sur le cadran de l'horloge. Appliquez suffisamment de colle sur le côté non adhésif du placage. Orientez le grain verticalement sur le cadran de l'horloge et appliquez de nombreuses pinces en serrant chacune un peu à la fois. Cela garantira que le placage ne bouge pas et qu'il exerce une pression uniforme sur le visage.

J'ai utilisé quelques planches plates sur la face avant de l'horloge et quelques cales à l'arrière.

Étape 16: Poncer et finir

Sable et finition
Sable et finition
Sable et finition
Sable et finition

À l'aide de papier de verre, retirez soigneusement l'excès de placage du cadran de l'horloge et poncez à partir de grain 220 jusqu'à grain 600.

Appliquer entre 10 et 20 couches de laque. Cela créera la surface sur laquelle le roulement à billes roulera. Forcément à cause de la poussière et d'autres particules dans l'air, je pense que des lignes vont apparaître le long du trajet de chaque roulement à billes. L'application de plusieurs couches de finition devrait retarder cela aussi longtemps que possible. Cela facilitera également les futures finitions. Je mettrai à jour cette étape si des lignes apparaissent sur mon horloge.

Étape 17: Installer l'alimentation

Installer l'alimentation
Installer l'alimentation
Installer l'alimentation
Installer l'alimentation

À l'aide d'un foret de 27/64 po, percez un trou au bas de l'horloge et vissez la fiche d'alimentation en place.

Étape 18: Assembler l'électronique

Assembler l'électronique
Assembler l'électronique
Assembler l'électronique
Assembler l'électronique
Assembler l'électronique
Assembler l'électronique
Assembler l'électronique
Assembler l'électronique

Fixez les pilotes pas à pas et l'horloge en temps réel à la carte électronique. J'avais besoin de trouver un moyen de sécuriser l'Arduino afin que des trous soient percés et qu'une fente soit coupée pour une attache zippée. Ces fonctionnalités ont été ajoutées au fichier trouvé à l'étape 22.

Étape 19: Souder et connecter l'électronique

Souder et connecter l'électronique
Souder et connecter l'électronique
Souder et connecter l'électronique
Souder et connecter l'électronique
Souder et connecter l'électronique
Souder et connecter l'électronique

En suivant le schéma fonctionnel, soudez tous les composants ensemble. Collez à chaud les anneaux en place et fixez également tous les fils parasites avec de la colle chaude.

Image
Image

Étape 20: Plaque arrière

Plaque arrière
Plaque arrière
Plaque arrière
Plaque arrière
Plaque arrière
Plaque arrière

Créez la plaque arrière en coupant un autre cercle 1/2 po plus grand que le cadran de l'horloge et un anneau avec le même diamètre intérieur que le dos de l'horloge. Collez l'anneau et le cercle avec des pinces à ressort.

Une fois sec, tracez une ligne 1/8 po plus large que la bague intérieure et coupez à la bonne dimension à l'aide de la scie à ruban ou de la ponceuse à disque.

Découpez une fente de 1 po de long sur 1/4 po de large en haut du dos à l'aide d'une toupie ou de mèches. Fraisez quatre trous pour fixer le dos dans le cadre de l'horloge.

Appliquez de la peinture en aérosol noire et fixez-la à l'horloge une fois sèche.

Étape 21: Code Arduino

Le code arduino est commenté au mieux. Gardez à l'esprit que je ne suis pas un programmeur, j'ai une expérience minimale d'arduino (soyez gentil). Le code s'exécute en continu pour vérifier si l'heure actuelle correspond à l'"Heure de réinitialisation". Parce que je ne pouvais pas penser à un moyen de traduire l'heure actuelle en étapes, il ne se corrige qu'une fois par jour (minuit par défaut). À minuit, les engrenages tournent jusqu'à la position minuit, puis attendent jusqu'à 00:01 pour passer à cette heure puis continuent à partir de là. Dans sa position actuelle, l'horloge ne perd que 5 secondes environ sur une période de 24 heures.

Vous aurez besoin des bibliothèques Stepper et RTClib installées.

Je sais que le code peut être optimisé par quelqu'un avec plus d'expérience que moi. Si vous êtes prêt à relever le défi, veuillez recréer ce projet pour vous-même et partager vos connaissances.

#comprendre

#include "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // le nombre de pas en un tour de moteur pas à pas 28BYJ-48 Stepper hourHand(oneRotation, 3, 5, 4, 6); Stepper minuteHand(oneRotation, 7, 9, 8, 10); #define hourStopSensor 12 #define minuteStopSensor 11 int endStep = 0; // Délai pour la vitesse de l'horloge. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Heure actuelle avec laquelle faire des maths. flottant h = 0; flottant mn = 0; flotteur sc = 0; // Définit l'heure du jour pour réinitialiser l'horloge (format 24 heures). int resetHeure = 0; int resetMinute = 0; // Variables pour définir l'heure correcte au démarrage et réinitialiser. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float heureTest = 0; float minuteTest = 0; void setup() { Serial.begin(115200); // Configurer l'horloge en temps réel et réinitialiser les capteurs à effet Hall. pinMode(hourStopSensor, INPUT_PULLUP); pinMode(minuteStopSensor, INPUT_PULLUP); rtc.begin(); // Décommentez la ligne ci-dessous pour régler l'heure. // rtc.adjust(DateTime(2020, 2, 19, 23, 40, 30)); // rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Définir la vitesse maximale des moteurs pas à pas. hourHand.setSpeed(15); minuteHand.setSpeed(15); // Boucle jusqu'à ce que les aiguilles des minutes et des heures soient à midi while (digitalRead(hourStopSensor) == LOW || digitalRead(minuteStopSensor) == LOW) { if (digitalRead(hourStopSensor) == LOW) { hourHand.step(2); } else { délai(3); } if (digitalRead(minuteStopSensor) == LOW) { minuteHand.step(3); } else { délai(4); } } while (digitalRead(hourStopSensor) != LOW || digitalRead(minuteStopSensor) != LOW) { if (digitalRead(hourStopSensor) != LOW) { hourHand.step(2); } else { délai(3); } if (digitalRead(minuteStopSensor) != LOW) { minuteHand.step(3); } else { délai(4); } } // Récupère l'heure actuelle DateTime now = rtc.now(); hr = maintenant.heure(); mn = maintenant.minute(); sc = maintenant.seconde(); // Passage au format 12 heures if (hr >= 12) { hr = hr - 12; } // Voyez quelle main doit parcourir le visage plus loin et utilisez cette distance // pour ajuster le temps défini en conséquence. heureTest = h / 12; MinuteTest = mn / 60; if (hourTest > minuteTest) { handDelay = hourTest; } else { handDelay = minuteTest; } // Définir l'heure actuelle setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Définir la minute actuelle setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Testez quelle main aura besoin de plus de pas et définissez-la sur le nombre de pas le plus long pour la boucle for. if (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } else { endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step(2); } else { délai(3); } if (i < setTimeStepMinute) { minuteHand.step(3); } else { délai(4); } } // Régler l'horloge de fonctionnement RPM hourHand.setSpeed(1); minuteHand.setSpeed(1); } void loop() { // Démarre la boucle d'exécution de l'horloge. for (int i = 0; i < 22; i++) { minuteHand.step(1); retard(setDelay1); // Test du temps de réinitialisation, si prêt à être réinitialisé, pause. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } } delay(setDelay3); for (int i = 0; i < 38; i++) { hourHand.step(1); retard(setDelay1); // Test du temps de réinitialisation, si prêt à être réinitialisé, pause. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } pour (int i = 0; i <20; i++) { minuteHand.step(1); retard(setDelay2); // Test du temps de réinitialisation, si prêt à être réinitialisé, pause. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } } } // Réinitialiser l'horloge à l'heure de réinitialisation if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { // Changer la vitesse de l'horloge hourHand.setSpeed (10); minuteHand.setSpeed(10); // Boucle jusqu'à ce que l'aiguille des minutes et des heures atteigne midi. while (digitalRead(hourStopSensor) == LOW || digitalRead(minuteStopSensor) == LOW) { if (digitalRead(hourStopSensor) == LOW) { hourHand.step(2); } else { délai(3); } if (digitalRead(minuteStopSensor) == LOW) { minuteHand.step(3); } else { délai(4); } } while (digitalRead(hourStopSensor) != LOW || digitalRead(minuteStopSensor) != LOW) { if (digitalRead(hourStopSensor) != LOW) { hourHand.step(2); } else { délai(3); } if (digitalRead(minuteStopSensor) != LOW) { minuteHand.step(3); } else { délai(4); } } // Attendez ici jusqu'à ce que le temps de réinitialisation soit écoulé. while (rtc.now().minute() == resetMinute) { delay(1000); } // Récupère l'heure actuelle DateTime now = rtc.now(); hr = maintenant.heure(); mn = maintenant.minute(); sc = maintenant.seconde(); // Passer au format 12 heures if (hr>= 12) { hr = hr - 12; } // Voyez quelle main doit parcourir le visage plus loin et utilisez cette distance // pour ajuster le temps défini en conséquence. heureTest = h / 12; MinuteTest = mn / 60; if (hourTest > minuteTest) { handDelay = hourTest; } else { handDelay = minuteTest; } // Définir l'heure actuelle setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Définir la minute actuelle setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Testez quelle main aura besoin de plus de pas et définissez-la sur le nombre de pas le plus long pour la boucle for. if (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } else { endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step(2); } else { délai(3); } if (i < setTimeStepMinute) { minuteHand.step(3); } else { délai(4); } } hourHand.setSpeed(1); minuteHand.setSpeed(1); } }

Étape 22: Fichiers STL

Vous devrez imprimer les quantités suivantes de fichiers:

  • 1 - Aimant de segment de couronne d'heure
  • 6 - Segment de base de la couronne dentée des heures
  • 1 - Montage pas à pas de segment de bague de retenue d'une heure
  • 6 - Segment d'anneau de retenue d'heure de base
  • 1 - Support de capteur à effet Hall d'une heure
  • 1 - Aimant de segment de couronne de minutes
  • 7 - Segment de base de la couronne dentée des minutes
  • 1 - Montage pas à pas de segment de bague de retenue minute
  • 6 - Segment d'anneau de retenue des minutes de base
  • 1 - Support de capteur à effet Hall minute
  • 2 - Engrenage droit
  • 1 - Support électronique

Étape 23: Fichiers Solidworks

Ce sont les fichiers Solidworks d'origine utilisés pour créer les STL trouvées à l'étape précédente. N'hésitez pas à éditer et modifier mes fichiers comme bon vous semble.

Étape 24: Conclusion

Cette horloge s'est avérée meilleure que je ne l'avais prévu. Ayant une expérience minimale d'Arduino, je suis content du résultat et de sa précision. Il a fière allure et fonctionne comme je l'espérais.

Conseillé: