Arduino Magic Clock: 16 étapes (avec photos)

Arduino Magic Clock: 16 étapes (avec photos)

Table des matières:

Anonim

Et si une horloge pouvait vous en dire plus que le temps? Dans cet Instructable, nous allons créer une horloge qui, d'un simple coup d'œil, peut indiquer à quelqu'un où vous vous trouvez et mettre du piquant dans la température ambiante. Très bien, prenez votre Arduino et commençons:)

Choses dont vous aurez besoin pour cet Instructable:

  • Arduino
  • Planche à pain
  • Fils
  • Bois (balsa ou même carton)
  • Servo
  • Capteur de température
  • Résistances
  • Colle chaude
  • Briller
  • Papier

Provisions:

Étape 1: Conception de l'horloge de prototypage

Commencez votre conception en notant les endroits que vous êtes le plus susceptible d’être pendant la journée. Ce seront les premières positions sur l’horloge, puis ajoutez-en quelques-unes amusantes pour rendre votre horloge unique. J'ai ajouté "Mortal Danger" et "Lost" à mon horloge. Maintenant, pensez à 5 mots pour décrire la température, du très froid au très chaud. J'ai utilisé "congélation", "frisquet", "juste ce qu'il faut", "chaud" et "swelter".

Ensuite, j'ai conçu mon prototype dans Illustrator. Si vous souhaitez utiliser mon modèle, n'hésitez pas à télécharger le fichier joint. J'ai découpé le prototype en papier avec un couteau Xacto et j'ai tracé le cercle extérieur sur un morceau de bois. Mon horloge aura un diamètre d'environ 12 pouces. Si votre imprimante ne peut pas gérer le cadran en une fois, collez deux moitiés de l'image ensemble et marquez la position de vos trous.

Étape 2: Couper le visage de l'horloge de peinture

Utilisez un X-acto ou une scie pour couper le profil extérieur de votre horloge et une mèche de 3/4 "pour percer les trous. J'ai ensuite utilisé du ruban adhésif pour peintres pour sectionner la moitié supérieure et peindre à la bombe en bleu. Une fois sec J'ai inversé la ligne de ruban et peint la partie inférieure en argent peinte au pistolet.Tandis que tout est en train de sécher, utilisez votre couteau X-acto pour découper les emplacements de position de votre horloge.

Étape 3: Décorer le cadran

Maintenant que nos positions ont été coupées, retournez-les, appliquez de la colle, centrez-les sur le cadran et appuyez-les.

J'ai peut-être eu un peu envie de cette partie, mais je me suis dit "vous savez ce qui rendrait cette horloge plus magique … scintillante!" J'ai donc passé des perles de colle sur les bords des positions de l'horloge, puis jeté beaucoup de paillettes sur le dessus. Une fois que vous le secouez, il laissera une belle bordure chatoyante autour de votre lettrage.

Étape 4: Ajout du servomoteur

J'avais besoin d'ajuster la taille du trou au centre de l'horloge pour accueillir le servo. Un exercice et un fichier permettent de travailler rapidement sur ce processus. Ensuite, colle chaude dans le servomoteur. Il est très important de maintenir le servo à 90 degrés par rapport à la face avant afin que votre mécanisme d’horloge ne frotte pas sur le cadran. J'ai tenu le servo dans la position appropriée jusqu'à ce que la colle sèche.

Étape 5: Extensions de LED

Nous allons avoir besoin d'étendre les pieds de la LED afin qu'ils puissent facilement se brancher sur notre planche à pain. Pour ce faire, nous allons torsader les fils et les connecter électriquement avec de la soudure. Commencez par dénuder les deux extrémités des fils avec le dénudeur universel. Ensuite, tordez les fils pour former un puissant verrou mécanique. Vous devriez pouvoir tirer légèrement sur les fils sans les séparer. N'hésitez pas à utiliser des pinces pour obtenir quelques torsions supplémentaires. Ensuite, utilisez votre fer et soudez les fils ensemble.

Étape 6: Ajouter des DEL à l'horloge

Avec toutes les LED soudées, ajoutons-les à l'horloge arrière. J'ai plié les fils à la base des 90 ° de la LED et les a fixés au moyen d'un pistolet à colle chaude au centre des cinq découpes de température.

Étape 7: Câblage des DEL, partie 1

À l’aide de ruban adhésif double face, je fixai l’Arduino et la planche à pain à l’arrière de la pendule. Pour commencer à câbler les LED, j'ai placé tous les fils de terre (fils verts) dans la colonne négative de la planche à pain. Ensuite, j'ai branché tous les câbles d'alimentation dans l'ordre sur la planche à pain.

Étape 8: Câblage de la partie 2 des DEL

Ajoutez maintenant un autre fil de toutes les LED positives à l’Arduino. J'ai utilisé les broches 4 à 8 pour cela, mais vous pouvez bien sûr utiliser celles de votre choix.

Étape 9: Câblage du servomoteur

Commencez par brancher le fil d’alimentation du servo dans la broche 5V de l’Arduino. Branchez ensuite le fil noir sur GND et le câble de signal (votre blanc ou orange, en fonction de votre servo) sur une broche avec capacité PWM, j'ai utilisé la broche 3. Une fois que vous avez branché votre servo et que vos DEL sont branchées, ajoutez un fil connecter l’Arduino GND au rail de terre utilisé par toutes les DEL.

Étape 10: Ajout d'un capteur de température

Ce capteur de température fonctionne en modifiant la tension en fonction de la température de la pièce, ce qui est très similaire à la manière dont le capteur de lumière changerait de tension en fonction de la quantité de lumière présente dans la pièce. Pour câbler le capteur de température, commencez par placer un fil de la jambe centrale, qui est un signal, sur la broche A0. Dans mon circuit, le fil de signal est orange.

Ensuite, vous allez vouloir ajouter de la puissance et de la terre au capteur. Cela nécessitera une légère modification du circuit du servomoteur. Au lieu de brancher le servo directement sur la broche 5V de l'Arduino, branchez un câble d'alimentation 5V sur la carte de connexion, puis branchez le capteur de température et le servo dans la même rangée. Si votre circuit ressemble à celui ci-dessous, vous êtes sur la bonne voie.

Étape 11: Fixez l'aiguille de l'horloge

Maintenant que tous les circuits de ce projet sont terminés, retournons l’horloge et travaillons sur le cadran. Pour fabriquer l’aiguille d’horloge, j’ai commencé par couper une aiguille d’une ancienne horloge trouvée. Enfilez simplement vos lunettes de sécurité:) Ensuite, saisissez votre pistolet à colle chaude et placez un fin cordon de colle sur l’attache du servomoteur, puis fixez rapidement l’aiguille de l’horloge.

Étape 12: Codage de la partie 1

Nous commençons notre codage par une initialisation standard mais légèrement plus grande des 5 DEL, du servo et du capteur de température. De plus, nous créons des variables d’espace réservé pour la position de l’horloge du servo et la variable de température que j’appelle initialTemp. Notez que ceci est étiqueté comme un flottant et contient un nombre avec un point décimal, cela nous donnera plus de résolution sur les mesures de température

#include Servo myservo; int clockPos = 0; int tempSensorPin = A0; const float initialTemp = 20.0; int tempLED1 = 4; int tempLED2 = 5; int tempLED3 = 6; int tempLED4 = 7; int tempLED5 = 8;

En plus de la configuration de pinModes, nous devrons connecter le servo connecté à l’Arduino à sa bibliothèque d’informations logicielles. J'ai attaché le servo à la troisième broche, donc utiliser la fonction myservo.attach (3) indiquera à l'Arduino quelle broche devrait être PWM.

void setup () {Serial.begin (9600); myservo.attach (3);

Étape 13: Codage de la partie 2

Pour faciliter le contrôle de l'aiguille de l'horloge, nous allons programmer l'Arduino pour qu'il identifie les positions possibles sur l'horloge (ex: travail, déplacements, etc.) avec des nombres de 0 à 6. L'utilisation de la commande Serial.parseInt () facilite la tâche comprendre les nombres que nous envoyons à l’Arduino.Pour déclencher le mouvement réel de la main, nous vérifions si la touche Entrée a été frappée; rappelez-vous du " n" invisible qui est envoyé, nous allons maintenant vérifier la fin de notre message et, si elle est trouvée, nous écrirons un message. nouvelle position sur le servo.

if (Serial.available ()> 0) {int clockPos = Serial.parseInt (); if (Serial.read () == ' n') {myservo.write (clockPos * 25 + ((clockPos + 1) * 3)); délai (200); }}

Les calculs que j’utilisais pour obtenir les angles de position d’horloge prenaient beaucoup de modifications, mais il s’agissait de multiplier le nombre entré (clockPos) par 25 et de déterminer ensuite le bon décalage pour que la flèche pointe près du centre de la position. logo sur le cadran. Pour moi, j'ai ajouté un, puis multiplié par trois pour obtenir un beau offset. Permet de parcourir les calculs avec des nombres réels pour vous montrer comment cela fonctionne.

Position de servo Math

En utilisant mes positions d'horloge, supposons que je veux montrer que je suis "en voyage". Cela serait représenté par le nombre 2, où 1 était "Danger mortel" et 0, "Travail".

Donc notre clockPos = 2 donc:

Angle de servo = (2 * 25) + ((2 + 1) * 3)

Angle Servo = 59 degrés

Pour l'Arduino, une fois le calcul terminé, la ligne d'écriture du servo ressemble à ceci: c'est exactement ce que nous voulons.

myservo.write (59);

Étape 14: Codage de la partie 3

Dans le bloc de code suivant, nous allons revenir à la boucle principale et lire le capteur de température en mode analogique. Un court délai garantit que la valeur a le temps de se stabiliser. Ensuite, pour convertir la tension lue en température, nous divisons le nombre obtenu par l’ADC par la valeur maximale de 1024 et nous le multiplions par 5V. Cela nous donne la valeur du capteur de température en volts. Pour obtenir le résultat en degrés, nous soustrayons par 0,5 puis nous multiplions le tout par 100. Ouf! C'était compliqué mais nous avons presque fini.

int tempVal = analogRead (tempSensorPin); délai (10); float temp = (((tempVal / 1024.0) * 5) -. 5) * 100; Serial.println (temp);

Pour terminer le codage des capteurs de température, nous allons créer un boîtier d’interrupteur pour chaque lampe LED en utilisant beaucoup du même code et des mêmes fonctions que nous avions utilisés auparavant. Le seul ajout que nous allons faire est de mapper la température dans la pièce sur un nombre compris entre 0 et 4. Cela nous permettra d’utiliser facilement le boîtier de l’interrupteur pour contrôler les DEL.

int switchcase = carte (temp, 12, 28, 0, 4); Serial.println (boîtier de commutation);

Étape 15: Télécharger le code et le test

Phew! C'était de loin le code le plus difficile que nous ayons écrit jusqu'à présent. Lançons maintenant le téléchargement et testons notre horloge.

Étape 16: Profitez de votre nouvelle horloge!

TU L'AS FAIT!!!! Accrochez fièrement votre horloge dans un endroit visible par tous. Non seulement vous avez terminé un projet génial, mais vous avez beaucoup appris.