Turinys:

Ish Clock: 5 žingsniai (su nuotraukomis)
Ish Clock: 5 žingsniai (su nuotraukomis)

Video: Ish Clock: 5 žingsniai (su nuotraukomis)

Video: Ish Clock: 5 žingsniai (su nuotraukomis)
Video: Dirbu privačiame turtingųjų ir žinomų muziejuje. Siaubo istorijos. Siaubas. 2024, Liepa
Anonim
Image
Image
Dalių surinkimas ir medžio darbai
Dalių surinkimas ir medžio darbai

Aš dažnai suprantu, kad perku daiktus, kurių net neįsivaizduoju, ką daryti. Šis projektas yra nupirktas žiedas, kuriame yra 12x WS2812b šviesos diodai. Aš to neplanavau, bet internete atrodė šauniai, todėl įkišau vieną į krepšelį, kurį laiką žaidžiau su juo, kai jis atvyko, ir tada viską pamiršau.

Po kurio laiko galvojau padaryti laikrodį ir prisiminiau, kad jis sėdėjo ir nieko nedarė. Aš galvojau nusipirkti antrą žiedą su 60 šviesos diodų, kad būtų sudarytos minutės, bet tada pradėjau galvoti, kaip mes / aš linkę žiūrėti į laiką ir suapvalinti jį 5 minučių tikslumu.

Turėdamas tai savo, aš nusprendžiau su savo 12 LED žiedu pasidaryti laikrodį. Vieną sekundę vienu metu rodomas 1 šviesos diodas, rodantis valandą (mėlynas šviesos diodas) ir tada minutes (raudonas šviesos diodas) suapvalintas žemyn

1 žingsnis: Surinkite dalis ir medienos darbus

Dalių surinkimas ir medžio darbai
Dalių surinkimas ir medžio darbai
Dalių surinkimas ir medžio darbai
Dalių surinkimas ir medžio darbai
Dalių surinkimas ir medžio darbai
Dalių surinkimas ir medžio darbai

Man labai pasisekė, kad vieną dieną atvykau į darbą ir pastebėjau padėklą. Šis padėklas man įstrigo, nes neatrodė kaip jūsų standartinis malūno padėklas. Jis buvo švarus, termiškai apdorotas ir neįprastai kietas ąžuolas.

Šis projektas pagamintas iš vieno iš to padėklo dalių. (Prieš parsinešdamas namo paklausiau viršininko)

Taip pat naudojamas:

  • 12 pikselių ws2812b LED žiedas
  • „Real Time Clock“(RTC) modulis (naudoju DS3231 su I2C)
  • Suderinamas su „Arduino Nano v3.0“
  • Akrilo lakštas (5 mm)
  • Spalvota viela

Įrankiai

  • Elektrinis grąžtas
  • Maršrutizatorius
  • Reguliuojamas plokščias medinis antgalis
  • Galingas šlifuoklis
  • Rankinis pjūklas
  • Lituoklis
  • Karštas klijų pistoletas
  • Smėlio popierius
  • Danijos aliejus

Šlifavimas

Aš pradėjau naudoti elektrinį šlifuoklį, kad ištiesčiau ir išvalyčiau medžio bloką, kol visos pusės bus švarios ir lygios. Kai kuriuos trūkumus palikau matomus ir jie nėra visiškai tiesūs ar kvadratiniai, nes man patinka matyti dalį medžio istorijos.

Skylių žymėjimas ir pjovimas

Po šlifavimo pasirinkau tą pusę, kurios norėjau laikrodžio veidą, ir pažymėjau centrą, piešdamas linijas iš kiekvieno kampo. Aš nustatiau reguliuojamą medžio gabalėlį šiek tiek didesnį nei LED žiedas, kad būtų akrilo lentyna, kurioje būtų galima sėdėti ir supjaustyti apie 5 mm gylio, tada reguliuosiu pjaustytuvą šiek tiek daugiau nei LED žiedas ir nukirsiu dar 5 mm.

Maršrutas ir kabelių angos

Naudodamas maršrutizatorių su 12 mm antgaliu, aš išvedžiau įdubą bloko apačioje, kad paslėpčiau RTC ir „Arduino“. Jis yra apie 15 mm gylio ir ne mažiau kaip 5 mm nuo bet kurio krašto. Aš pažymėjau centrą (ish) iš apačios ir išgręžiau, naudodamas 10 mm antgalį vos per pusę kelio, kad būtų galima prijungti LED laidus. Tada, naudojant 5 mm antgalį, aš išgręžiau iš LED įdubos centro, kad pasiekčiau 10 mm skylę iš apačios.

Dar viena 4 mm skylė gale, kad būtų galima įvesti maitinimą, ir naudojant mažesnį maršrutizatoriaus antgalį, kad būtų sukurtas kanalas laidams, esantiems šviesos diodo žiedo gale, ir medienos darbai yra baigti.

2 žingsnis: Akrilo apskritimai

Akrilo apskritimai
Akrilo apskritimai
Akrilo apskritimai
Akrilo apskritimai
Akrilo apskritimai
Akrilo apskritimai

Norėdami pagaminti akrilą laikrodžio priekiui, nurodžiau nupjauti kvadratinį gabalėlį, kuris buvo tik didesnis už skylę, kurią jis turėjo užpildyti. Tada naudodamas elektrinį šlifuoklį pradėjau šalinti kampus, kol jis buvo maždaug tinkamos formos ir dydžio. Tada perėjau prie rankinio šlifavimo, kad neperšaudyčiau ir turėčiau pradėti iš naujo.

Tai buvo lėtas ir varginantis bandymų ir klaidų procesas, kol jis buvo tinkamas, bet manau, kad galutinis rezultatas buvo to vertas. Baigiau naudodama labai smulkų popierių, kad akrilo priekis atrodytų matinis.

3 žingsnis: litavimas

Litavimas
Litavimas
Litavimas
Litavimas
Litavimas
Litavimas
Litavimas
Litavimas

Šia proga man patinka naudoti laidų spalvų sistemą:

  • Raudona galiai (5v)
  • Balta žemei
  • Geltona, skirta duomenims
  • Žalia laikrodžiui

Aš pradėjau lituoti 3 reikalingus laidus ant LED žiedo, naudodamas aukščiau esančią sistemą ir stumdamas laidus žemyn. Kadangi jis neturėtų būti veikiamas tikro priverstinio poveikio, žiedą laikiau vietoje šiek tiek karštų klijų. (Gali tekti kada nors pakeisti) ir aplink kraštą sumontuokite tik šiek tiek karštų klijų.

Tada aš prijungiau 4 laidus prie RTC, naudodamas aukščiau pateiktą sistemą. Kad viskas būtų šiek tiek tvarkingiau, nusprendžiau pasisemti energijos RTC iš „Arduino“. Tada prijungė viską prie „Arduino“ir litavo 1 laidą, skirtą elektros energijai, o kitą - įžeminimui prie „Arduino“.

RTC

  • SCL (laikrodis) į analoginį kaištį 5
  • SDA (duomenys) į analoginį kištuką 4
  • VCC iki 5V
  • GND į bet kurį „Arduino“GND

LED žiedas

Pereikite prie skaitmeninio kaiščio 6

Turėjau seną USB kabelį, todėl nusprendžiau jį naudoti laikrodžiui maitinti. Nupjoviau galą, kuris paprastai būtų prijungtas prie kažko, ir išstūmiau per skylę gale. Tada nulupkite ir nudažykite galus prieš lituojant VCC prie „Arduino“, o šviesos diodų žiedą - į teigiamą pusę, o žemę - nuo „Arduino“ir LED į žemę. Vėliau šiek tiek susitraukiau ir atrodė gerai, Karštas klijų pistoletas grįžo, kad viską laikytų. Aš nusprendžiau palikti „Arduino“pakankamai žaisdamas, kad ateityje galėčiau pasiekti USB prievadą, kad galėčiau jį užprogramuoti, bet ne tiek, kad galėčiau iškristi.

4 žingsnis: Kodas

Dabar turėtumėte turėti galimybę įkelti šį kodą į „Arduino“.

Jei RTC neveikia, šis kodas nustatys laiką pagal kodo sudarymo laiką, todėl būtinai paspauskite įkėlimo mygtuką ir nepatikrinkite.

pakaitomis tai taip pat puikiai tinka nustatant laiką.

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

Didžiąją dalį šio kodo pasiskolinau iš „Adafruit NeoPixel“bibliotekos, o dalį iš RTC bibliotekos, kurią radau, o dalį sukūriau pati.

// įtraukite bibliotekos kodą: #include

#įtraukti

#įtraukti

// apibrėžti smeigtukus

#define PIN 6

#define BRIGHTNESS 20 // nustatyti maksimalų ryškumą

#apibrėžti r 5

#define g 5

#define b 5

RTC_DS3231 rtc; // Nustatykite laikrodžio objektą

Adafruit_NeoPixel strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // juostelės objektas

void setup () {

Wire.begin (); // Pradėti I2C

rtc.begin (); // pradėti laikrodį

Serial.begin (9600);

// nustatyti pinmodes

pinMode (PIN, OUTPUT);

if (rtc.lostPower ()) {

Serial.println ("RTC dingo energija, leidžia nustatyti laiką!");

// kita eilutė nustato RTC datą ir laiką, kai buvo sudarytas šis eskizas

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

// Ši eilutė nustato RTC su konkrečia data ir laiku, pavyzdžiui, nustatyti

// 2014 m. Sausio 21 d. 3 val. Skambintumėte:

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

}

strip.begin ();

strip.show (); // Inicijuokite visus taškus į „išjungtą“

DateTime theTime = rtc.now (); // atsižvelgia į DST

baitas secondval = theTime.second (); // gauti sekundes

baitas minuteval = theTime.minute (); // gauti minutes

int hourval = theTime.hour ();

taškas (juostelė. Spalva (0, g, 0), 50);

}

void loop () {

// gauk laiko

DateTime theTime = rtc.now (); // atsižvelgia į DST

int minuteval = theTime.minute (); // gauti minutes

int hourval = theTime.hour (); // gauti valandas

int secondval = theTime.second ();

jei (0 minučių minutė) {

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

strip.show ();}

kitaip, jei (minutės <= 9) {

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

strip.show ();}

kitaip, jei (minutės <= 14) {

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

strip.show ();}

kitaip, jei (minutės <= 19) {

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

strip.show ();}

kitaip, jei (minutės <= 24) {

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

strip.show ();}

kitaip, jei (minutės <= 29) {

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

strip.show ();}

kitaip, jei (minutės <= 34) {

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

strip.show ();}

kitaip, jei (minutės <= 39) {

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

strip.show ();}

kitaip, jei (minutės <= 44) {

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

strip.show ();}

kitaip, jei (minutės <= 49) {

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

strip.show ();}

kitaip, jei (minutės <= 54) {

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

strip.show ();}

kitaip, jei (minutės <= 59) {

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

strip.show ();}

vėlavimas (1000);

už (int i = 0; i <12; i ++) {

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

strip.show ();

}

if (valandos == 0) {

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

strip.show ();}

kitaip jei (valandos == 1) {

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

strip.show ();}

kitaip jei (valandos == 2) {

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

strip.show ();}

kitaip jei (valandos == 3) {

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

strip.show ();}

kitaip jei (valandos == 4) {

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

strip.show ();}

kitaip jei (valandos == 5) {

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

strip.show ();}

kitaip jei (valandos == 6) {

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

strip.show ();}

kitaip jei (valandos == 7) {

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

strip.show ();}

kitaip jei (valandos == 8) {

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

strip.show ();}

kitaip jei (valandos == 9) {

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

strip.show ();}

kitaip jei (valandos == 10) {

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

strip.show ();}

kitaip jei (valandos == 11) {

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

strip.show ();}

kitaip jei (valandos == 12) {

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

strip.show ();}

kitaip jei (valandos == 13) {

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

strip.show ();}

kitaip jei (valandos == 14) {

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

strip.show ();}

kitaip jei (valandos == 15) {

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

strip.show ();}

kitaip, jei (valandos == 16) {

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

strip.show ();}

kitaip jei (valandos == 17) {

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

strip.show ();}

kitaip jei (valandos == 18) {

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

strip.show ();}

kitaip jei (valandos == 19) {

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

strip.show ();}

kitaip jei (valandos == 20) {

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

strip.show ();}

kitaip jei (valandos == 21) {

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

strip.show ();}

kitaip jei (valandos == 22) {

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

strip.show ();}

kitaip jei (valandos == 23) {

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

strip.show ();}

vėlavimas (1000);

už (int i = 0; i <12; i ++) {

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

strip.show ();

}

// serijiniam derinimui

Serijinis atspaudas (valandinis, DEC);

Serial.print (':');

Serial.print (minuteval, DEC);

Serial.print (':');

Serial.println (antrasis, DEC);

}

tuščias taškas (uint32_t c, uint8_t palaukti) {

už (int j = 0; j <3; j ++) {

už (int i = 0; i <12; i ++) {

strip.setPixelColor (i, c);

strip.show ();

atidėti (laukti);

už (int i = 0; i <12; i ++) {

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

strip.show ();}

}

}

}

5 žingsnis: Danijos aliejus

Danijos aliejus
Danijos aliejus
Danijos aliejus
Danijos aliejus
Danijos aliejus
Danijos aliejus
Danijos aliejus
Danijos aliejus

Paskutinis ir neprivalomas žingsnis yra medienos tepimas danų aliejumi. Man labai patinka, kaip jis išryškina grūdus, be to, jis šiek tiek apsaugo nuo dėmių ir drėgmės. Taigi labai rekomenduoju.

Galite jį tepti, arba aš tiesiog naudoju seną šluostę.

Dabar belieka tik prijungti ir mėgautis.

Rekomenduojamas: