Sisällysluettelo:
- Vaihe 1: Osien ja puutöiden kokoaminen
- Vaihe 2: Akryyliympyrät
- Vaihe 3: Juotos
- Vaihe 4: Koodi
- Vaihe 5: Tanskalainen öljy
Video: Ish -kello: 5 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Usein huomaan ostavani asioita, joita minulla ei ole aavistustakaan, mitä teen. Tämä projekti on seurausta ostetusta renkaasta, jossa on 12x WS2812b -merkkivaloa. Minulla ei ollut suunnitelmia sitä varten, mutta se näytti siistiltä verkossa, joten jäin yhden ostoskoriini, pelasin sillä jonkin aikaa sen saapuessa ja unohdin sitten kaiken.
Hetken kuluttua ajattelin tehdä kellon ja muistin, että se istui siellä tekemättä mitään. Ajattelin ostaa toisen renkaan, jossa oli 60 LED -valoa minuuttien muodostamiseksi, mutta sitten aloin miettiä, miten me / minulla on tapana katsoa aikaa ja pyöristää se lähimpään 5 minuuttiin.
Tämän kanssa omassani lähdin 12 LED -renkaan kanssa tekemään ish -kellon. Se näyttää 1 LED -valon kerrallaan 1 sekunnin ajan osoittamaan tunnit (sininen LED) ja sitten minuutit (punainen LED) pyöristettynä alaspäin
Vaihe 1: Osien ja puutöiden kokoaminen
Olin onnekas, kun saavuin eräänä päivänä töihin ja löysin lavan. Tämä lava tarttui minuun, koska se ei näyttänyt tavalliselta myllylavan ajolta. Se oli puhdasta, lämpökäsiteltyä ja epätavallisen kiinteää tammea.
Tämä projekti on tehty yhdestä kyseisen lavan palasista. (Kysyin pomolta ennen kuin vein sen kotiin)
Käytetään myös:
- 12 pikselin ws2812b LED -rengas
- Real Time Clock (RTC) -moduuli (käytän DS3231 ja I2C)
- Arduino Nano v3.0 -yhteensopiva
- Akryylilevy (5mm)
- Värillinen lanka
Työkalut
- Porakone
- Reititin
- Säädettävä litteä puukärki
- Sähköhiomakone
- Käsisaha
- Juotin
- Kuuma liimapistooli
- Hiekkapaperi
- Tanskalainen öljy
Hionta
Aloitin suorittamalla ja puhdistamalla puupalkin sähköhiomakoneella, kunnes kaikki sivut ovat puhtaat ja sileät. Jätin joitakin epätäydellisyyksiä näkyviin eikä se ole täysin suora tai neliömäinen, koska haluan nähdä osan puun historiasta.
Reikien merkitseminen ja leikkaaminen
Hionnan jälkeen valitsin sen sivun, jonka halusin kellon etupuolen, ja merkitsin keskipisteen piirtämällä viivoja jokaisesta kulmasta. Asetin säädettävän puun hieman hiukan suuremmaksi kuin led -rengas, joten akryylille olisi hylly istua ja leikata noin 5 mm: n syvyyteen ja sitten säätää leikkuria hieman yli LED -renkaan ja leikata vielä noin 5 mm.
Reititys ja kaapelireiät
Käyttäen reititintäni 12 mm: n bitin kanssa, reititin lohkon pohjassa olevan syvennyksen RTC: n ja Arduinon piilottamiseksi. Se on noin 15 mm syvä ja vähintään 5 mm mistä tahansa reunasta. Merkitsin keskikohdan (ish) alhaalta ja porasin ylös 10 mm: n bitillä juuri puolivälissä LED -johtojen sallimiseksi. Sitten porasin 5 mm: n terän avulla LED -syvennyksen keskeltä 10 mm: n reiän pohjasta.
Vielä yksi 4 mm reikä takana virtaa varten ja käyttämällä pienempää jyrsinterää kanavan luomiseksi LED -renkaan takana oleville johtimille ja puutyö on tehty.
Vaihe 2: Akryyliympyrät
Kellon etuosan akryylin valmistamiseksi sanoin, että leikataan neliömäinen kappale, joka oli vain suurempi kuin reikä, jonka sen täytyi täyttää. Sitten aloitin sähköhiomakoneella ja aloitin kulmien poistamisen, kunnes se oli suunnilleen oikean muotoinen ja kokoinen. Sitten siirryin käsin hiontaan, joten en ampunut liikaa ja minun on aloitettava alusta.
Se oli hidas ja tylsä yritys- ja erehdysprosessi, kunnes se sopi oikein, mutta mielestäni lopputulos oli sen arvoinen. Lopetin käyttämällä erittäin hienojakoista paperia antamaan akryylin etupuolelle himmeän ilmeen.
Vaihe 3: Juotos
Käytän mielelläni värijärjestelmää johtoihini tässä yhteydessä:
- Punainen virralle (5v)
- Valkoinen maahan
- Keltainen tiedoille
- Vihreä kellolle
Aloitin juottamalla 3 tarvittavaa johtoa LED -renkaaseen yllä olevan järjestelmän avulla ja työntämällä johdot reiästä alaspäin. Koska se ei saisi altistua todellisille pakotuksille, käytin pientä kuumaa liimaa pitämään renkaan paikallaan. (Minun on ehkä vaihdettava se joskus) ja asenna akryyli vain hieman kuumalla liimalla reunan ympärille.
Juotin sitten 4 johtoa RTC: hen yllä olevan järjestelmän avulla. Jotta asiat olisivat hieman siistimpiä, päätin saada virtaa RTC: lle Arduinosta. Sitten liitettiin kaikki Arduinoon ja juotettiin yksi johto virtalähteeksi ja toinen maadoitukseen Arduinoon.
RTC
- SCL (kello) analogiseen nastaan 5
- SDA (data) analogiseen nastaan 4
- VCC - 5V
- GND mihin tahansa Arduinon GND: hen
LED -rengas
Din to Digital Pin 6
Minulla oli vanha USB -kaapeli roikkumassa, joten päätin käyttää sitä kellon virransyöttöön. Leikkasin pois pään, joka normaalisti yhdistyisi johonkin, ja työnsin sen takana olevan reiän läpi. Sitten irrotettiin ja värjättiin päät ennen VCC: n juottamista Arduinolle ja LED -rengas positiiviselle puolelle ja maa Arduinolta ja LED maadoitukselle. Kutistuin vähän myöhemmin ja se näytti hyvältä, Kuuma liimapistooli tuli takaisin pitämään kaiken painettuna. Päätin jättää Arduinon tarpeeksi leikkiin, jotta voin käyttää USB -porttia ohjelmoida sitä tulevaisuudessa, mutta en niin paljon, että voisin pudota.
Vaihe 4: Koodi
Sinun pitäisi nyt pystyä lataamaan tämä koodi Arduinolle.
Jos RTC ei ole käynnissä, tämä koodi asettaa ajan koodin laatimisen perusteella, joten paina vain latauspainiketta äläkä vahvista.
Vaihtoehtoisesti tämä toimii myös todella hyvin ajan asettamisessa.
www.instructables.com/id/Setting-the-DS130…
Suuren osan tästä koodista lainasin Adafruit NeoPixel -kirjastosta ja osan löytämästäni RTC -kirjastosta, ja osan keksin itse.
// sisällytä kirjastokoodi: #include
#sisältää
#sisältää
// määrittele nastat
#määritä PIN 6
#define BRIGHTNESS 20 // aseta kirkkaus
#määrittele r 5
#määrittele g 5
#määrittele b 5
RTC_DS3231 rtc; // Luo kello -objekti
Adafruit_NeoPixel strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // nauhoita esine
void setup () {
Wire.begin (); // Aloita I2C
rtc.begin (); // aloita kello
Sarja.alku (9600);
// asettaa pinmodeja
pinMode (PIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC katkaisi virran, asettaa ajan!");
// seuraava rivi asettaa RTC: lle päivämäärän ja kellonajan, jolloin tämä luonnos laadittiin
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));
// Tämä rivi asettaa RTC: lle nimenomaisen päivämäärän ja kellonajan, esimerkiksi asetettavaksi
// 21. tammikuuta 2014 klo 3, soitat:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Alusta kaikki pikselit pois päältä
DateTime theTime = rtc.now (); // ottaa huomioon DST
tavu secondval = theTime.second (); // saat sekunteja
tavu minuteval = theTime.minute (); // saada minuutteja
int hourval = theTime.hour ();
piste (nauha. väri (0, g, 0), 50);
}
void loop () {
// saa aikaa
DateTime theTime = rtc.now (); // ottaa huomioon DST
int minuteval = theTime.minute (); // saada minuutteja
int hourval = theTime.hour (); // saat tunteja
int secondval = theTime.second ();
jos (minuutti 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
muuten jos (minuutti <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
viive (1000);
(int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
jos (tunti == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
muuten jos (tunti == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
muuten jos (tunti == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
muuten jos (tunti == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
muuten jos (tunti == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
muuten jos (tunti == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
muuten jos (tunti == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
muuten jos (tunti == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
muuten jos (tunti == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
muuten jos (tunti == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
muuten jos (tunti == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
muuten jos (tunti == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
muuten jos (tunti == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
muuten jos (tunti == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
muuten jos (tunti == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
muuten jos (tunti == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
muuten jos (tunti == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
muuten jos (tunti == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
muuten jos (tunti == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
muuten jos (tunti == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
muuten jos (tunti == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
muuten jos (tunti == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
muuten jos (tunti == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
muuten jos (tunti == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
viive (1000);
(int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// sarjan virheenkorjausta varten
Sarjajälki (tunti, DEC);
Serial.print (':');
Serial.print (minuutti, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
mitätön piste (uint32_t c, uint8_t odota) {
(int j = 0; j <3; j ++) {
(int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
viive (odota);
(int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Vaihe 5: Tanskalainen öljy
Viimeinen ja valinnainen vaihe on levittää tanskalaista öljyä puuhun. Pidän todella siitä, miten se tuo viljan esiin ja tarjoaa jonkin verran suojaa tahroilta ja kosteudelta. Joten suosittelen sitä lämpimästi.
Voit harjata sen päälle tai pyyhin sen vain vanhalla liinalla.
Nyt ei ole muuta kuin kytkeä se ja nauttia.
Suositeltava:
Kupla -herätyskello tekee heräämisestä hauskaa (ish): 7 vaihetta (kuvilla)
Kupla -herätyskello tekee heräämisestä hauskaa (ish): Herääminen surisevalle herätyskellolle on paskaa. Olen yksi niistä ihmisistä, jotka eivät halua herätä ennen kuin aurinko paistaa (tai on ollut poissa monta tuntia). Mikä olisikaan parempi tapa tehdä heräämisestä hauskaa kuin kuplat juhlia sängyssä! Käyttämällä arduinoa ja
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
Novel (-ish) Writing AI: 5 vaihetta
Novel (-ish) Writing AI: National Novel Writing Month, AI & Yritän kirjoittaa romaanin yhdessä marraskuun 30 päivän aikana. Toivotamme onnea, me todennäköisesti tarvitsemme sitä
LittleBits Mad Libs (-ish): 7 vaihetta (kuvilla)
LittleBits Mad Libs (-ish): Valmis ottamaan oppilaasi mukaan haasteeseen, joka yhdistää NGSS (Next Generation Science Standards) -tekniikkakäytännöt (ja enemmän, jos lisäät muita rajoituksia!)? Labs, Lego WeDo, LEGO
Sisäisen (ish) Bluetoothin lisääminen kannettavaan tietokoneeseen: 4 vaihetta
Sisäisen (ish) Bluetoothin lisääminen kannettavaan tietokoneeseen: Bluetoothin täyttäminen kannettavaan tietokoneeseen, jota ei todellakaan ollut tarkoitettu siihen ilman mitään ärsyttävää juotosta