Sadržaj:

Ish sat: 5 koraka (sa slikama)
Ish sat: 5 koraka (sa slikama)

Video: Ish sat: 5 koraka (sa slikama)

Video: Ish sat: 5 koraka (sa slikama)
Video: КОНЕЦ МУЧЕНИЯМ. Трава больше не проблема! 2024, Juli
Anonim
Image
Image
Okupljanje dijelova i drveni radovi
Okupljanje dijelova i drveni radovi

Često zateknem sebe kako kupujem stvari s kojima nemam pojma šta ću. Ovaj projekat je rezultat kupovine prstena sa uključenim LED diodama 12x WS2812b. Nisam imao planove za to, ali izgledalo je super na internetu pa sam stavio jedan u kolica, igrao se s njim neko vrijeme kad je stigao, a zatim zaboravio na sve.

Nešto kasnije razmišljao sam o izradi sata i sjetio se da je sjedio ne radeći ništa. Razmišljao sam o kupovini drugog prstena sa 60 LED dioda kako bih nadoknadio minute, ali onda sam počeo razmišljati kako mi / ja gledamo na vrijeme i zaokružujemo ga na najbližih 5 minuta.

S ovim u svom, krenuo sam sa svojim 12 LED prstenom da napravim isti sat. Prikazuje 1 LED odjednom na 1 sekundu, kako bi označio sate (plava LED), a zatim minute (crvena LED) zaokružene prema dolje

Korak 1: Skupljanje dijelova i obrada drveta

Okupljanje dijelova i drveni radovi
Okupljanje dijelova i drveni radovi
Okupljanje dijelova i drveni radovi
Okupljanje dijelova i drveni radovi
Okupljanje dijelova i drveni radovi
Okupljanje dijelova i drveni radovi

Imao sam veliku sreću da jednog dana dođem na posao i uočim paletu. Ova paleta mi je zapela jer nije izgledala kao vaša standardna paleta mlina. Bio je čist, termički obrađen i najneobičnije čvrst hrast.

Ovaj projekat je napravljen od jednog od komada te palete. (Pitao sam šefa prije nego što sam ga odnio kući)

Koristi se i:

  • 12 piksela ws2812b LED prsten
  • Modul sata u realnom vremenu (RTC) (koristim DS3231 sa I2C)
  • Kompatibilan s Arduino Nano v3.0
  • Akrilni lim (5 mm)
  • Obojena žica

Alati

  • Power Drill
  • Router
  • Podesivi ravni drveni bit
  • Električna brusilica
  • Ručna testera
  • Lemilica
  • Pištolj za vruće ljepilo
  • Brusni papir
  • Dansko ulje

Brušenje

Počeo sam korištenjem brusilice za ispravljanje i čišćenje drvenog bloka dok sve strane ne budu čiste i glatke. Ostavio sam neke nesavršenosti vidljive i nisu savršeno ravne ili četvrtaste jer volim vidjeti dio povijesti u šumi.

Označavanje i izrezivanje rupa

Nakon brušenja odabrao sam stranu sa koje sam htio lice sata i označio središte povlačenjem linija iz svakog ugla. Podesivo drvo postavio sam malo veće od LED prstena tako da bi postojala polica na koju bi akril mogao sjesti i izrezati dubinu od oko 5 mm, a zatim podesiti rezač malo iznad veličine LED prstena i izrezati još oko 5 mm.

Rupe za usmjeravanje i kablove

Koristeći svoj usmjerivač s 12 -milimetarskim bitom, izvukao sam udubljenje na dnu bloka kako bih sakrio RTC i Arduino. Dubina je oko 15 mm i najmanje 5 mm od bilo kojeg ruba. Obilježio sam središte (donji dio) odozdo i izbušio pomoću 10 -milimetarskog bita tek na pola puta kako bih omogućio LED žice. Zatim sam bušilicom od 5 mm izbušio središte LED udubljenja kako bih sreo rupu od 10 mm odozdo.

Još jedna rupa na stražnjoj strani od 4 mm za napajanje i upotrebom manjeg usmjerivača za izradu kanala za žice na stražnjoj strani LED prstena i drvo je obavljeno.

Korak 2: Akrilni krugovi

Akrilni krugovi
Akrilni krugovi
Akrilni krugovi
Akrilni krugovi
Akrilni krugovi
Akrilni krugovi

Za izradu akrila za prednji dio sata naveo sam izrezivanje četvrtastog komada koji je bio tek veći od rupe koju je morao popuniti. Zatim sam pomoću brusilice za početak počeo uklanjati uglove sve dok nije postigao pravi oblik i veličinu. Zatim sam prešao na ručno brušenje kako ne bih pretjerao sa snimanjem i morao sam početi ispočetka.

Bio je to spor i dosadan proces pokušaja i grešaka sve dok se nije uklopio kako treba, ali mislim da se krajnji rezultat isplatio. Završio sam koristeći papir vrlo finog zrna kako bih prednjoj strani akrila dao zamrznut izgled.

Korak 3: Lemljenje

Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje

Volim koristiti sustav boja za svoje žice, ovom prilikom biram:

  • Crveno za napajanje (5v)
  • Bijela za podlogu
  • Žuta za podatke
  • Zelena za Sat

Započeo sam lemljenjem 3 potrebne žice na LED prsten pomoću gornjeg sistema i guranjem žica niz rupu. Kako ne bi trebao biti izložen nikakvoj stvarnoj prisili, upotrijebio sam sićušan dio vrućeg ljepila da držim prsten na mjestu. (Možda ću ga morati promijeniti) i instalirati akril sa samo malo vrućeg ljepila oko ruba.

Zatim sam lemio 4 žice na RTC koristeći gornji sistem. Da stvari budu malo urednije, odlučio sam napajati RTC iz Arduina. Zatim je sve spojio na Arduino i lemio 1 žicu za napajanje, a drugu za uzemljenje na Arduino.

RTC

  • SCL (sat) na analogni pin 5
  • SDA (podaci) na analogni pin 4
  • VCC na 5V
  • GND za bilo koji GND na Arduinu

LED prsten

Din na digitalni pin 6

Motao sam stari USB kabel pa sam odlučio to upotrijebiti za napajanje sata. Odrezao sam kraj koji bi se normalno spojio s nečim i gurnuo ga kroz rupu na stražnjoj strani. Zatim ogolite i začinite krajeve prije lemljenja VCC -a na Arduino i LED prstena na pozitivnu stranu i uzemljenje od Arduina i LED na uzemljenje. Kasnije sam se malo zagrijao i izgledalo je dobro, Pištolj za vruće ljepilo se vratio kako bi zadržao sve. Odlučio sam napustiti Arduino s dovoljno igre da ću moći pristupiti USB priključku za njegovo programiranje u budućnosti, ali ne toliko da bih mogao ispasti.

Korak 4: Kôd

Sada biste trebali moći učitati ovaj kod na Arduino.

Ako RTC ne radi, ovaj kôd će postaviti vrijeme na osnovu toga kada je kôd sastavljen, pa samo pritisnite dugme za učitavanje i ne provjeravajte.

naizmjenično ovo također funkcionira jako dobro za postavljanje vremena.

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

Veći dio ovog koda posudio sam iz biblioteke Adafruit NeoPixel, a dio iz RTC biblioteke koju sam pronašao, a neke sam sam izradio.

// uključuje kod knjižnice: #include

#include

#include

// definiramo pinove

#define PIN 6

#define BRIGHTNESS 20 // postavite maksimalnu svjetlinu

#define r 5

#define g 5

#define b 5

RTC_DS3231 rtc; // Uspostavljanje objekta sata

Adafruit_NeoPixel strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // strip objekt

void setup () {

Wire.begin (); // Pokretanje I2C

rtc.begin (); // početak sata

Serial.begin (9600);

// postavljanje pinmodova

pinMode (PIN, OUTPUT);

if (rtc.lostPower ()) {

Serial.println ("RTC je izgubio napajanje, podesimo vrijeme!");

// sljedeći red postavlja RTC na datum i vrijeme sastavljanja ove skice

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

// Ova linija postavlja RTC s eksplicitnim datumom i vremenom, na primjer za postavljanje

// 21. januara 2014. u 3 ujutro nazvali biste:

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

}

strip.begin ();

strip.show (); // Pokretanje svih piksela na "isključeno"

DateTime theTime = rtc.now (); // uzima u obzir ljetno računanje vremena

byte secondval = theTime.second (); // dobiti sekunde

bajt minuteval = theTime.minute (); // dobiti minute

int hourval = theTime.hour ();

tačka (strip. Color (0, g, 0), 50);

}

void loop () {{100} {101}

// dobiti vrijeme

DateTime theTime = rtc.now (); // uzima u obzir ljetno računanje vremena

int minuteval = theTime.minute (); // dobiti minute

int hourval = theTime.hour (); // dobiti sate

int secondval = theTime.second ();

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

kašnjenje (1000);

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

inače if (hourval == 1) {

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

strip.show ();}

inače if (hourval == 2) {

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

strip.show ();}

inače if (hourval == 3) {

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

strip.show ();}

inače if (hourval == 4) {

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

strip.show ();}

inače if (hourval == 5) {

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

strip.show ();}

inače if (hourval == 6) {

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

strip.show ();}

inače if (hourval == 7) {

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

strip.show ();}

inače if (hourval == 8) {

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

strip.show ();}

inače if (hourval == 9) {

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

strip.show ();}

inače if (hourval == 10) {

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

strip.show ();}

inače if (hourval == 11) {

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

strip.show ();}

inače if (hourval == 12) {

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

strip.show ();}

inače if (hourval == 13) {

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

strip.show ();}

inače if (hourval == 14) {

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

strip.show ();}

inače if (hourval == 15) {

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

strip.show ();}

inače if (hourval == 16) {

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

strip.show ();}

inače if (hourval == 17) {

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

strip.show ();}

inače if (hourval == 18) {

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

strip.show ();}

inače if (hourval == 19) {

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

strip.show ();}

inače if (hourval == 20) {

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

strip.show ();}

inače if (hourval == 21) {

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

strip.show ();}

inače if (hourval == 22) {

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

strip.show ();}

inače if (hourval == 23) {

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

strip.show ();}

kašnjenje (1000);

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

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

strip.show ();

}

// za serijsko otklanjanje grešaka

Serial.print (satni interval, DEC);

Serial.print (':');

Serial.print (minuteval, DEC);

Serial.print (':');

Serial.println (secondval, DEC);

}

void dot (uint32_t c, uint8_t wait) {

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

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

strip.setPixelColor (i, c);

strip.show ();

kašnjenje (čekanje);

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

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

strip.show ();}

}

}

}

Korak 5: Dansko ulje

Dansko ulje
Dansko ulje
Dansko ulje
Dansko ulje
Dansko ulje
Dansko ulje
Dansko ulje
Dansko ulje

Posljednji i izborni korak je nanošenje danskog ulja na drvo. Zaista mi se sviđa kako izvlači zrna, a nudi i neku zaštitu od mrlja i vlage. Zato ga toplo preporučujem.

Možete ga očetkati ili ja samo obrišem staru krpu.

Ostalo je samo da ga uključite i uživate.

Preporučuje se: