Kazalo:

Ish ura: 5 korakov (s slikami)
Ish ura: 5 korakov (s slikami)

Video: Ish ura: 5 korakov (s slikami)

Video: Ish ura: 5 korakov (s slikami)
Video: Установка маяков под штукатурку. Углы 90 градусов. #12 2024, Julij
Anonim
Image
Image
Zbiranje delov in obdelava lesa
Zbiranje delov in obdelava lesa

Pogosto se mi zdi, da kupujem stvari, za katere nimam pojma, kaj bom naredil. Ta projekt je rezultat nakupa obroča, ki ima prižganih 12x LED WS2812b. Nisem imel načrtov za to, vendar je bilo videti super na spletu, zato sem enega zložil v voziček, se nekaj časa igral z njim, ko je prišel, nato pa pozabil na vse.

Nekaj časa kasneje sem razmišljal o izdelavi ure in se spomnil, da sedi tam in ne počne ničesar. Razmišljal sem o nakupu drugega obroča s prižganimi 60 LED diodami, da bi nadomestil minute, nato pa sem začel razmišljati, kako gledamo na čas in ga zaokrožimo na najbližjih 5 minut.

S tem v svojem sem se z mojim 12 LED obročem lotil izdelave ish ure. Prikazuje 1 LED naenkrat za 1 sekundo, da prikaže uro (modra LED) in nato minute (rdeča LED) zaokroženo navzdol

Korak: Zbiranje delov in obdelava lesa

Zbiranje delov in obdelava lesa
Zbiranje delov in obdelava lesa
Zbiranje delov in obdelava lesa
Zbiranje delov in obdelava lesa
Zbiranje delov in obdelava lesa
Zbiranje delov in obdelava lesa

Imel sem veliko srečo, da sem nekega dne prišel v službo in opazil paleto. Ta paleta se mi je zataknila, saj ni bila videti kot tvoja standardna paleta mlinskih palet. Bil je čist, toplotno obdelan in najbolj nenavadno trden hrast.

Ta projekt je narejen iz enega od kosov te palete. (Šefa sem vprašal, preden sem ga odnesel domov)

Uporablja se tudi:

  • 12 pikslov LED obroč ws2812b
  • Modul ure v realnem času (RTC) (uporabljam DS3231 z I2C)
  • Združljiv z Arduino Nano v3.0
  • Akrilna plošča (5 mm)
  • Barvna žica

Orodja

  • Električni vrtalnik
  • Usmerjevalnik
  • Nastavljiv ploščat les
  • Električni brusilnik
  • Ročna žaga
  • Spajkalnik
  • Pištola za vroče lepilo
  • Brusni papir
  • Dansko olje

Brušenje

Začel sem z brusilnikom za poravnavo in čiščenje lesa, dokler niso vse strani čiste in gladke. Nekatere pomanjkljivosti sem pustil vidne in niso popolnoma ravne ali kvadratne, saj bi rad videl nekaj zgodovine v lesu.

Označevanje in rezanje lukenj

Po brušenju sem izbral stran, ki sem jo želel, in prikazal središče z risanjem črt iz vsakega vogala. Nastavljiv les je nastavil nekoliko večji od LED obroča, tako da bi bila akrilna polica, na katero bi sedel in izrezal približno 5 mm globoko, nato pa nastavil rezalnik malo več kot LED obroč in odrezal še približno 5 mm.

Odprtine za napeljavo in kable

S svojim usmerjevalnikom z 12 -milimetrskim bitom sem izrezal vdolbino na dnu bloka, da skrijem RTC in Arduino. Globoka je približno 15 mm in najmanj 5 mm od katerega koli roba. Označil sem sredino (ish) od spodaj in izvrtal z 10 -milimetrskim bitom tik na pol poti, da sem omogočil LED žice. Nato sem s 5 -milimetrskim nastavkom izvrtal iz središča vdolbine LED, da bi se srečal z 10 -milimetrsko luknjo od spodaj.

