Table des matières:
- Étape 1: Rassembler les pièces et le travail du bois
- Étape 2: cercles acryliques
- Étape 3: Souder
- Étape 4: le code
- Étape 5: huile danoise
Vidéo: Ish Clock : 5 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Je me retrouve souvent à acheter des choses dont je n'ai aucune idée de ce que je vais faire. Ce projet est le résultat de l'achat d'un anneau doté de 12 LED WS2812b allumées. Je n'avais rien de prévu, mais il avait l'air cool en ligne, alors j'en ai mis un dans mon panier, j'ai joué avec pendant un moment quand il est arrivé, puis j'ai tout oublié.
Un peu plus tard, je pensais à faire une horloge et je me suis souvenu qu'elle était assise là sans rien faire. Je pensais acheter un deuxième anneau avec 60 LED allumées pour composer les minutes, mais j'ai ensuite commencé à réfléchir à la façon dont nous / j'ai tendance à regarder l'heure et à l'arrondir aux 5 minutes les plus proches.
Avec cela dans le mien, je suis parti avec mon anneau de 12 LED pour faire l'horloge ish. Il affiche 1 LED à la fois pendant 1 seconde, pour indiquer l'heure (LED bleue) puis les minutes (LED rouge) arrondies à l'inférieur
Étape 1: Rassembler les pièces et le travail du bois
J'ai eu beaucoup de chance d'arriver un jour au travail et de repérer une palette. Cette palette m'est restée car elle ne ressemblait pas à votre palette standard. C'était du chêne propre, traité thermiquement et très inhabituellement solide.
Ce projet est fait à partir d'un des morceaux de cette palette. (J'ai demandé au patron avant de le ramener à la maison)
Également utilisé:
- Anneau LED 12 pixels ws2812b
- Module d'horloge en temps réel (RTC) (j'utilise un DS3231 avec I2C)
- Compatible Arduino Nano v3.0
- Feuille acrylique (5mm)
- Fil de couleur
Outils
- Perceuse électrique
- Routeur
- Mors à bois plat réglable
- Ponceuse électrique
- Scie à main
- Fer à souder
- Pistolet à colle chaude
- Papier de verre
- Huile danoise
Ponçage
J'ai commencé par utiliser la ponceuse électrique pour redresser et nettoyer le bloc de bois jusqu'à ce que tous les côtés soient propres et lisses. J'ai laissé certaines imperfections visibles et ce n'est pas parfaitement droit ou carré car j'aime pouvoir voir une partie de l'histoire du bois.
Marquage et découpe des trous
Après le ponçage, j'ai choisi le côté que je voulais pour le cadran de l'horloge et j'ai marqué le centre en traçant des lignes à partir de chaque coin. J'ai réglé le morceau de bois réglable un peu plus grand que l'anneau LED afin qu'il y ait une étagère sur laquelle l'acrylique peut s'asseoir et couper environ 5 mm de profondeur, puis ajuster le cutter juste au-dessus de la taille de l'anneau LED et couper encore 5 mm environ.
Passage et trous de câbles
À l'aide de mon routeur avec le foret de 12 mm, j'ai tracé un évidement dans le bas du bloc pour masquer le RTC et l'Arduino. Son environ 15 mm de profondeur et pas moins de 5 mm de n'importe quel bord. J'ai marqué le centre (ish) à partir du bas et percé à l'aide d'un foret de 10 mm juste après la moitié du chemin pour permettre les fils LED. Ensuite, à l'aide d'un foret de 5 mm, j'ai percé à partir du centre de l'évidement LED pour rencontrer le trou de 10 mm du bas.
Un autre trou de 4 mm à l'arrière pour l'alimentation et en utilisant une mèche de toupie plus petite pour faire un canal pour les fils à l'arrière de l'anneau LED et le travail du bois est terminé.
Étape 2: cercles acryliques
Pour fabriquer l'acrylique pour le devant de l'horloge, j'ai déclaré couper un morceau carré qui était juste plus grand que le trou qu'il devait remplir. Ensuite, en utilisant la ponceuse électrique pour commencer, j'ai commencé à enlever les coins jusqu'à ce qu'ils aient à peu près la bonne forme et la bonne taille. Je suis ensuite passé au ponçage à la main afin de ne pas trop tirer et de devoir recommencer.
C'était un processus lent et fastidieux d'essais et d'erreurs jusqu'à ce qu'il s'adapte parfaitement, mais je pense que le résultat final en valait la peine. J'ai terminé en utilisant un papier à grain très fin pour donner à l'avant de l'acrylique un aspect givré.
Étape 3: Souder
J'aime utiliser un système de couleur pour mes fils à cette occasion je choisis:
- Rouge pour l'alimentation (5v)
- Blanc pour le sol
- Jaune pour les données
- Vert pour l'horloge
J'ai commencé par souder les 3 fils nécessaires sur l'anneau LED en utilisant le système ci-dessus et en poussant les fils dans le trou. Comme il ne devrait pas être exposé à une véritable force, j'ai utilisé un tout petit peu de colle chaude pour maintenir l'anneau en place. (J'aurai peut-être besoin de le changer un jour) et installez l'acrylique avec juste un peu de colle chaude sur le pourtour.
J'ai ensuite soudé les 4 fils sur le RTC en utilisant le système ci-dessus. Pour garder les choses un peu plus nettes, j'ai décidé d'alimenter le RTC de l'Arduino. Ensuite, tout connecté à l'Arduino et soudé 1 fil pour l'alimentation et un autre pour la terre à l'Arduino.
RTC
- SCL (horloge) à la broche analogique 5
- SDA (données) vers la broche analogique 4
- VCC à 5V
- GND à n'importe quel GND sur l'Arduino
Anneau LED
Din à la broche numérique 6
J'avais un vieux câble USB qui traînait alors j'ai décidé de l'utiliser pour alimenter l'horloge. J'ai coupé l'extrémité qui se connecterait normalement à quelque chose et l'ai poussée à travers le trou à l'arrière. Ensuite, dénudez et peignez les extrémités avant de souder le VCC à l'Arduino et l'anneau LED du côté positif et la masse de l'Arduino et la LED à la masse. J'ai un peu thermorétractable plus tard et ça avait l'air bien, Le pistolet à colle chaude est revenu pour garder le tout enfoncé. J'ai décidé de laisser l'Arduino avec suffisamment de jeu pour pouvoir accéder au port USB pour le programmer à l'avenir, mais pas tellement que je pourrais tomber.
Étape 4: le code
Vous devriez maintenant pouvoir télécharger ce code sur l'Arduino.
Si le RTC n'est pas en cours d'exécution, ce code définira l'heure en fonction du moment où le code a été compilé, alors assurez-vous d'appuyer simplement sur le bouton de téléchargement et de ne pas vérifier.
alternativement, cela fonctionne aussi très bien pour régler l'heure.
www.instructables.com/id/Setting-the-DS130…
Une grande partie de ce code que j'ai emprunté à la bibliothèque Adafruit NeoPixel et une partie à une bibliothèque RTC que j'ai trouvée et une partie que j'ai composée moi-même.
// inclure le code de la bibliothèque: #include
#comprendre
#comprendre
// définir les broches
#définir le code PIN 6
#define BRIGHTNESS 20 // définir la luminosité maximale
#définir r 5
#définir g 5
#définir b 5
RTC_DS3231 rtc; // Etablir l'objet horloge
Bande Adafruit_NeoPixel = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // supprimer l'objet
void setup () {
Fil.begin(); // Commencer I2C
rtc.begin(); // commencer l'horloge
Serial.begin(9600);
// définir les pinmodes
pinMode(PIN, SORTIE);
if (rtc.lostPower()) {
Serial.println("RTC a perdu l'alimentation, réglons l'heure !");
// la ligne suivante définit le RTC sur la date et l'heure auxquelles ce croquis a été compilé
rtc.adjust(DateTime(F(_DATE_), F(_TIME_)));
// Cette ligne définit le RTC avec une date et une heure explicites, par exemple pour définir
// Le 21 janvier 2014 à 3h du matin, vous appelleriez:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
strip.begin();
strip.show(); // Initialise tous les pixels sur 'off'
DateHeure l'Heure = rtc.now(); // prend en compte l'heure d'été
octet secondeval = theTime.second(); // récupère les secondes
octet minuteval = theTime.minute(); // récupérer les minutes
int hourval = theTime.hour();
point(bande. Couleur(0, g, 0), 50);
}
boucle vide () {
// obtenir du temps
DateHeure l'Heure = rtc.now(); // prend en compte l'heure d'été
int minuteval = theTime.minute(); // récupérer les minutes
int hourval = theTime.hour(); // obtenir des heures
int secondeval = theTime.second();
si (valeur-minute 0) {
strip.setPixelColor(0, r, 0, 0);
strip.show();}
else if (minuteval <= 9) {
strip.setPixelColor(1, r, 0, 0);
strip.show();}
else if (minuteval <= 14) {
strip.setPixelColor(2, r, 0, 0);
strip.show();}
else if (minuteval <= 19) {
strip.setPixelColor(3, r, 0, 0);
strip.show();}
else if (minuteval <= 24) {
strip.setPixelColor(4, r, 0, 0);
strip.show();}
else if (minuteval <= 29) {
strip.setPixelColor(5, r, 0, 0);
strip.show();}
else if (minuteval <= 34) {
strip.setPixelColor(6, r, 0, 0);
strip.show();}
else if (minuteval <= 39) {
strip.setPixelColor(7, r, 0, 0);
strip.show();}
else if (minuteval <= 44) {
strip.setPixelColor(8, r, 0, 0);
strip.show();}
else if (minuteval <= 49) {
strip.setPixelColor(9, r, 0, 0);
strip.show();}
else if (minuteval <= 54) {
strip.setPixelColor(10, r, 0, 0);
strip.show();}
else if (minuteval <=59) {
strip.setPixelColor(11, r, 0, 0);
strip.show();}
retard(1000);
pour (int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.show();
}
if (valeurheure == 0) {
strip.setPixelColor(0, 0, 0, b);
strip.show();}
else if (valeurheure == 1) {
strip.setPixelColor(1, 0, 0, b);
strip.show();}
else if (valeurheure == 2) {
strip.setPixelColor(2, 0, 0, b);
strip.show();}
else if (valeurheure == 3) {
strip.setPixelColor(3, 0, 0, b);
strip.show();}
else if (valeurheure == 4) {
strip.setPixelColor(4, 0, 0, b);
strip.show();}
else if (hourval == 5) {
strip.setPixelColor(5, 0, 0, b);
strip.show();}
else if (hourval == 6) {
strip.setPixelColor(6, 0, 0, b);
strip.show();}
else if (hourval == 7) {
strip.setPixelColor(7, 0, 0, b);
strip.show();}
else if (valeurheure == 8) {
strip.setPixelColor(8, 0, 0, b);
strip.show();}
else if (valeurheure == 9) {
strip.setPixelColor(9, 0, 0, b);
strip.show();}
else if (valeurheure == 10) {
strip.setPixelColor(10, 0, 0, b);
strip.show();}
else if (hourval == 11) {
strip.setPixelColor(11, 0, 0, b);
strip.show();}
else if (hourval == 12) {
strip.setPixelColor(0, 0, 0, b);
strip.show();}
else if (hourval == 13) {
strip.setPixelColor(1, 0, 0, b);
strip.show();}
else if (hourval == 14) {
strip.setPixelColor(2, 0, 0, b);
strip.show();}
else if (valeurheure == 15) {
strip.setPixelColor(3, 0, 0, b);
strip.show();}
else if (hourval == 16) {
strip.setPixelColor(4, 0, 0, b);
strip.show();}
else if (hourval == 17) {
strip.setPixelColor(5, 0, 0, b);
strip.show();}
else if (hourval == 18) {
strip.setPixelColor(6, 0, 0, b);
strip.show();}
else if (valeurheure == 19) {
strip.setPixelColor(7, 0, 0, b);
strip.show();}
else if (valeurheure == 20) {
strip.setPixelColor(8, 0, 0, b);
strip.show();}
else if (valeurheure == 21) {
strip.setPixelColor(9, 0, 0, b);
strip.show();}
else if (valeurheure == 22) {
strip.setPixelColor(10, 0, 0, b);
strip.show();}
else if (valeurheure == 23) {
strip.setPixelColor(11, 0, 0, b);
strip.show();}
retard(1000);
pour (int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.show();
}
// pour le débogage série
Serial.print(hourval, DEC);
Serial.print(':');
Serial.print(minuteval, DEC);
Serial.print(':');
Serial.println(secondval, DEC);
}
point vide (uint32_t c, uint8_t attendre) {
pour (int j=0; j<3; j++) {
for(int i=0; i<12; i++){
strip.setPixelColor(i, c);
strip.show();
retarder (attendre);
for(int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.show();}
}
}
}
Étape 5: huile danoise
L'étape finale et facultative consiste à appliquer de l'huile danoise sur le bois. J'aime beaucoup la façon dont il fait ressortir le grain et offre une certaine protection contre les taches et l'humidité. Je le recommande donc fortement.
Vous pouvez le brosser ou j'utilise simplement un vieux chiffon pour l'essuyer.
Il ne reste plus qu'à le brancher et à en profiter.
Conseillé:
Prenez de superbes photos avec un iPhone : 9 étapes (avec photos)
Prenez de superbes photos avec un iPhone : la plupart d'entre nous ont un smartphone partout avec nous ces jours-ci, il est donc important de savoir comment utiliser l'appareil photo de votre smartphone pour prendre de superbes photos ! Je n'ai un smartphone que depuis quelques années et j'aime avoir un appareil photo décent pour documenter les choses que je
Le réveil à bulles rend le réveil amusant (ish): 7 étapes (avec photos)
Le réveil à bulles rend le réveil amusant (ish): Se réveiller avec un réveil bourdonnant est nul. Je fais partie de ces personnes qui n'aiment pas se réveiller avant le lever du soleil (ou depuis de nombreuses heures). Alors, quelle meilleure façon de se réveiller en s'amusant qu'une soirée bulle au lit ! Utiliser un arduino et un
Nixie Tube Clock avec Arduino Mega : 5 étapes (avec photos)
Nixie Tube Clock avec Arduino Mega : Il s'agit d'une Nixie Tube Clock gérée par un Arduino Mega. Il dispose également d'un ensemble de lumières LED RVB et d'une matrice de boutons à l'arrière pour modifier les paramètres sans le brancher sur un ordinateur. J'ai utilisé un ensemble d'entretoises découpées au laser, mais vous pouvez créer le vôtre avec un s
LittleBits Mad Libs (-ish): 7 étapes (avec photos)
LittleBits Mad Libs (-ish) : prêt à engager vos étudiants dans un défi qui intègre les pratiques d'ingénierie NGSS (Next Generation Science Standards) (et plus si vous ajoutez d'autres contraintes !) ? À l'aide de littleBits ou de tout autre kit électronique en plusieurs parties (SAM Labos, Lego WeDo, LEGO
RVB Infinity Clock avec sa propre application BT : 15 étapes (avec photos)
RVB Infinity Clock avec sa propre application BT : les horloges numériques et analogiques normales sont ennuyeuses, alors prévoyez de développer une horloge sympa avec des couleurs personnalisées pour le cadran, l'aiguille des heures, l'aiguille des minutes et la trotteuse. Pour cela, vous souhaitez d'abord développer l'horloge à l'aide d'une bande LED RGB adressable. Ensuite pour la communication avec A