
Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:45




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:
- Afficher cette heure avec une option à désactiver
- Inclure une fonction veilleuse
- Comprend un minuteur de sieste de 15 minutes avec alarme
- 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



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


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



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



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é




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é:
Télécommande basée sur le navigateur Arduino (linux): 9 étapes (avec images)

Télécommande basée sur un navigateur Arduino (linux) : nous avons des enfants. Je les adore mais ils cachent toujours la télécommande du satellite et de la télévision lorsqu'ils mettent les chaînes pour enfants. Après que cela se soit produit au quotidien pendant plusieurs années, et après que ma femme chérie m'ait permis d'avoir un
Horloge basée sur Arduino utilisant le module d'horloge en temps réel (RTC) DS1307 et 0.96 : 5 étapes

Horloge basée sur Arduino utilisant le module d'horloge en temps réel (RTC) DS1307 et 0.96 : Salut les gars, dans ce tutoriel, nous verrons comment créer une horloge de travail à l'aide d'un module d'horloge en temps réel DS1307 & Afficheurs OLED. Nous allons donc lire l'heure du module d'horloge DS1307. Et imprimez-le sur l'écran OLED
Gesture Hawk : Robot contrôlé par gestes manuels utilisant une interface basée sur le traitement d'images : 13 étapes (avec images)

Gesture Hawk : Robot contrôlé par les gestes de la main utilisant une interface basée sur le traitement d'images : Gesture Hawk a été présenté dans TechEvince 4.0 comme une simple interface homme-machine basée sur le traitement d'images. Son utilité réside dans le fait qu'aucun capteur supplémentaire ou portable, à l'exception d'un gant, n'est requis pour contrôler la voiture robotique qui fonctionne sur différents
Unité de télécommande GSM/SMS basée sur Arduino : 16 étapes (avec images)

Unité de télécommande GSM/SMS basée sur Arduino : ! ! ! AVIS ! ! !En raison de la modernisation de la tour de téléphonie mobile dans ma région, je ne peux plus utiliser ce module GSM. La nouvelle tour ne prend plus en charge les appareils 2G. Par conséquent, je ne peux plus apporter aucun soutien à ce projet. Avec une telle wi
Horloge maîtresse basée sur Arduino pour les écoles : 9 étapes (avec photos)

Horloge maîtresse basée sur Arduino pour les écoles : si votre école, votre école pour enfants ou tout autre emplacement repose sur une horloge maîtresse centrale qui est cassée, vous pouvez avoir une utilité pour cet appareil. De nouvelles horloges maîtresses sont disponibles bien sûr, mais les budgets des écoles sont soumis à des pressions extrêmes, et c'est vraiment une sati