Kazalo:
- Korak: Zbiranje delov in obdelava lesa
- 2. korak: Akrilni krogi
- Korak: Spajkanje
- 4. korak: Koda
- 5. korak: Dansko olje
Video: Ish ura: 5 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
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
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
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
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
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:
Ura za upokojitev / štetje navzgor / ura Dn: 4 koraki (s slikami)
Ura za upokojitev / Odštevanje / Ura Dn: Nekaj teh 8-palčnih LED matričnih zaslonov 8x8 sem imel v predalu in razmišljal, kaj bi z njimi. Navdihnjen z drugimi navodili sem dobil idejo, da bi sestavil zaslon za odštevanje/navzgor za odštevanje do prihodnjega datuma/časa in če je ciljni čas p
ESP8266 Omrežna ura brez RTC - Nodemcu NTP Ura brez RTC - PROJEKT INTERNETNE URE: 4 koraki
ESP8266 Omrežna ura brez RTC | Nodemcu NTP Ura brez RTC | PROJEKT INTERNETNE URE: V projektu bo izdelan projekt ure brez RTC, vzelo si bo čas za internet z uporabo WiFi in ga bo prikazal na zaslonu st7735
C51 4 -bitna elektronska ura - lesena ura: 15 korakov (s slikami)
C51 4 -bitna elektronska ura - lesena ura: ta vikend sem imel nekaj prostega časa, zato sem šel naprej in sestavil to 4 -bitno elektronsko digitalno uro za 2,40 USD, ki sem jo pred časom kupil pri AliExpressu
Ura Gixie: Najlepša ura s sijočo cevjo: 4 koraki
Ura Gixie: Najlepša ura s svetlečo cevko: Nixie Tube mi je zelo všeč, vendar je predraga, tega si ne morem privoščiti. Tako sem pol leta ustvarjal to uro Gixie. Ura Gixie je dosežena z osvetlitvijo ws2812 za izdelavo akrilne svetlobe. Potrudim se, da bi bila cev RGB tanjša
M-ura Miniaturna večmodna ura: 11 korakov
M-ura Miniaturna večmodna ura: minimalistična ura? Ura z več načini? Matrix Clock? To je projekt z več načini ure, ki temelji na MSP430G2432. Lahko ga sestavite brez spajkanja in minimalne uporabe orodja. Z omejeno ločljivostjo zaslona 8x8 slikovnih pik ta 12 -urna ura prikazuje čas