Še ena 4 -milimetrska luknja na hrbtni strani za napajanje in z uporabo manjšega usmerjevalnika za izdelavo kanala za žice na zadnji strani LED obroča in delo z lesom je opravljeno.

2. korak: Akrilni krogi

Akrilni krogi
Akrilni krogi
Akrilni krogi
Akrilni krogi
Akrilni krogi
Akrilni krogi

Za izdelavo akrila na sprednji strani ure sem izrezal kvadratni kos, ki je bil ravno večji od luknje, ki jo je moral zapolniti. Nato sem za začetek z brusilnikom začel odstranjevati vogale, dokler ni bil približno prave oblike in velikosti. Nato sem prešel na ročno brušenje, tako da nisem prestregel in sem moral začeti znova.

To je bil počasen in dolgočasen proces poskusov in napak, dokler se ni ravno prilegal, vendar mislim, da je bil končni rezultat vreden tega. Zaključil sem z zelo finim zrnatim papirjem, ki je sprednji strani akrila dal zamrznjen videz.

Korak: Spajkanje

Spajkanje
Spajkanje
Spajkanje
Spajkanje
Spajkanje
Spajkanje
Spajkanje
Spajkanje

Ob tej priložnosti rad uporabim barvni sistem za svoje žice, ki jih izberem:

  • Rdeča za napajanje (5V)
  • Bela za podlago
  • Rumena za podatke
  • Zelena za uro

Začel sem s spajanjem treh potrebnih žic na LED obroč s pomočjo zgornjega sistema in potiskanje žic po luknji. Ker ne bi smel biti izpostavljen resničnim silam, sem za držanje obroča uporabil majhen košček vročega lepila. (Morda ga bom moral kdaj spremeniti) in namestiti akril z le malo vročega lepila po robu.

Nato sem spajal 4 žice na RTC z uporabo zgornjega sistema. Da bi bile stvari nekoliko bolj čiste, sem se odločil, da napajam RTC iz Arduina. Nato je vse priključil na Arduino in spajal 1 žico za napajanje, drugo pa za ozemljitev na Arduino.

RTC

  • SCL (ura) na analogni pin 5
  • SDA (podatki) na analogni pin 4
  • VCC do 5V
  • GND za kateri koli GND na Arduinu

LED obroč

Din na digitalni pin 6

Imel sem star kabel USB, zato sem se odločil, da ga uporabim za napajanje ure. Odrezal sem konec, ki bi se običajno povezal z nečim, in ga potisnil skozi luknjo na hrbtu. Nato odstranite in obarvajte konce, preden spajkate VCC na Arduino in LED obroč na pozitivno stran ter ozemljitev od Arduina in LED na tla. Kasneje sem se malo skrčil in je bilo videti dobro, Pištola za vroče lepilo se je vrnila ven, da bi vse zadržala. Odločil sem se, da bom Arduino zapustil z dovolj igre, da bom lahko v prihodnosti dostopal do vrat USB za njegovo programiranje, vendar ne toliko, da bi lahko izpadel.

4. korak: Koda

Zdaj bi morali to kodo naložiti v Arduino.

Če RTC ne deluje, bo ta koda nastavila čas glede na to, kdaj je bila koda sestavljena, zato pritisnite gumb za nalaganje in ne preverjajte.

namesto tega to zelo dobro deluje tudi pri nastavitvi časa.

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

Večino te kode sem si sposodil v knjižnici Adafruit NeoPixel, nekaj pa v knjižnici RTC, ki sem jo našel, nekaj pa sem si izmislil sam.

// vključuje kodo knjižnice: #include

#vključi

#vključi

// definiramo zatiče

#define PIN 6

#define BRIGHTNESS 20 // nastavite največjo svetlost

#define r 5

#define g 5

#define b 5

RTC_DS3231 rtc; // Vzpostavitev predmeta ure

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

void setup () {

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

rtc.begin (); // začni uro

Serial.begin (9600);

// nastavimo pinmodes

pinMode (PIN, IZHOD);

if (rtc.lostPower ()) {

Serial.println ("RTC je izgubil moč, nastavimo čas!");

// naslednja vrstica nastavi RTC na datum in čas, ko je bila skica sestavljena

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

// Ta vrstica nastavi RTC z izrecnim datumom in časom, na primer za nastavitev

// 21. januarja 2014 ob 3. uri bi poklicali:

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

}

strip.begin ();

strip.show (); // Inicializirajte vse slikovne pike na "off"

DateTime theTime = rtc.now (); // upošteva letni čas

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

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

int hourval = theTime.hour ();

pika (trak. Barva (0, g, 0), 50);

}

void loop () {

// dobimo čas

DateTime theTime = rtc.now (); // upošteva letni čas

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

int hourval = theTime.hour (); // dobimo ure

int secondval = theTime.second ();

if (minuteval 0) {

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

strip.show ();}

sicer če (minuteval <= 9) {

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

strip.show ();}

sicer če (minuteval <= 14) {

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

strip.show ();}

sicer če (minuteval <= 19) {

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

strip.show ();}

sicer če (minuteval <= 24) {

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

strip.show ();}

sicer če (minuteval <= 29) {

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

strip.show ();}

sicer če (minuteval <= 34) {

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

strip.show ();}

sicer če (minuteval <= 39) {

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

strip.show ();}

sicer če (minuteval <= 44) {

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

strip.show ();}

sicer če (minuteval <= 49) {

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

strip.show ();}

sicer če (minuteval <= 54) {

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

strip.show ();}

sicer če (minuteval <= 59) {

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

strip.show ();}

zamuda (1000);

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

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

strip.show ();

}

če (hourval == 0) {

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

strip.show ();}

sicer če (hourval == 1) {

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

strip.show ();}

sicer če (hourval == 2) {

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

strip.show ();}

sicer če (hourval == 3) {

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

strip.show ();}

sicer če (hourval == 4) {

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

strip.show ();}

sicer če (hourval == 5) {

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

strip.show ();}

sicer če (hourval == 6) {

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

strip.show ();}

sicer če (hourval == 7) {

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

strip.show ();}

sicer če (hourval == 8) {

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

strip.show ();}

sicer če (hourval == 9) {

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

strip.show ();}

sicer če (hourval == 10) {

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

strip.show ();}

sicer če (hourval == 11) {

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

strip.show ();}

sicer če (hourval == 12) {

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

strip.show ();}

sicer če (hourval == 13) {

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

strip.show ();}

sicer če (hourval == 14) {

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

strip.show ();}

sicer če (hourval == 15) {

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

strip.show ();}

sicer če (hourval == 16) {

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

strip.show ();}

sicer če (hourval == 17) {

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

strip.show ();}

sicer če (hourval == 18) {

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

strip.show ();}

sicer če (hourval == 19) {

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

strip.show ();}

sicer če (hourval == 20) {

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

strip.show ();}

sicer če (hourval == 21) {

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

strip.show ();}

sicer če (hourval == 22) {

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

strip.show ();}

sicer če (hourval == 23) {

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

strip.show ();}

zamuda (1000);

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

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

strip.show ();

}

// za serijsko odpravljanje napak

Serijski.tisk (urni čas, 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 ();

zamuda (čakanje);

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

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

strip.show ();}

}

}

}

5. korak: Dansko olje

Dansko olje
Dansko olje
Dansko olje
Dansko olje
Dansko olje
Dansko olje
Dansko olje
Dansko olje

Zadnji in neobvezni korak je, da na les nanesete nekaj danskega olja. Zelo mi je všeč, kako prinaša zrna, poleg tega pa nudi nekaj zaščite pred madeži in vlago. Zato ga zelo priporočam.

Lahko ga nanesete s čopičem ali pa ga obrišem s staro krpo.

Vse, kar je ostalo, je, da ga priključite in uživate.

Priporočena: