Obsah:

Hodiny Ish: 5 kroků (s obrázky)
Hodiny Ish: 5 kroků (s obrázky)

Video: Hodiny Ish: 5 kroků (s obrázky)

Video: Hodiny Ish: 5 kroků (s obrázky)
Video: Hana Zagorová - Kolekce písniček 5 hodin (2004) 2024, Červenec
Anonim
Image
Image
Sběr dílů a práce se dřevem
Sběr dílů a práce se dřevem

Často si sám kupuji věci, o kterých nemám tušení, s čím budu dělat. Tento projekt je výsledkem nákupu prstenu, který má rozsvíceno 12x LED WS2812b. Neměl jsem to v plánu, ale online to vypadalo skvěle, tak jsem si jeden strčil do košíku, chvíli jsem si s ním hrál, když dorazil, a pak jsem na něj všechno zapomněl.

O chvíli později jsem přemýšlel o výrobě hodin a vzpomněl jsem si, že tam seděli a nic nedělali. Přemýšlel jsem o koupi druhého prstenu se 60 diodami LED, který by tvořil minuty, ale pak jsem začal přemýšlet o tom, jak se díváme na čas a zaokrouhlujeme jej na nejbližší 5 minut.

S tímto v mém jsem se vydal se svým 12 LED prstenem, abych vyrobil hodiny. Na 1 sekundu zobrazí 1 LED současně, což indikuje hodinu (modrá LED) a poté minuty (červená LED) zaokrouhlené dolů

Krok 1: Shromažďování dílů a práce se dřevem

Sběr dílů a práce se dřevem
Sběr dílů a práce se dřevem
Sběr dílů a práce se dřevem
Sběr dílů a práce se dřevem
Sběr dílů a práce se dřevem
Sběr dílů a práce se dřevem

Měl jsem velké štěstí, že jsem jednoho dne dorazil do práce a spatřil paletu. Tato paleta na mě trčela, protože nevypadala jako vaše standardní, paleta mlýnské palety. Byl to čistý, tepelně zpracovaný a neobvykle masivní dub.

Tento projekt je vyroben z jednoho z kusů této palety. (Zeptal jsem se šéfa, než jsem to vzal domů)

Také se používá:

  • 12pixelový LED kroužek ws2812b
  • Real Time Clock (RTC) module (Im using a DS3231 with I2C)
  • Kompatibilní s Arduino Nano v3.0
  • Akrylová fólie (5 mm)
  • Barevný drát

Nástroje

  • Elektrická vrtačka
  • Router
  • Nastavitelný plochý dřevěný bit
  • Silová bruska
  • Ruční pila
  • Páječka
  • Horká lepicí pistole
  • Smirkový papír
  • Dánský olej

Broušení

Začal jsem pomocí výkonné brusky narovnat a vyčistit blok dřeva, dokud nebudou všechny strany čisté a hladké. Nechal jsem některé nedokonalosti viditelné a nebylo to úplně rovné nebo hranaté, jak bych rád viděl něco z historie v lese.

Značení a řezání otvorů

Po pískování jsem si vybral stranu, na kterou jsem chtěl ciferník hodin, a označil střed kreslením čar z každého rohu. Nastavitelný kousek dřeva jsem nastavil o něco větší než led kroužek, takže by tam byla polička, na kterou by akrylát mohl sedět a řezat asi 5 mm hluboko, a poté nastavit řezačku těsně nad velikost prstence LED a snížit dalších asi 5 mm.

Vedení a otvory pro kabely

Pomocí routeru s bitem 12 mm jsem vyvedl vybrání ve spodní části bloku, abych skryl RTC a Arduino. Je asi 15 mm hluboký a ne méně než 5 mm od jakéhokoli okraje. Zespodu jsem označil střed (ish) a vyvrtal pomocí 10 mm bitu těsně za polovinou cesty, aby bylo možné použít vodiče LED. Potom jsem pomocí 5 mm bitu vyvrtal ze středu vybrání LED, abych se setkal s 10 mm otvorem zespodu.

Ještě jeden 4 mm otvor na zadní straně pro přívod energie a pomocí menšího routeru vytvořte kanál pro dráty na zadní straně prstence LED a práce se dřevem je hotová.

Krok 2: Akrylové kruhy

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

Pro výrobu akrylu na přední stranu hodin jsem uvedl řezání čtvercového kusu, který byl jen větší než otvor, který musel vyplnit. Potom jsem pomocí výkonné brusky začal odstraňovat rohy, dokud neměl správný tvar a velikost. Poté jsem přešel na ruční pískování, abych nepřestřelil a musel začít znovu.

Byl to pomalý a únavný proces pokusů a omylů, dokud to nevyhovovalo, ale myslím, že konečný výsledek stál za to. Nakonec jsem použil velmi jemný papír se zrnitostí, aby přední strana akrylu získala matný vzhled.

Krok 3: Pájení

Pájení
Pájení
Pájení
Pájení
Pájení
Pájení
Pájení
Pájení

Rád používám barevný systém pro své dráty při této příležitosti, kterou si vyberu:

  • Červená pro napájení (5v)
  • Bílá pro Ground
  • Žlutá pro data
  • Zelená pro hodiny

Začal jsem pájením 3 nezbytných vodičů na prstenec LED pomocí systému výše a zatlačením vodičů dolů do otvoru. Protože by neměl být vystaven žádnému skutečnému nucenému použití, použil jsem malý kousek horkého lepidla, abych prsten přidržel na místě. (Možná to budu muset někdy změnit) a nainstalujte akryl jen trochou horkého lepidla kolem okraje.

Poté jsem 4 vodiče připájel na RTC pomocí výše uvedeného systému. Aby to nebylo tak úhledné, rozhodl jsem se čerpat energii pro RTC z Arduina. Poté vše připojil k Arduinu a k Arduinu připájel 1 vodič pro napájení a druhý pro uzemnění.

RTC

  • SCL (hodiny) na analogový pin 5
  • SDA (data) na analogový pin 4
  • VCC až 5V
  • GND na jakýkoli GND na Arduinu

LED kroužek

Pin na digitální pin 6

Měl jsem kolem sebe starý USB kabel, takže jsem se rozhodl použít jej k napájení hodin. Odřízl jsem konec, který by se normálně k něčemu připojil, a prostrčil ho otvorem vzadu. Poté odizolovali a obrobili konce před pájením VCC na Arduino a prsten LED na kladnou stranu a uzemnění z Arduina a LED na uzemnění. Později jsem se trochu smršťoval a vypadalo to dobře, Horká lepicí pistole vyšla zpět, aby vše držela. Rozhodl jsem se nechat Arduino s dostatečnou hrou, abych mohl v budoucnu přistupovat k portu USB a programovat ho, ale ne tolik, abych mohl vypadnout.

Krok 4: Kód

Nyní byste měli mít možnost nahrát tento kód do Arduina.

Pokud RTC neběží, tento kód nastaví čas podle toho, kdy byl kód zkompilován, takže stačí stisknout tlačítko pro odeslání a neověřit.

střídavě to také funguje velmi dobře pro nastavení času.

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

Velkou část tohoto kódu jsem si vypůjčil z knihovny Adafruit NeoPixel a část z knihovny RTC, kterou jsem našel, a některé jsem si vytvořil sám.

// zahrnout kód knihovny: #include

#zahrnout

#zahrnout

// definujte piny

#definovat PIN 6

#define BRIGHTNESS 20 // nastavení maximálního jasu

#define r 5

#definovat g 5

#define b 5

RTC_DS3231 rtc; // Založení objektu hodin

Proužek Adafruit_NeoPixel = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // svlékání objektu

neplatné nastavení () {

Wire.begin (); // Začněte I2C

rtc.begin (); // začít hodiny

Serial.begin (9600);

// nastavení pinmodes

pinMode (PIN, VÝSTUP);

if (rtc.lostPower ()) {

Serial.println („RTC ztratil výkon, nastavíme čas!“);

// následující řádek nastaví RTC na datum a čas, kdy byla tato skica sestavena

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

// Tento řádek nastaví RTC s explicitním datem a časem, například pro nastavení

// 21. ledna 2014 ve 3 hodiny ráno byste volali:

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

}

strip.begin ();

strip.show (); // Inicializace všech pixelů na 'vypnuto'

DateTime theTime = rtc.now (); // bere v úvahu DST

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

byte minuteval = theTime.minute (); // získejte minuty

int hourval = theTime.hour ();

tečka (proužek. Barva (0, g, 0), 50);

}

prázdná smyčka () {

// získejte čas

DateTime theTime = rtc.now (); // bere v úvahu DST

int minuteval = theTime.minute (); // získejte minuty

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

int secondval = theTime.second ();

if (minuteval 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 ();}

zpoždění (1000);

pro (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 ();}

zpoždění (1000);

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

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

strip.show ();

}

// pro sériové ladění

Serial.print (hodinový, DEC);

Serial.print (':');

Serial.print (minuteval, DEC);

Serial.print (':');

Serial.println (secondval, DEC);

}

prázdná tečka (uint32_t c, uint8_t čekání) {

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

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

strip.setPixelColor (i, c);

strip.show ();

zpoždění (čekání);

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

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

strip.show ();}

}

}

}

Krok 5: Dánský olej

Dánský olej
Dánský olej
Dánský olej
Dánský olej
Dánský olej
Dánský olej
Dánský olej
Dánský olej

Posledním a volitelným krokem je nanesení nějakého dánského oleje na dřevo. Opravdu se mi líbí, jak přináší obilí, a navíc nabízí určitou ochranu před skvrnami a vlhkostí. Takže vřele doporučuji.

Můžete to otřít kartáčem nebo na to stačí použít starý hadřík.

Teď už jen zbývá zapojit a užívat si.

Doporučuje: