Table des matières:

Mouvement d'horloge : 7 étapes
Mouvement d'horloge : 7 étapes

Vidéo: Mouvement d'horloge : 7 étapes

Vidéo: Mouvement d'horloge : 7 étapes
Vidéo: Le compte-secondes (principe de l'horloge à balancier) 2024, Novembre
Anonim
Horlogerie
Horlogerie

Cette instructable a été créée pour répondre aux exigences du projet du Makecourse à l'Université de Floride du Sud (www.makecourse.com).

Étape 1: Conception

Alors que j'essaie de trouver une idée pour ce projet, j'ai décidé de faire quelque chose qui soit utilisable et utile pour ma vie quotidienne. Peu de choses comme celle-ci peuvent avoir une exigence de deux degrés de liberté, j'ai donc décidé de créer une horloge simple pour répondre à l'exigence et de l'afficher sur mon bureau pour afficher l'heure. À l'origine, l'idée était de fabriquer une montre-bracelet, mais la partie imprimée en 3D serait trop petite et les moteurs qui entraînent la montre seraient encore trop gros pour une montre-bracelet.

D'où ce projet, j'ai trouvé des pièces détachées autour de mon appartement et j'ai décidé d'y travailler.

Étape 2: Pièces

- Pièces imprimées en 3D

- 2 28BYJ-48 5V DC Moteur pas à pas

- 2 cartes de commande de moteur pas à pas ULN2003

-Arduino Uno

-Module Bluetooth HC-05

Toutes ces pièces sont fabriquées par mes soins sauf les aiguilles de l'horloge. Je ne suis pas très créatif. Ci-dessous le lien vers son créateur.

www.thingverse.com/thing:1441809

Étape 3: Assemblage des pièces

Assemblage de pièces
Assemblage de pièces

(1)- Vous devez mettre Gear_1 et 2 sur les moteurs pas à pas. Ils seront bien ajustés, donc un peu de force est nécessaire pour qu'ils restent en place.

(2)- Base_0 restera en bas de l'assemblage.

(3)- Base_1 sera placée au-dessus de SpurGear_1, c'est le composant principal de l'aiguille des minutes. Vous pouvez coller ces deux composants ensemble, assurez-vous que la base est au-dessus de l'engrenage.

(4)- La Base_2 sera placée au-dessus de SpurGears_2, c'est le composant principal de l'aiguille des heures. La même chose s'applique à cette partie que l'étape (3)

(5)- Les aiguilles des horloges peuvent être collées sur Base_1 et Base_2, ou vous pouvez percer un petit trou pour les mettre en place.

(6)- Pour que l'engrenage de l'aiguille des minutes corresponde à l'engrenage droit, vous avez besoin d'une plate-forme de 1 cm pour mettre l'ensemble sur le dessus avec l'un des moteurs pas à pas.

La raison en est que la base principale ne peut pas être haute car l'autre moteur pas à pas ne pourrait pas atteindre la vitesse élevée. Dans tous les cas, une plate-forme est nécessaire pour l'un des moteurs pas à pas.

Étape 4: Bibliothèque pour Arduino IDE

Le code de ce projet est basé sur une bibliothèque de Tyhenry appelée CheapStepper.h

github.com/tyhenry/CheapStepper

Pour installer cette bibliothèque pour votre arduino. Cliquez sur cloner ou télécharger sur le lien ci-dessus et téléchargez-le sous forme de fichier zip.

Dans l'IDE Arduino. Esquisse -> Inclure la bibliothèque -> Ajouter la bibliothèque. ZIP

De toutes les bibliothèques qui fonctionnent, celle-ci utilisait le moteur pas à pas le meilleur et extrêmement facile à utiliser.

Étape 5: Configuration de la planche à pain

Configuration de la planche à pain
Configuration de la planche à pain
Configuration de la planche à pain
Configuration de la planche à pain

J'ai utilisé un shield Arduino pour accompagner mon Arduino UNO. Cela a l'air plus propre, mais vous pouvez obtenir une petite planche à pain et la placer sur le dessus de l'Arduino UNO à la place. Suivez la couleur sur le schéma car certains fils sont superposés. Les broches 4-7 sont pour un stepper et les broches 8-11 sont pour le deuxième stepper.

Le module Bluetooth doit être câblé RX -> TX et TX -> RX à la carte Arduino.

Les fils bleus sont les connexions des pilotes à l'Arduino UNO

Les fils verts sont les connexions RX et TX

Les fils noirs sont à la masse.

Les fils rouges sont en 5V.

Étape 6: Coder

Vous trouverez ci-dessous le code de ce projet.

L'explication du code sera ici.

Pas à pas CheapStepper (8, 9, 10, 11); CheapStepper stepper_2 (4, 5, 6, 7);

boolean moveClockwise = true;

//37,5 min = 4096;

//1 min = 106,7;

//5 minutes = 533,3;

//15 minutes = 1603;

//30 minutes = 3206;

//60 min = 6412;

entier entier = 4096;

int moitié = plein/2; ///2048

float full_time = 6412; // 1 heure

float half_time = full_time/2; // 30 min 3026

float fif_time = half_time/2; // 15 minutes 1603

float one_time = full_time/60; // 1 min 106

float five_time = one_time*5; // 5 min 534,3

float one_sec = one_time/60; // 1 s 1.78

// nous pouvons faire 30 min chacun en faisant tourner le moteur 3206 et en le réinitialisant

C'est le calcul principal de ce projet. Le stepper prendrait 4096 pas pour tourner à 360 degrés, mais parce que les engrenages droits sont plus gros que les engrenages attachés au stepper, il faut donc plus de pas pour une rotation complète. Comme l'engrenage droit est le composant principal qui fait tourner les mains. Je dois faire divers tests pour m'assurer que les valeurs sont correctes.

full_time est la variable que j'ai assignée pour une rotation complète de la main. C'est assez cohérent, mais comme les étapes sont divisées par 2 pour obtenir un mouvement spécifique, la valeur flottante diminue, ce qui rend plus difficile pour le conducteur de faire son travail.

Le moveClockwise = true; est de faire bouger le moteur pas à pas dans le sens des aiguilles d'une montre, mais comme il fait tourner l'engrenage droit dans le sens inverse des aiguilles d'une montre, nous devons rendre le booléen faux dans la configuration. Vous pouvez également le déclarer faux au départ mais c'est pour expliquer comment cela fonctionne.

void setup() {Serial.begin(9600);

Serial.println("Prêt à bouger !");

pos = une_fois; del = 900; rapport = 60;

moveClockwise = false; }

C'est ici que je déclare le booléen moveClockwise false. pos sera le nombre de pas, del sera le délai, et le rapport est soit pour minute/sec = 60 soit heure/min = 12

Nous contrôlons les mains avec le module Bluetooth. Tout d'abord, vous avez besoin d'un terminal Bluetooth série à partir de votre appareil Android. Connectez-vous au Hc-05 avec le code PIN 0000 ou 1234. Vous pouvez utiliser un exemple de code d'Arduino IDE pour voir s'il fonctionne correctement. Lorsqu'il est connecté, il doit clignoter très lentement au lieu de rapidement lorsqu'il n'est pas connecté.

boucle vide() {état = 0;

if(Série.disponible() > 0) {

état = Serial.read(); }

pour (float s=0; s<(pos); s++){

stepper.step(moveClockwise); }

pour (float s=0; s<(pos/ratio); s++){

stepper_2.step(moveClockwise); }

retard(supprimer);

Serial.available() > 0 est important car c'est ainsi que votre module Bluetooth va fonctionner. Cette déclaration if sera vraie lorsqu'il y aura des communications entre l'Arduino et votre appareil. La variable d'état déterminera les 3 autres variables que j'ai déclarées en haut de setup(), elle imprimera également quelle opération le code est en cours d'exécution. La boucle deux for est la fonction principale qui détermine le mouvement du moteur pas à pas.

si (état == '1') {

pos = une_fois; del = 0; rapport = 12;

Serial.println("Opération 1: Pas de délai"); }

Il s'agit d'un exemple d'utilisation de l'entrée de votre appareil Bluetooth pour modifier le fonctionnement du système. Vous pouvez modifier ces variables comme bon vous semble pour contrôler les mains.

Étape 7: Démo et conclusion

Image
Image
Démo et conclusion
Démo et conclusion

Ceci est une démonstration du système, montrant comment cela fonctionne. Pour le boîtier, vous pouvez utiliser tout ce qui conviendrait à tous les composants à l'intérieur. Ce projet était simple et amusant à réaliser car c'est la première fois que j'imprime en 3D. Le module Bluetooth était amusant à comprendre et à utiliser. Il y a quelques erreurs que j'ai commises et qui étaient trop tardives pour être modifiées, mais le produit final est très bien.

Conseillé: