Table des matières:

Ish Clock : 5 étapes (avec photos)
Ish Clock : 5 étapes (avec photos)

Vidéo: Ish Clock : 5 étapes (avec photos)

Vidéo: Ish Clock : 5 étapes (avec photos)
Vidéo: 5 Min Portrait - Portrait Photography Full Photo Shoot 2024, Juillet
Anonim
Image
Image
Rassemblement de pièces et travail du bois
Rassemblement de pièces et travail du bois

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

Rassemblement de pièces et travail du bois
Rassemblement de pièces et travail du bois
Rassemblement de pièces et travail du bois
Rassemblement de pièces et travail du bois
Rassemblement de pièces et travail du bois
Rassemblement de pièces et 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

Cercles Acryliques
Cercles Acryliques
Cercles Acryliques
Cercles Acryliques
Cercles Acryliques
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

Soudure
Soudure
Soudure
Soudure
Soudure
Soudure
Soudure
Soudure

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

Huile danoise
Huile danoise
Huile danoise
Huile danoise
Huile danoise
Huile danoise
Huile danoise
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é: