Inhaltsverzeichnis:

Ish Clock - Gunook
Ish Clock - Gunook

Video: Ish Clock - Gunook

Video: Ish Clock - Gunook
Video: [BOYS PLANET] 박건욱 PARK GUN WOOK I K그룹 @타임어택 1분 자기소개 [EN/CN/JP] 2024, Juli
Anonim
Image
Image
Sammeln von Teilen & Holzarbeiten
Sammeln von Teilen & Holzarbeiten

Ich finde oft, dass ich selbst Dinge kaufe, von denen ich keine Ahnung habe, was ich tun soll. Dieses Projekt ist das Ergebnis des Kaufs eines Rings mit 12x WS2812b LEDs. Ich hatte keine Pläne dafür, aber online sah es cool aus, also steckte ich eines in meinen Warenkorb, spielte eine Weile damit, als es ankam und vergaß es dann ganz.

Eine Weile später dachte ich darüber nach, eine Uhr zu bauen und erinnerte mich, dass sie da saß und nichts tat. Ich dachte darüber nach, einen zweiten Ring mit 60 LEDs zu kaufen, um die Minuten auszugleichen, aber dann begann ich darüber nachzudenken, wie wir / ich dazu neigen, die Zeit zu betrachten und sie auf die nächsten 5 Minuten zu runden.

Mit diesem in meinem machte ich mich mit meinem 12-LED-Ring daran, die ish-Uhr zu machen. Es zeigt 1 Sekunde lang jeweils 1 LED an, um die Stunde (blaue LED) und dann die Minuten (rote LED) abzurunden

Schritt 1: Sammeln von Teilen & Holzarbeiten

Sammeln von Teilen & Holzarbeiten
Sammeln von Teilen & Holzarbeiten
Sammeln von Teilen & Holzarbeiten
Sammeln von Teilen & Holzarbeiten
Sammeln von Teilen & Holzarbeiten
Sammeln von Teilen & Holzarbeiten

Ich hatte das große Glück, eines Tages zur Arbeit zu kommen und eine Palette zu entdecken. Diese Palette fiel mir auf, da sie nicht wie Ihre Standardpalette aussah. Es war sauber, wärmebehandelt und ungewöhnlich massive Eiche.

Dieses Projekt wird aus einem der Stücke dieser Palette hergestellt. (Ich habe den Chef gefragt, bevor ich es mit nach Hause genommen habe)

Auch benutzt:

  • 12 Pixel ws2812b LED-Ring
  • Real Time Clock (RTC) Modul (Ich verwende einen DS3231 mit I2C)
  • Arduino Nano v3.0 kompatibel
  • Acrylplatte (5mm)
  • Farbiger Draht

Werkzeuge

  • Bohrmaschine
  • Router
  • Verstellbarer flacher Holzbohrer
  • Elektrische Schleifmaschine
  • Handsäge
  • Lötkolben
  • Heißklebepistole
  • Sandpapier
  • Dänisches Öl

Schleifen

Ich begann mit dem Schleifer, um den Holzblock zu begradigen und zu reinigen, bis alle Seiten sauber und glatt waren. Ich habe einige Unvollkommenheiten sichtbar gelassen und es ist nicht perfekt gerade oder quadratisch, da ich gerne etwas von der Geschichte im Wald sehen möchte.

Markieren und Schneiden der Löcher

Nach dem Schleifen wählte ich die Seite, die ich das Gesicht der Uhr wollte, und markierte die Mitte, indem ich Linien aus jeder Ecke zeichnete. Ich stelle das verstellbare Holzstück etwas größer als den LED-Ring ein, damit es ein Regal für das Acryl gibt, auf dem das Acryl sitzen kann, und schneide es etwa 5 mm tief, dann verstell ich den Cutter etwas über die Größe des LED-Rings und schneide weitere 5 mm oder so ab.

Verlegung und Kabellöcher

Mit meinem Router mit dem 12-mm-Bit habe ich eine Aussparung in der Unterseite des Blocks herausgeführt, um die RTC und das Arduino zu verstecken. Es ist ungefähr 15 mm tief und nicht weniger als 5 mm von jeder Kante entfernt. Ich markierte die Mitte (ish) von unten und bohrte mit einem 10mm-Bit kurz nach der Hälfte auf, um die LED-Drähte zu ermöglichen. Dann bohrte ich mit einem 5mm-Bohrer von der Mitte der LED-Aussparung, um das 10mm-Loch von unten zu treffen.

Ein weiteres 4-mm-Loch auf der Rückseite für den Stromanschluss und mit einem kleineren Fräser, um einen Kanal für die Drähte auf der Rückseite des LED-Rings zu bilden, und die Holzarbeiten sind erledigt.

Schritt 2: Acrylkreise

Acryl Kreise
Acryl Kreise
Acryl Kreise
Acryl Kreise
Acryl Kreise
Acryl Kreise

Um das Acryl für die Vorderseite der Uhr zu machen, habe ich angegeben, ein quadratisches Stück zu schneiden, das nur größer war als das Loch, das es füllen musste. Dann begann ich mit dem Power Sander, die Ecken zu entfernen, bis es ungefähr die richtige Form und Größe hatte. Ich ging dann zum Handschleifen über, damit ich nicht übertrieb und von vorne beginnen musste.

Es war ein langsamer und mühsamer Prozess von Versuch und Irrtum, bis es genau richtig passte, aber ich denke, das Endergebnis hat sich gelohnt. Zum Abschluss habe ich ein sehr feines Schleifpapier verwendet, um der Vorderseite des Acryls einen mattierten Look zu verleihen.

Schritt 3: Löten

Löten
Löten
Löten
Löten
Löten
Löten
Löten
Löten

Ich verwende gerne ein Farbsystem für meine Drähte bei dieser Gelegenheit wähle ich:

  • Rot für Leistung (5V)
  • Weiß für Boden
  • Gelb für Daten
  • Grün für Uhr

Ich begann damit, die 3 notwendigen Drähte mit dem obigen System auf den LED-Ring zu löten und die Drähte in das Loch zu drücken. Da es keiner wirklichen Kraft ausgesetzt werden sollte, habe ich ein kleines bisschen Heißkleber verwendet, um den Ring an Ort und Stelle zu halten. (Möglicherweise muss ich es irgendwann ändern) und installieren Sie das Acryl mit nur wenig Heißkleber um den Rand.

Ich habe dann die 4 Drähte mit dem obigen System auf die RTC gelötet. Um die Dinge ein wenig ordentlicher zu halten, habe ich beschlossen, die Stromversorgung für die RTC vom Arduino zu beziehen. Dann alles mit dem Arduino verbunden und 1 Draht für die Stromversorgung und einen anderen für die Masse an den Arduino gelötet.

Echtzeituhr

  • SCL (Uhr) zu Analog Pin 5
  • SDA (Daten) auf Analog Pin 4
  • VCC bis 5V
  • GND zu einem beliebigen GND auf dem Arduino

LED-Ring

Din zu Digital Pin 6

Ich hatte ein altes USB-Kabel herumhängen, also beschloss ich, die Uhr damit zu betreiben. Ich schnitt das Ende ab, das normalerweise mit etwas verbunden wäre, und schob es durch das Loch im Rücken. Dann die Enden abisoliert und verzinnt, bevor die VCC an den Arduino und der LED-Ring an die positive Seite und die Masse vom Arduino und LED an Masse gelötet werden. Ich habe später etwas wärmegeschrumpft und es sah gut aus, Die Heißklebepistole kam wieder heraus, um alles festzuhalten. Ich beschloss, den Arduino mit genug Spiel zu belassen, um in Zukunft auf den USB-Port zugreifen zu können, um ihn zu programmieren, aber nicht so sehr, dass ich herausfallen könnte.

Schritt 4: Der Code

Sie sollten nun in der Lage sein, diesen Code auf den Arduino hochzuladen.

Wenn die RTC nicht ausgeführt wird, legt dieser Code die Zeit basierend darauf fest, wann der Code kompiliert wurde. Achten Sie also darauf, nur auf die Schaltfläche zum Hochladen zu klicken und nicht zu überprüfen.

alternativ funktioniert dies auch sehr gut zum Einstellen der Uhrzeit.

www.instructables.com/id/Setting-the-DS130…

Vieles von diesem Code habe ich aus der Adafruit NeoPixel-Bibliothek ausgeliehen und einiges aus einer RTC-Bibliothek, die ich gefunden habe, und einige habe ich selbst erfunden.

// füge den Bibliothekscode ein: #include

#enthalten

#enthalten

// Pins definieren

#definiere PIN 6

#define BRIGHTNESS 20 // maximale Helligkeit einstellen

#define r 5

#define g 5

#define b 5

RTC_DS3231 rtc; // Uhrobjekt einrichten

Adafruit_NeoPixel-Streifen = Adafruit_NeoPixel(12, PIN, NEO_GRB + NEO_KHZ800); // Objekt entfernen

Leere Einrichtung () {

Wire.begin(); // I2C starten

rtc.begin(); // Uhr beginnen

Serial.begin (9600);

// Pinmodes setzen

pinMode (PIN, AUSGANG);

if (rtc.lostPower()) {

Serial.println ("RTC hat Strom verloren, stellen wir die Zeit ein!");

// folgende Zeile setzt die RTC auf das Datum und die Uhrzeit, zu der dieser Sketch kompiliert wurde

rtc.adjust(DateTime(F(_DATE_), F(_TIME_)));

// Diese Zeile setzt die RTC mit einem expliziten Datum & Uhrzeit, zum Beispiel um zu setzen

// 21. Januar 2014 um 3 Uhr morgens würden Sie anrufen:

// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));

}

strip.begin();

Strip-Show(); // Alle Pixel auf 'off' initialisieren

DateTime theTime = rtc.now(); // berücksichtigt DST

Byte Sekundenwert = theTime.second(); // Sekunden erhalten

Byte-Minutenwert = theTime.minute(); // Minuten bekommen

int Stundenwert = theTime.hour();

Punkt (Streifen. Farbe (0, g, 0), 50);

}

Leere Schleife () {

// Zeit kriegen

DateTime theTime = rtc.now(); // berücksichtigt DST

int minuteval = theTime.minute(); // Minuten bekommen

int Stundenwert = theTime.hour(); // Stunden bekommen

int Sekundenwert = theTime.second();

if (Minutenwert 0) {

strip.setPixelColor(0, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 9) {

strip.setPixelColor(1, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 14) {

strip.setPixelColor(2, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 19) {

strip.setPixelColor(3, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 24) {

strip.setPixelColor(4, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 29) {

strip.setPixelColor(5, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 34) {

strip.setPixelColor(6, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 39) {

strip.setPixelColor(7, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 44) {

strip.setPixelColor (8, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 49) {

strip.setPixelColor(9, r, 0, 0);

Strip-Show();}

else if (Minutenwert <= 54) {

strip.setPixelColor(10, r, 0, 0);

Strip-Show();}

else if (Minutenwert <=59) {

strip.setPixelColor(11, r, 0, 0);

Strip-Show();}

Verzögerung (1000);

für (int i=0; i<12; i++){

strip.setPixelColor(i, 0, 0, 0);

Strip-Show();

}

if (Stundenwert == 0) {

strip.setPixelColor(0, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 1) {

strip.setPixelColor(1, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 2) {

strip.setPixelColor(2, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 3) {

strip.setPixelColor(3, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 4) {

strip.setPixelColor(4, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 5) {

strip.setPixelColor(5, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 6) {

strip.setPixelColor(6, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 7) {

strip.setPixelColor(7, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 8) {

strip.setPixelColor(8, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 9) {

strip.setPixelColor(9, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 10) {

strip.setPixelColor(10, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 11) {

strip.setPixelColor(11, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 12) {

strip.setPixelColor(0, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 13) {

strip.setPixelColor(1, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 14) {

strip.setPixelColor(2, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 15) {

strip.setPixelColor(3, 0, 0, b);

Strip-Show();}

sonst if (hourval == 16) {

strip.setPixelColor(4, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 17) {

strip.setPixelColor(5, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 18) {

strip.setPixelColor(6, 0, 0, b);

Strip-Show();}

sonst if (hourval == 19) {

strip.setPixelColor(7, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 20) {

strip.setPixelColor(8, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 21) {

strip.setPixelColor(9, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 22) {

strip.setPixelColor(10, 0, 0, b);

Strip-Show();}

sonst if (Stundenwert == 23) {

strip.setPixelColor(11, 0, 0, b);

Strip-Show();}

Verzögerung (1000);

für (int i=0; i<12; i++){

strip.setPixelColor(i, 0, 0, 0);

Strip-Show();

}

// für serielles Debugging

Serial.print (Stundenwert, DEZ);

Serial.print (':');

Serial.print (Minutenwert, DEZ);

Serial.print (':');

Serial.println (Secondval, DEC);

}

Leerer Punkt (uint32_t c, uint8_t warte) {

für (int j=0; j<3; j++) {

for(int i=0; i<12; i++){

strip.setPixelColor(i, c);

Strip-Show();

verzögern (warten);

for(int i=0; i<12; i++){

strip.setPixelColor(i, 0, 0, 0);

Strip-Show();}

}

}

}

Schritt 5: Dänisches Öl

Dänisches Öl
Dänisches Öl
Dänisches Öl
Dänisches Öl
Dänisches Öl
Dänisches Öl
Dänisches Öl
Dänisches Öl

Der letzte und optionale Schritt besteht darin, etwas dänisches Öl auf das Holz aufzutragen. Ich mag es sehr, wie es die Maserung hervorhebt und es bietet einen gewissen Schutz vor Flecken und Feuchtigkeit. Also ich kann es sehr empfehlen.

Sie können es aufbürsten oder ich benutze einfach ein altes Tuch zum Aufwischen.

Jetzt müssen Sie es nur noch anschließen und genießen.

Empfohlen: