Table des matières:

Micro horloge binaire : 10 étapes (avec photos)
Micro horloge binaire : 10 étapes (avec photos)

Vidéo: Micro horloge binaire : 10 étapes (avec photos)

Vidéo: Micro horloge binaire : 10 étapes (avec photos)
Vidéo: Elle Était Coincée Donc Ce Policier L'aide 2024, Juillet
Anonim
Micro horloge binaire
Micro horloge binaire
Micro horloge binaire
Micro horloge binaire

Projets Tinkercad »

Ayant précédemment créé un Instructable (DVM binaire), qui utilise la zone d'affichage limitée à l'aide de binaire.

Ce n'était qu'un petit pas après avoir créé le module de code principal pour la conversion décimale en binaire pour créer une horloge binaire, mais la seule chose qui manquait était un RTC (horloge en temps réel).

Cependant, le Microbit n'a pas de construction RTC.

Le RTC permet la réalisation de projets d'horloge avec une batterie de secours.

En tant que tel, le projet suivant utilise un Microbit et un Kitronik RTC pour créer une horloge 24H avec un affichage binaire et dispose en plus d'une option d'alarme.

Le logiciel du projet qui sera exécuté sur le Microbit sera créé dans Makecode Blocks.

Fournitures:

MicroBit V1 ou V2

Étui de protection MicroBit (en option)

Makecode

Kitronik RTC

CR2032

Blocs de code

Cura

Imprimante 3D

1 * interrupteur SPDT (marche - marche)

1 * interrupteur SPDT (marche - arrêt - marche)

2 * SPST (normalement ouvert), interrupteur momentané

4 * M3 (10+6mm), entretoises M/F avec écrous M3

4 * M3 (8mm), vis

Connecteur M/F de cavalier, 100 mm, 28 AWG préfabriqué avec fiche et prise.

1 * buzzer piézo (pas de lecteur)

Ces fournitures sont disponibles dans un certain nombre de points de vente et vous pouvez avoir votre propre fournisseur préféré.

Étape 1: Définir la zone d'affichage

Définition de la zone d'affichage
Définition de la zone d'affichage
Définition de la zone d'affichage
Définition de la zone d'affichage

Bien que la zone d'affichage soit limitée par la quantité de données pouvant être affichées à tout moment, elle se prête idéalement à l'affichage de données binaires.

En tant que tel, il y a suffisamment de surface pour afficher des mots binaires de 4 x 4 bits pour représenter l'heure avec des notifications et des modes de sélection.

L'affichage est divisé en 3 zones principales; Temps, sélection et modes.

Temps

Seize LED's affectées au Temps, chaque colonne de 4 LED's est affectée à un intervalle de temps, les intervalles étant sous la forme H, H, M & M.

Chaque bit du mot binaire a une pondération de 1, 2, 4 et 8 avec le LSB sur la ligne 4 et le MSB sur la ligne 1

Chaque mot binaire de 4 bits permet un compte de 0 à 15, ce qui est plus que suffisant pour le format d'heure 24H, nécessitant un compte maximum par colonne de 2, 9, 5 & 9.

Sélection

Une rangée de 4 LED à la rangée 0 est utilisée pour identifier la colonne de temps sélectionnée lors de la saisie de l'heure.

Modes

Une colonne de 5 LED à la colonne 4 est utilisée pour identifier les modes, les fonctions et le fonctionnement.

Cochez - La LED 4, 0 clignotante allumée et éteinte est utilisée pour indiquer les secondes et le fonctionnement.

Heure - La LED 4, 1 indique le mode Heure lorsqu'elle est allumée. (Mode par défaut à la mise sous tension)

Alarme - La LED 4, 2 indique le mode Alarme lorsqu'elle est allumée.

Notification d'alarme - LED 4, 3 et LED 4, 4 clignotent lorsque l'alarme est déclenchée.

Étape 2: RTC (Horloge en temps réel)

RTC (Horloge en temps réel)
RTC (Horloge en temps réel)
RTC (Horloge en temps réel)
RTC (Horloge en temps réel)
RTC (Horloge en temps réel)
RTC (Horloge en temps réel)
RTC (Horloge en temps réel)
RTC (Horloge en temps réel)

Le RTC est le cœur battant de l'application, permettant le réglage et la conservation de l'heure exacte.

De plus amples détails sur le RTC peuvent être trouvés à Kitronik.

Le RTC fournit une alimentation régulée supprimant le besoin d'alimenter le Microbit par son propre connecteur USB ou JST et une batterie de secours est fournie pour conserver l'heure en cas de panne de courant.

Avant d'utiliser le RTC, vous devrez charger le package d'extension.

À l'aide de Makecode à partir de l'icône Paramètres, sélectionnez Extensions et tapez Kitronik RTC dans la recherche.

Sélectionnez le package pour l'installer et il sera ajouté aux autres extensions.

Il existe un certain nombre de blocs de code à lire et à écrire sur le RTC.

Nous n'aurons besoin que de 4 de ces blocs de code pour l'horloge binaire.

Ceux-ci seront utilisés pour écrire l'heure réglée sur le RTC et pour relire l'heure pour mettre à jour l'affichage de l'horloge.

Étape 3: coder l'horloge

Codage de l'horloge
Codage de l'horloge
Codage de l'horloge
Codage de l'horloge
Codage de l'horloge
Codage de l'horloge

La première partie du code est l'initialisation du programme des variables, des tableaux et du texte informatif.

Init

Bclk – Horloge binaire

<Sel - Un bouton sélectionne la colonne qui sera ajustée pour le réglage de l'heure.

Inc – Le bouton B incrémente l'heure.

Appuyez simultanément sur les deux boutons A et B pour changer le mode entre l'heure et l'alarme.

Strval - est la valeur de chaîne contenant l'heure sous la forme "HH:MM:SS" renvoyée par le RTC

Seuls HH et MM sont utilisés pour afficher ou régler l'heure.

Mode – conserve la valeur du mode pour Time = 1 et Alarm = 2 sélectionné avec la combinaison de boutons A+B.

Période – est la valeur de la colonne de temps, sélectionnée avec le bouton A.

0 = colonne 0 (H), 1 = colonne 1 (H), 2 = colonne 2 (M), 3 = colonne 3 (M)

Tick_en – Active = 1 ou Désactive = 0 le tick (secondes), indicateur.

Inc – Stockage intermédiaire de la valeur de réglage de l'heure incrémentale.

Tm_list – stocke la valeur de chaque colonne de temps pendant le réglage.

Alarme – Active ou désactive l'indicateur d'alarme.

Le forever appelle continuellement la fonction tick.

Cocher

La fonction tick qui est normalement activée, affiche une LED marche/arrêt en alternance dans le coin supérieur droit pour indiquer le fonctionnement et les secondes.

De plus, il appelle la fonction showtm qui lit le RTC et le traite pour qu'il soit affiché en binaire, tout en appelant également alarm_mode, si cela est activé, affiche les LED de notification d'alarme dans le coin inférieur droit.

Afficher

La fonction showtm appelle rdtime et la valeur utilisée à partir de celle-ci est strval contenant la chaîne de temps.

Une boucle est créée qui s'incrémente à travers strval en extrayant chaque nombre unique et en ignorant le séparateur ":"

Chaque nombre est ensuite converti en son équivalent binaire avec la fonction dec2bin et affecté à la bonne colonne.

Rdtime

La fonction rdtime lit les 5 premiers caractères de la chaîne renvoyée par le RTC (en ignorant la partie secondes) et la transmet à strval.

Si l'alarme a été définie (Mode = 2), alors les valeurs d'alarme définies sont comparées aux valeurs renvoyées par le RTC, s'il y a une correspondance alors alarme = 1 s'il n'y a pas de correspondance alarme = 0.

Alarm_mode lorsqu'il est activé, affiche deux LED alternées marche/arrêt dans le coin inférieur droit de la colonne 4.

Dec2bin

La fonction dec2bin convertit un nombre décimal en binaire et l'affiche dans la bonne colonne.

Le nombre à convertir est transmis via value et la colonne d'affichage est transmise via col.

List2 est le tableau dans lequel le mot binaire de 4 bits du processus de conversion binaire est stocké.

Une boucle est initiée qui procède à la division de la valeur par 2 le reste est stocké dans l'élément de tableau la valeur entière est divisée par 2, ceci est répété jusqu'à ce que la valeur entière soit <=1 et cette dernière valeur soit placée dans le tableau.

La plus grande valeur décimale à un chiffre est 9 et en binaire, c'est 1001 sous la forme d'un mot de 4 bits.

Le tableau doit ensuite être traité dans l'ordre inverse pour obtenir un résultat correct.

Une boucle est alors initiée pour allumer la LED correcte dans la colonne appropriée, ceci est accompli pour chaque occurrence d'un un dans le mot binaire de 4 bits.

L'interface humaine est accomplie avec des boutons.

Le bouton A

Cela sélectionne la colonne dans laquelle la valeur de temps sera entrée et affiche une LED allumée sur la colonne choisie sur la ligne 4.

Une fois que toutes les colonnes de temps ont été mises à jour, l'incrémentation de la sélection jusqu'à la 5ème colonne met à jour la variable de temps.

Si mode = 1 le RTC est mis à jour sinon l'heure d'alarme est mise à jour.

Le bouton B

C'est le bouton d'incrémentation et incrémente la colonne de temps sélectionnée.

Afin de réduire les erreurs et de gagner du temps pour obtenir la valeur correcte, la valeur maximale pouvant être saisie par colonne est plafonnée en fonction de la valeur de temps pour un système de temps de 24 heures.

Ces valeurs maximales sont stockées dans tm_max, une par colonne de temps et sont automatiquement sélectionnées en fonction de la colonne de temps.

Les valeurs maximales sont H = 2, H = 9, M = 5, M = 9

La valeur d'incrément est convertie en binaire dans dec2bin et l'affichage est mis à jour.

Bouton A+B Sélection du mode

Appuyer simultanément sur les deux boutons permet de choisir entre le mode Heure ou le mode Alarme, le mode approprié s'affiche à l'écran.

Selon le mode sélectionné, l'affichage est mis à jour pour afficher soit l'heure, soit l'heure de réglage de l'alarme.

Étape 4: Opération

Opération
Opération
Opération
Opération
Opération
Opération

Téléchargez le fichier Hex sur le Microbit, insérez une pile CR2032 dans le RTC.

Branchez le Microbit sur le RTC et alimentez la carte RTC via USB ou les bornes à vis.

La LED Tick commencera à clignoter et peu de temps après, l'heure s'affichera.

S'il s'agit de la première utilisation, l'heure affichée est très probablement erronée et devra être réglée sur l'heure correcte.

Sélection de mode

Le fait d'appuyer simultanément sur les boutons Sélection (A) et Incrément (B) permet de faire défiler les options de mode entre l'heure et l'alarme.

Réglage de l'heure

Le réglage de l'heure est en mode 24H.

Utilisez le bouton de sélection (A) pour déplacer la LED sur la rangée supérieure, cela indique la colonne où l'heure peut être modifiée. Les colonnes de sélection correspondent à H, H, M & M.

Où H = Heures et M = Minutes.

Après avoir sélectionné une colonne, appuyez plusieurs fois sur le bouton Incrément (b) pour incrémenter le compte d'une unité à chaque pression. Les comptes sont indiqués en binaire, après tout c'est une horloge binaire.

Le bouton d'incrémentation ne fait qu'augmenter le nombre et une fois que le maximum est atteint, il se réinitialise à zéro, d'autres pressions augmenteront à nouveau le nombre.

Une fois l'heure de la première colonne définie, appuyez sur le bouton Sélection pour la colonne suivante, puis utilisez le bouton Incrément pour définir l'heure de la colonne.

Remarque: *** Lorsque vous définissez l'heure ou l'alarme, vous devez saisir une heure dans la colonne sélectionnée même si l'heure dans la colonne doit rester inchangée, car le fait de sauter une colonne définit l'heure de cette colonne à zéro ****

Répétez le processus jusqu'à ce que l'heure ait été réglée en utilisant les 4 colonnes.

Appuyez sur le bouton de sélection pour la cinquième fois pour le déplacer vers la cinquième colonne et l'heure est réglée.

Réglage de l'alarme

Le réglage de l'heure de l'alarme se fait exactement de la même manière que pour l'heure.

Pour que l'alarme se déclenche à l'heure requise, laissez le mode réglé sur Alarme.

Pour désactiver l'alarme, réglez le Mode sur Heure.

Pour afficher l'heure d'alarme définie, faites défiler le mode entre l'heure et l'alarme et l'heure de l'alarme s'affichera pendant une courte période avant de revenir à l'affichage de l'heure actuelle.

L'heure de l'alarme n'est pas stockée dans le RTC, donc si l'alimentation est coupée, elle devra être réinitialisée.

Étape 5: Encaissez-le

Encaissez-le
Encaissez-le
Encaissez-le
Encaissez-le

Le projet sera assis à l'angle approprié pour voir l'horloge, mais une boîte ajoute un sentiment de permanence.

Vous pouvez acheter une boîte de taille appropriée et découper et percer les zones appropriées pour permettre au Microbit de s'insérer dans la prise.

Toutefois; De plus, je voulais dupliquer les boutons Microbit avec d'autres commandes et indicateurs.

En règle générale, des légendes devront être appliquées à la boîte pour identifier les boutons.

Ceux-ci pourraient être appliqués à la main; peints, gravés ou appliquant des étiquettes.

Une méthode pour réaliser toutes ces options serait d'imprimer la boîte en 3D, mais nous devrons d'abord créer un fichier CAO avec lequel créer le fichier d'imprimante.

Les options de création de fichier sont dessinées à la main ou dessinées avec du code.

J'ai opté pour "dessiné avec du code" en utilisant Tinkercad CodeBlocks

Les fichiers pour le couvercle de la boîte et la base de la boîte peuvent être trouvés sur Tinkercad CodeBlocks

Étape 6: Conception de code de bloc

Conception de code de bloc
Conception de code de bloc
Conception de code de bloc
Conception de code de bloc

La boîte est une conception en deux parties composée d'une base et d'un couvercle.

Quatre trous de vis d'angle seront utilisés pour fixer le couvercle avec une découpe sur le côté gauche pour permettre l'entrée de la prise USB.

Le couvercle aura une découpe pour le connecteur Microbit et les commutateurs requis. De plus, tout texte sera imprimé directement sur le couvercle et les trous de vis s'aligneront avec les piliers de la base.

La carte RTC sera fixée au dessous du couvercle par 4 piliers et 4 vis.

La taille de la boîte et du couvercle est de 70 x 105 x 31 mm

Le code pour le couvercle et la base est disponible dans TinkerCad CodeBlocks.

Étape 7: Impression 3D

impression en 3D
impression en 3D
impression en 3D
impression en 3D
impression en 3D
impression en 3D
impression en 3D
impression en 3D

Chargez les fichiers dans Cura et appliquez vos paramètres de trancheur préférés.

Paramètres appliqués.

Qualité: 0,15 mm

Remplissage: 80 %, Tri-Hexagone

Base: Bord

Enregistrez vos fichiers puis imprimez.

Avec Cura, vous pouvez charger les deux fichiers ensemble sur la même zone d'impression et imprimer en une seule fois.

Étape 8: Remplissage

Remplissage
Remplissage
Remplissage
Remplissage
Remplissage
Remplissage

Le couvercle de la boîte est imprimé avec du texte en retrait qui sera rempli de résine époxy colorée en 2 parties.

La résine est mélangée avec un rapport de 2 parties de résine pour 1 partie de durcisseur, puis un pigment de couleur opaque est mélangé.

La couleur choisie était le jaune pour contraster avec le fond. Le blanc aurait été un autre choix.

Une fois mélangée, la résine est versée goutte à goutte dans l'évidement en utilisant un bâtonnet à cocktail pour transférer de petites gouttes de résine qui sont utilisées pour remplir progressivement l'évidement dans les lettres.

Résistez à mettre trop de résine en une seule fois, car vous risquez de vous retrouver avec des bulles d'air et/ou de créer trop de débordement sur la surface environnante, ce qui signifie que vous aurez plus à nettoyer et à poncer une fois durci.

Remplissez donc lentement en vous assurant que le bas de la lettre est couvert et construisez-le en finissant avec une légère surface surélevée.

Une fois que la résine a durci, un léger ponçage sera nécessaire pour niveler la surface, commencez par le grade P240 en progressant vers des grades plus fins au besoin pour obtenir une finition lisse et enfin avec un polissage.

N'appliquez pas trop de pression et trop de vitesse ou vous surchaufferez le PLA et la résine résultant en une surface mate en raison du ramassage des grains, un peu d'eau appliquée pendant le processus de ponçage agira comme lubrifiant et liquide de refroidissement.

Étape 9: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

Le Microbit s'insérera dans la prise dans deux orientations, face à la partie principale de l'horloge RTC ou à l'opposé.

Si vous faites face à la partie principale du RTC, les connexions de liaison ne peuvent pas être utilisées, cependant, si le Microbit est tourné vers la partie principale de la carte, nous pouvons utiliser ces connexions.

L'assemblage commence par souder une embase à broche SIL à angle droit sur le RTC, cela permet d'effectuer les connexions avec des connecteurs push fit.

Le RTC est équipé de 4 * M3 (10 + 6 mm), entretoises M/F avec écrous M3 qui sont fixés au couvercle avec 4 * M3 (8 mm), vis dans les trous préfabriqués.

Les interrupteurs sont montés dans les trous préfabriqués du couvercle.

Les connexions nécessaires sont:

GND, 3V, P1 (ensemble), P2 (alerte), P5 (sél) & P11 (inc)

Remarque *** Les résistances (1R), sur le schéma pour P5 et P11 sont simplement des points de connexion de référence car la connexion directe à ces broches sur les blocs Microbit in Code n'est pas disponible pour le moment. ***

P5 est la connexion externe pour le bouton A qui est connecté par un interrupteur momentané SPST. Une connexion à P5 et l'autre broche est connectée à GND ce bouton est pour la sélection de colonne pendant le réglage de l'heure.

P11 est la connexion externe pour le bouton B qui est connecté par un interrupteur momentané SPST. Une connexion à P11 et l'autre broche est connectée à GND. Son bouton sert à incrémenter le nombre pendant le réglage de l'heure.

P1 est un commutateur SPDT (on-on) utilisé pour activer ou désactiver les options de réglage. La broche centrale va à P1 tandis qu'une broche est connectée à GND et l'autre à 3V via une résistance de 10k. Cela permet d'appliquer un H (3V) et L (0V) à cette broche. Lorsque P1 est connecté à 3V, cela active les options de réglage de l'heure et lorsque 0V désactive le réglage de l'heure. Contrôler ainsi si les boutons A et B ont un effet.

P2 est un interrupteur SPDT (on-off-on) qui est utilisé pour activer ou désactiver l'avertisseur sonore et les lumières externes en option.

Le buzzer d'alerte est un Piezo Buzzer (simplement apposé avec un tampon collant double face), nécessitant une commande d'impulsion qui est fournie par le Microbit.

Étape 10: Enfin

Vous avez assemblé les éléments dans la box, programmé le Microbit et l'avez inséré dans la prise de la box.

Ensuite, mettez sous tension et réglez l'heure.

Prendre plaisir.

Concours de code de blocage
Concours de code de blocage
Concours de code de blocage
Concours de code de blocage

Finaliste du concours Block Code

Conseillé: