Table des matières:

Horloge cube multifonction basée sur la position : 5 étapes (avec images)
Horloge cube multifonction basée sur la position : 5 étapes (avec images)

Vidéo: Horloge cube multifonction basée sur la position : 5 étapes (avec images)

Vidéo: Horloge cube multifonction basée sur la position : 5 étapes (avec images)
Vidéo: Elle Était Coincée Donc Ce Policier L'aide 2024, Juillet
Anonim
Image
Image
Horloge cube multifonction basée sur la position
Horloge cube multifonction basée sur la position
Horloge cube multifonction basée sur la position
Horloge cube multifonction basée sur la position

Projets Fusion 360 »

Il s'agit d'une horloge basée sur Arduino dotée d'un écran OLED qui fonctionne comme une horloge avec la date, comme une minuterie de sieste et comme une veilleuse. Les différentes "fonctions" sont contrôlées par un accéléromètre et sont sélectionnées en faisant tourner l'horloge cubique.

Je voulais une nouvelle horloge de table de chevet, mais je ne voulais pas dépenser de l'argent pour une horloge sophistiquée qui avait des tonnes de fonctions que je n'utiliserais pas. De plus, j'avais collecté des composants et des capteurs qui traînaient, j'ai donc décidé de les utiliser pour fabriquer ma propre horloge !

J'avais plusieurs objectifs pour ce projet:

  1. Afficher cette heure avec une option à désactiver
  2. Inclure une fonction veilleuse
  3. Comprend un minuteur de sieste de 15 minutes avec alarme
  4. Pouvoir afficher la date

Fournitures

  • Arduino Pro Mini 5V
  • Accéléromètre 3 axes ADXL335
  • DS3231 AT24C32 IIC précision Horloge temps réel
  • Mini haut-parleur
  • Écran OLED SSD1306 IIC 0.96in
  • Alimentation 5V CC
  • LED x 2
  • Résistances 220ohm x 2
  • Prise de baril CC
  • Câble
  • Outils

    • Coupe-fils/dénudeurs
    • Fer à souder/soudure
    • Imprimante 3D (en option)
    • Programmeur FTDI pour interfacer entre le Pro mini et l'IDE Arduino

Étape 1: prototyper et tester le circuit

Prototyper et tester le circuit
Prototyper et tester le circuit
Prototyper et tester le circuit
Prototyper et tester le circuit
Prototyper et tester le circuit
Prototyper et tester le circuit

Connectez les composants à l'Arduino. La disposition ou le schéma de la maquette sont illustrés ci-dessus. Le RTC et l'OLED utilisent le protocole I2C pour s'interfacer avec l'Arduino et utiliser les broches A4 et A5. L'accéléromètre utilise 3 broches analogiques. J'ai utilisé A0, A1, A2. Les LED et Piezo peuvent utiliser n'importe laquelle des broches numériques, j'ai utilisé 4 et 8 respectivement.

Interface avec chaque composant. J'ai dû installer des bibliothèques Arduino pour s'interfacer avec chaque composant. Ils sont montrés dans l'image ci-dessus.

Code à l'aide de l'IDE Arduino. J'ai passé au crible quelques exemples de croquis fournis par chaque bibliothèque pour déterminer la syntaxe appropriée pour chaque composant en fonction de ce que je voulais qu'ils fassent. J'ai réalisé un croquis pour chaque composant afin de les tester individuellement. Ils sont fournis ci-dessous. J'ai commencé par l'enceinte piezo car c'était la plus simple. En fait, il n'avait pas besoin d'une bibliothèque spéciale, juste d'une fonction spécifique qui définit la fréquence et le son. Pour que les LED fonctionnent, il suffit de tirer l'une des broches numériques haut et bas. Ensuite, je suis passé à l'OLED et c'était aussi assez simple à configurer. Le croquis ci-dessous est une démo d'Adafruit qui passe en revue toutes les animations/textes pouvant être affichés. Ensuite, j'ai essayé de faire fonctionner le RTC. Le croquis que j'ai fourni faisait partie d'un exemple dans la bibliothèque qui obtient l'heure actuelle et l'imprime sur le moniteur série. Enfin, j'ai utilisé l'exemple fourni pour tester l'accéléromètre. Les sorties de chaque axe sont imprimées sur le moniteur série.

Il est maintenant temps de tout assembler !

Étape 2: Programme principal

Programme principal
Programme principal
Programme principal
Programme principal

Maintenant que je sais que tout fonctionne individuellement, je peux commencer à imaginer un programme qui rassemble tout. Je vais discuter de mon processus d'écriture du programme ci-dessous, mais n'hésitez pas à télécharger le code complet ci-dessous à utiliser pour votre propre projet. J'ai essayé de laisser des commentaires spécifiques afin que vous puissiez parcourir le code vous-même.

J'avais besoin d'afficher l'heure et la date sur l'OLED, ce qui était assez simple. Je devais juste imprimer l'heure actuelle à l'écran au lieu du moniteur série. Il y avait quelques éléments de mise en forme que je devais prendre en compte pour qu'il affiche un format de 12 heures au lieu de 24 et ajouter/supprimer des 0 là où ils étaient appropriés. La date était similaire avec en plus l'affichage du mois et du jour dans des rectangles dessinés à l'écran. J'ai utilisé une boucle FOR imbriquée pour créer la minuterie et déclencher le piézo après la fin de la boucle. J'ai décidé de faire clignoter l'écran pendant que le buzzer se déclenchait, ce qui était une animation de base tirée de la démo d'Adafruit. J'ai fait en retournant le cube à la position d'horloge le seul moyen d'éteindre le buzzer. Enfin, je voulais un moyen d'éteindre l'écran, ce qui a été accompli en effaçant simplement l'affichage. Maintenant, j'avais besoin que toutes ces fonctions fonctionnent sur la base des sorties de l'accéléromètre. J'ai utilisé le script Accel_Test pour déterminer les coordonnées d'axe de chaque position que je voulais que chaque fonction exécute. J'ai déplacé manuellement la puce de l'accéléromètre et enregistré les lectures sur le moniteur série. Le schéma ci-dessus donne les coordonnées de sortie de chaque position en GRIS. Les coordonnées en ROUGE sont les limites entre chaque position et j'ai utilisé ces nombres pour mon programme. Dans les 4 positions d'affichage, seules les coordonnées des axes X et Y sont nécessaires. La cinquième position de la veilleuse utilise l'axe Z. J'ai utilisé des instructions IF simples pour les positions de l'accéléromètre avant chaque bloc fonctionnel. Si vous utilisez un autre accéléromètre, ces coordonnées peuvent varier et devront être ajustées dans le programme.

Étape 3: Impression 3D du cube

Impression 3D du cube
Impression 3D du cube
Impression 3D du cube
Impression 3D du cube
Impression 3D du cube
Impression 3D du cube

J'ai pensé qu'un cube serait le meilleur design pour s'adapter à la façon dont je voulais que l'horloge fonctionne. J'ai utilisé fusion360 pour faire le modèle. J'avais besoin d'une découpe pour l'OLED et la prise barillet. Je voulais aussi un accès facile pour remplacer la pile dans le RTC après que tout ait été câblé. J'avais besoin d'un emplacement pour garder l'Arduino dans une orientation qui serait facile à reprogrammer si nécessaire. De plus, le boîtier devait être facilement amovible pour que je puisse accéder à l'Arduino. Vous pouvez voir le modèle CAO ci-dessus et les fichiers STL ci-dessous.

J'ai imprimé le corps en PLA noir avec 20% de remplissage, résolution de 0,2 mm.

Le boîtier ou le manchon a été imprimé en filament flexible Solutech avec un remplissage à 100 %, une résolution de 0,3 mm. J'ai utilisé ce matériau car il a une certaine flexibilité qui le rend facile à étirer sur le corps. Il a également une sensation plus douce lors de la rotation de l'horloge. Enfin, j'ai choisi un filament transparent pour que les LED des veilleuses brillent.

Étape 4: Assemblage

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

J'ai tout câblé à l'aide du schéma de l'étape 1. J'ai utilisé un petit morceau de panneau perforé pour connecter tous les fils communs afin de ne pas avoir à souder plusieurs fils à une broche sur l'Arduino. De la colle chaude a été utilisée pour tout fixer à sa place respective, à l'exception de l'Arduino. Il a juste été poussé dans son emplacement désigné. Je me suis assuré que la carte de l'accéléromètre était perpendiculaire et de niveau sur le bas du corps afin que les coordonnées dans le code n'aient pas besoin d'être modifiées.

Étape 5: Téléchargez et vous avez terminé

Téléchargez et vous avez terminé !
Téléchargez et vous avez terminé !
Téléchargez et vous avez terminé !
Téléchargez et vous avez terminé !
Téléchargez et vous avez terminé !
Téléchargez et vous avez terminé !
Téléchargez et vous avez terminé !
Téléchargez et vous avez terminé !

Maintenant, le programme final peut être téléchargé sur l'horloge pour régler l'heure correcte. La pile cellulaire doit garder l'heure même lorsque l'alimentation est débranchée. Faites glisser le manchon imprimé en 3D sur le corps pour cacher tous les composants et vous obtenez une horloge cubique complète !

J'espère que vous prendrez plaisir à réaliser ce projet et que vous le trouverez aussi utile que moi. La bonne partie de ce projet est qu'il est très personnalisable. N'hésitez pas à ajouter vos propres fonctions différentes comme une fonction d'alarme, utilisez différents composants comme un OLED plus grand, un récepteur radio FM, etc. Bonne fabrication !

Conseillé: