Table des matières:
- Étape 1: Conception
- Étape 2: Pièces
- Étape 3: Assemblage des pièces
- Étape 4: Bibliothèque pour Arduino IDE
- Étape 5: Configuration de la planche à pain
- Étape 6: Coder
- Étape 7: Démo et conclusion
Vidéo: Mouvement d'horloge : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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
(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
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
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é:
Horloge murale explosive bricolage avec éclairage de mouvement : 20 étapes (avec photos)
DIY Exploding Wall Clock With Motion Lighting: Dans cette instructable / vidéo, je vais vous montrer étape par étape comment créer une horloge murale créative et unique avec un système d'éclairage de mouvement intégré. Cette idée de conception d'horloge tout à fait unique est orientée pour rendre l'horloge plus interactive . Quand je marche
Comment faire une horloge analogique et une horloge numérique avec une bande LED à l'aide d'Arduino: 3 étapes
Comment faire une horloge analogique et une horloge numérique avec une bande LED à l'aide d'Arduino Horloge numérique avec Led Strip et module MAX7219 Dot avec Arduino. Elle corrigera l'heure avec le fuseau horaire local. L'horloge analogique peut utiliser une bande LED plus longue, elle peut donc être accrochée au mur pour devenir une œuvre d'art
ESP8266 Horloge réseau sans RTC - Nodemcu NTP Horloge Pas de RTC - PROJET HORLOGE INTERNET : 4 étapes
ESP8266 Horloge réseau sans RTC | Nodemcu NTP Horloge Pas de RTC | PROJET D'HORLOGE INTERNET: Dans le projet, un projet d'horloge sans RTC prendra du temps sur Internet en utilisant le wifi et l'affichera sur l'écran st7735
Réglage de l'heure sur un mouvement d'horloge Hermle Quartz 1217: 4 étapes
Réglage de l'heure sur un mouvement d'horloge Hermle Quartz 1217 : je n'ai pas pu trouver d'instructions de réglage pour mon horloge de cheminée en ligne, donc après l'avoir compris moi-même, j'ai pensé partager mes découvertes avec quiconque pourrait posséder cette horloge
Sortie à contrôle de mouvement - À partir d'une lumière à détection de mouvement : 6 étapes
Sortie à contrôle de mouvement - À partir d'une lampe à détection de mouvement : Imaginez que vous êtes un trick-or-treater allant à la maison la plus effrayante du bloc. Après avoir dépassé toutes les goules, fantômes et cimetières, vous arrivez enfin au dernier chemin. Vous pouvez voir les bonbons dans un bol devant vous ! Mais soudain, un gho