Obsah:

Hodiny Ish: 5 krokov (s obrázkami)
Hodiny Ish: 5 krokov (s obrázkami)

Video: Hodiny Ish: 5 krokov (s obrázkami)

Video: Hodiny Ish: 5 krokov (s obrázkami)
Video: 10 POTRAVIN, KTERÉ MAJÍ TÉMĚŘ 0 KALORIÍ 2024, November
Anonim
Image
Image
Zber dielov a práca s drevom
Zber dielov a práca s drevom

Často si zisťujem, že si kupujem veci, o ktorých nemám ani tušenia, s čím ich budem robiť. Tento projekt je výsledkom kúpy krúžku, ktorý má rozsvietených 12x diódy WS2812b LED. Nemal som to v pláne, ale online to vyzeralo super, tak som jeden vložil do košíka, chvíľu som sa s ním hral, keď prišiel, a potom som naň všetko zabudol.

O chvíľu neskôr som premýšľal o výrobe hodín a spomenul som si, že tam sedeli a nič nerobili. Uvažoval som o kúpe druhého prsteňa so 60 LED diódami na doplnenie minút, ale potom som začal premýšľať o tom, ako sa pozeráme na čas a zaokrúhľujeme ho na najbližších 5 minút.

S týmto v mojom som sa vydal so svojim 12 LED krúžkom na výrobu ish hodín. Zobrazuje 1 LED diódu súčasne po dobu 1 sekundy, čo znamená hodinu (modrá LED) a potom minúty (červená LED) zaokrúhlené nadol

Krok 1: Zhromažďovanie dielov a práce s drevom

Zhromažďovanie dielov a práce s drevom
Zhromažďovanie dielov a práce s drevom
Zhromažďovanie dielov a práce s drevom
Zhromažďovanie dielov a práce s drevom
Zhromažďovanie dielov a práce s drevom
Zhromažďovanie dielov a práce s drevom

Mal som veľké šťastie, že som jedného dňa dorazil do práce a zbadal som paletu. Táto paleta sa na mňa nalepila, pretože nevyzerala ako váš štandardný chod mlynárskej palety. Bol to čistý, tepelne spracovaný a najneobvyklejšie masívny dub.

Tento projekt je vyrobený z jedného z kúskov tejto palety. (Spýtal som sa šéfa, než som to vzal domov)

Tiež sa používa:

  • 12 pixelový ws2812b LED krúžok
  • Modul hodín v reálnom čase (RTC) (používam DS3231 s I2C)
  • Kompatibilné s Arduino Nano v3.0
  • Akrylový list (5 mm)
  • Farebný drôt

Nástroje

  • Elektrická vŕtačka
  • Router
  • Nastaviteľný plochý bit do dreva
  • Elektrická brúska
  • Ručná píla
  • Spájkovačka
  • Horúca lepiaca pištoľ
  • Brúsny papier
  • Dánsky olej

Brúsenie

Začal som pomocou výkonnej brúsky na vyrovnanie a čistenie dreveného bloku, až kým všetky strany nebudú čisté a hladké. Niektoré nedokonalosti som nechal viditeľné a nie sú úplne rovné alebo hranaté, pretože rád vidím v lese trochu histórie.

Značenie a rezanie otvorov

Po brúsení som si vybral stranu, na ktorej som chcel tvár hodín, a stred som označil kreslením čiar z každého rohu. Nastaviteľný kúsok dreva som nastavil o niečo väčší ako LED krúžok, aby tam bola polica, na ktorú by mal akrylát sedieť a rezať asi 5 mm hlboko, potom nastavím frézu tesne nad veľkosťou prstenca LED a odrežem ďalších 5 mm..

Vedenie a otvory pre káble

Pomocou smerovača s 12 mm bitom som vyviedol vybranie v spodnej časti bloku na skrytie RTC a Arduino. Je hlboký asi 15 mm a nie menej ako 5 mm od akéhokoľvek okraja. Označil som stred (ish) zospodu a vŕtal som pomocou 10 mm bitu tesne za polovicou cesty, aby boli k dispozícii vodiče LED. Potom som pomocou 5 mm bitu vyvŕtal zo stredu vybrania LED, aby sa stretol s 10 mm otvorom zospodu.

Ešte jeden 4 mm otvor na zadnej strane pre prívod energie a pomocou menšieho routeru urobte kanál pre vodiče na zadnej strane prstenca LED a práca s drevom je hotová.

Krok 2: Akrylové kruhy

Akrylové kruhy
Akrylové kruhy
Akrylové kruhy
Akrylové kruhy
Akrylové kruhy
Akrylové kruhy

Na výrobu akrylu na prednú stranu hodín som uviedol rezanie štvorcového kusu, ktorý bol o niečo väčší ako diera, ktorú mal vyplniť. Potom som pomocou výkonnej brúsky začal odstraňovať rohy, až kým nedosiahol správny tvar a veľkosť. Potom som prešiel na ručné brúsenie, aby som neprestrelil a musel začať odznova.

Bol to pomalý a únavný proces pokusov a omylov, kým to nevyhovovalo, ale myslím si, že konečný výsledok stál za to. Skončil som s použitím veľmi jemného hrubého papiera, aby predná strana akrylátu získala matný vzhľad.

Krok 3: Spájkovanie

Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie

Rád používam farebný systém pre svoje drôty pri tejto príležitosti, ktorú si vyberiem:

  • Červená pre napájanie (5v)
  • Biela pre zem
  • Žltá pre údaje
  • Zelená pre hodiny

Začal som spájkovaním 3 potrebných vodičov na krúžok LED pomocou systému vyššie a zatlačením vodičov do otvoru. Pretože by nemal byť vystavený žiadnym skutočným núteným účinkom, použil som malý kúsok horúceho lepidla, aby som prsteň držal na svojom mieste. (Možno to budem musieť niekedy zmeniť) a akryl naneste trochou horúceho lepidla okolo okraja.

Potom som spájkoval 4 drôty na RTC pomocou systému uvedeného vyššie. Aby to nebolo málo upravené, rozhodol som sa čerpať energiu pre RTC z Arduina. Potom všetko pripojil k Arduinu a k Arduinu spájkoval 1 vodič pre napájanie a druhý pre uzemnenie.

RTC

  • SCL (hodiny) na analógový kolík 5
  • SDA (údaje) na analógový kolík 4
  • VCC až 5V
  • GND na ľubovoľný GND na Arduine

LED krúžok

Kolík Din to Digital 6

Mal som zavesený starý USB kábel, a tak som sa rozhodol použiť ho na napájanie hodín. Odrezal som koniec, ktorý by sa za normálnych okolností spájal s niečím, a zasunul ho dierou vzadu. Potom odizolovali a zjemnili konce a potom spájkovali VCC s Arduinom a prstenec LED na pozitívnu stranu a uzemnenie z Arduina a LED na uzemnenie. Neskôr sa trochu zmršťujem a vyzeralo to dobre, Horúca lepiaca pištoľ vyšla von, aby všetko držala. Rozhodol som sa nechať Arduinu dostatok hry, aby som v budúcnosti mohol získať prístup k portu USB a naprogramovať ho, ale nie natoľko, aby som mohol vypadnúť.

Krok 4: Kód

Teraz by ste mali mať možnosť nahrať tento kód do Arduina.

Ak nie je spustený RTC, tento kód nastaví čas podľa toho, kedy bol kód zostavený, takže stačí kliknúť na tlačidlo nahrávania a neoverovať.

striedavo to funguje aj veľmi dobre na nastavenie času.

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

Väčšinu z tohto kódu som si požičal z knižnice Adafruit NeoPixel a niektoré z knižnice RTC, ktoré som našiel a niektoré som si vymyslel sám.

// zahrňte kód knižnice: #include

#zahrnúť

#zahrnúť

// definovanie pinov

#definujte PIN 6

#define BRIGHTNESS 20 // nastavenie maximálneho jasu

#define r 5

#definovať g 5

#definovať b 5

RTC_DS3231 rtc; // Vytvorenie objektu hodín

Pásik Adafruit_NeoPixel = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // vyzlečenie objektu

neplatné nastavenie () {

Wire.begin (); // Začnite s I2C

rtc.begin (); // začať hodiny

Serial.begin (9600);

// nastavenie pinmodes

pinMode (PIN, VÝSTUP);

if (rtc.lostPower ()) {

Serial.println („RTC stratil výkon, nastavme čas!“);

// nasledujúci riadok nastavuje RTC na dátum a čas, kedy bol tento náčrt zostavený

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))));

// Tento riadok nastavuje RTC s explicitným dátumom a časom, napríklad na nastavenie

// 21. januára 2014 o 3:00 by ste zavolali:

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

}

strip.begin ();

strip.show (); // Inicializácia všetkých pixelov na „vypnuté“

DateTime theTime = rtc.now (); // berie do úvahy DST

byte secondval = theTime.second (); // získajte sekundy

byte minuteval = theTime.minute (); // získajte minúty

int hourval = theTime.hour ();

bodka (pásik. Farba (0, g, 0), 50);

}

prázdna slučka () {

// získaj čas

DateTime theTime = rtc.now (); // berie do úvahy DST

int minuteval = theTime.minute (); // získajte minúty

int hourval = theTime.hour (); // získajte hodiny

int secondval = theTime.second ();

if (minúta 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 ();}

oneskorenie (1000);

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

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

strip.show ();

}

if (hourval == 0) {

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

strip.show ();}

else if (hourval == 1) {

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

strip.show ();}

else if (hourval == 2) {

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

strip.show ();}

else if (hourval == 3) {

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

strip.show ();}

else if (hourval == 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 (hourval == 8) {

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

strip.show ();}

else if (hourval == 9) {

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

strip.show ();}

else if (hourval == 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 (hourval == 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 (hourval == 19) {

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

strip.show ();}

else if (hourval == 20) {

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

strip.show ();}

else if (hourval == 21) {

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

strip.show ();}

else if (hourval == 22) {

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

strip.show ();}

else if (hourval == 23) {

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

strip.show ();}

oneskorenie (1000);

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

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

strip.show ();

}

// na sériové ladenie

Serial.print (hourval, DEC);

Serial.print (':');

Serial.print (minuteval, DEC);

Serial.print (':');

Serial.println (secondval, DEC);

}

prázdna bodka (uint32_t c, uint8_t čakať) {

pre (int j = 0; j <3; j ++) {

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

strip.setPixelColor (i, c);

strip.show ();

oneskorenie (čakanie);

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

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

strip.show ();}

}

}

}

Krok 5: Dánsky olej

Dánsky olej
Dánsky olej
Dánsky olej
Dánsky olej
Dánsky olej
Dánsky olej
Dánsky olej
Dánsky olej

Posledným a voliteľným krokom je nanesenie dánskeho oleja na drevo. Naozaj sa mi páči, ako prináša zrno a ponúka určitú ochranu pred škvrnami a vlhkosťou. Takže vrelo odporúčam.

Môžete to natrieť kefkou alebo na to jednoducho použijem starú handričku.

Zostáva už len zapojiť ho a užívať si.

Odporúča: