Sommario:

Orologio Ish: 5 Passi (con Immagini)
Orologio Ish: 5 Passi (con Immagini)

Video: Orologio Ish: 5 Passi (con Immagini)

Video: Orologio Ish: 5 Passi (con Immagini)
Video: Guarda questo video PRIMA di COMPRARE il TUO PRIMO OROLOGIO DI LUSSO! | 10 ERRORI da EVITARE 2024, Novembre
Anonim
Image
Image
Raccolta di parti e lavorazione del legno
Raccolta di parti e lavorazione del legno

Spesso mi ritrovo a comprare cose di cui non ho idea di cosa farò. Questo progetto è il risultato dell'acquisto di un anello con 12 LED WS2812b accesi. Non avevo piani per questo, ma sembrava fantastico online, quindi ne ho messo uno nel carrello, ci ho giocato per un po' quando è arrivato e poi l'ho dimenticato.

Qualche tempo dopo stavo pensando di fare un orologio e mi sono ricordato che era seduto lì senza fare nulla. Stavo pensando di acquistare un secondo anello con 60 LED accesi per recuperare i minuti, ma poi ho iniziato a pensare a come tendiamo/io tendiamo a guardare l'ora e arrotondarla ai 5 minuti più vicini.

Con questo nel mio ho iniziato con il mio anello a 12 LED per creare l'orologio ish. Visualizza 1 LED alla volta per 1 secondo, per indicare l'ora (LED Blu) e poi i minuti (LED Rosso) arrotondati per difetto

Passaggio 1: raccolta di parti e lavorazione del legno

Raccolta di parti e lavorazione del legno
Raccolta di parti e lavorazione del legno
Raccolta di parti e lavorazione del legno
Raccolta di parti e lavorazione del legno
Raccolta di parti e lavorazione del legno
Raccolta di parti e lavorazione del legno

Sono stato molto fortunato ad arrivare un giorno al lavoro e ad individuare un pallet. Questo pallet mi ha colpito perché non sembrava il tuo standard, il normale pallet del mulino. Era una quercia pulita, trattata termicamente e insolitamente solida.

Questo progetto è fatto da uno dei pezzi di quel pallet. (Ho chiesto al capo prima di portarlo a casa)

Utilizzato anche:

  • Anello LED ws2812b da 12 pixel
  • Modulo Real Time Clock (RTC) (sto usando un DS3231 con I2C)
  • Compatibile con Arduino Nano v3.0
  • Foglio acrilico (5 mm)
  • Filo colorato

Utensili

  • Trapano elettrico
  • Router
  • Punta per legno piatta regolabile
  • Levigatrice elettrica
  • Sega a mano
  • Saldatore
  • Pistola per colla a caldo
  • carta vetrata
  • Olio Danese

levigatura

Ho iniziato usando la levigatrice elettrica per raddrizzare e pulire il blocco di legno fino a quando tutti i lati erano puliti e lisci. Ho lasciato alcune imperfezioni visibili e non è perfettamente dritto o quadrato perché mi piace poter vedere un po' della storia nel legno.

Marcatura e taglio dei fori

Dopo la levigatura ho scelto il lato in cui volevo il quadrante dell'orologio e ho segnato il centro disegnando linee da ogni angolo. Ho impostato la punta di legno regolabile un po' più grande dell'anello LED in modo che ci fosse una mensola per l'acrilico su cui sedersi e tagliare a circa 5 mm di profondità, quindi ho regolato la taglierina appena sopra la dimensione dell'anello LED e ho tagliato altri 5 mm circa.

Instradamento e fori per cavi

Usando il mio router con la punta da 12 mm ho instradato una rientranza nella parte inferiore del blocco per nascondere l'RTC e Arduino. È profondo circa 15 mm e non meno di 5 mm da qualsiasi bordo. Ho segnato il centro (ish) dal basso e ho perforato usando una punta da 10 mm appena oltre la metà per consentire i cavi LED. Quindi, utilizzando una punta da 5 mm, ho forato dal centro dell'incavo del LED per incontrare il foro da 10 mm dal basso.

Un altro foro da 4 mm sul retro per l'alimentazione e l'utilizzo di una punta del router più piccola per creare un canale per i fili sul retro dell'anello LED e il lavoro in legno è terminato.

Passaggio 2: cerchi acrilici

Cerchi acrilici
Cerchi acrilici
Cerchi in acrilico
Cerchi in acrilico
Cerchi in acrilico
Cerchi in acrilico

Per realizzare l'acrilico per la parte anteriore dell'orologio ho affermato di tagliare un pezzo quadrato che fosse appena più grande del buco che doveva riempire. Quindi, usando la levigatrice elettrica per iniziare, ho iniziato a rimuovere gli angoli fino a ottenere la forma e le dimensioni giuste. Poi sono passato alla levigatura a mano in modo da non esagerare con le riprese e dover ricominciare da capo.

È stato un processo lento e noioso di tentativi ed errori fino a quando non si è adattato perfettamente, ma penso che il risultato finale ne sia valsa la pena. Ho finito usando una carta a grana molto fine per dare alla parte anteriore dell'acrilico un aspetto smerigliato.

Passaggio 3: saldatura

saldatura
saldatura
saldatura
saldatura
saldatura
saldatura
saldatura
saldatura

Mi piace usare un sistema di colori per i miei fili in questa occasione scelgo:

  • Rosso per Potenza (5v)
  • Bianco per terra
  • Giallo per i dati
  • Verde per l'orologio

Ho iniziato saldando i 3 fili necessari sull'anello LED utilizzando il sistema sopra e spingendo i fili nel foro. Dato che non dovrebbe essere esposto a nessuna forzatura reale, ho usato un po' di colla a caldo per tenere l'anello in posizione. (Potrei aver bisogno di cambiarlo qualche volta) e installare l'acrilico con solo un po' di colla a caldo attorno al bordo.

Ho quindi saldato i 4 fili sull'RTC utilizzando il sistema sopra. Per mantenere le cose un po' più ordinate ho deciso di prelevare energia per l'RTC dall'Arduino. Quindi ha collegato tutto all'Arduino e ha saldato 1 filo per l'alimentazione e un altro per la massa all'Arduino.

RTC

  • SCL (orologio) su pin analogico 5
  • SDA (dati) a pin analogico 4
  • VCC a 5V
  • GND a qualsiasi GND su Arduino

Anello LED

Din al pin digitale 6

Avevo un vecchio cavo USB in giro, quindi ho deciso di usarlo per alimentare l'orologio. Ho tagliato l'estremità che normalmente si connetterebbe a qualcosa e l'ho spinta attraverso il foro nella parte posteriore. Quindi spogliato e tinto le estremità prima di saldare il VCC all'Arduino e l'anello LED al lato positivo e il Ground dall'Arduino e il LED a Ground. Ho un po' di termoretrazione più tardi e sembrava buono, La pistola per colla a caldo è tornata fuori per tenere tutto fermo. Ho deciso di lasciare l'Arduino con abbastanza gioco da poter accedere alla porta USB per programmarlo in futuro, ma non così tanto da poter cadere.

Passaggio 4: il codice

Ora dovresti essere in grado di caricare questo codice su Arduino.

Se l'RTC non è in esecuzione, questo codice imposterà l'ora in base a quando il codice è stato compilato, quindi assicurati di premere semplicemente il pulsante di caricamento e non di verificare.

alternativamente questo funziona anche molto bene per impostare l'ora.

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

Gran parte di questo codice l'ho preso in prestito dalla libreria Adafruit NeoPixel e parte da una libreria RTC che ho trovato e alcuni che ho creato da solo.

// includi il codice della libreria: #include

#includere

#includere

// definisce i pin

#definisci PIN 6

#define BRIGHTNESS 20 // imposta la luminosità massima

#definire r 5

#definire g 5

#definire b 5

RTC_DS3231 rtc; // Stabilire l'oggetto orologio

Striscia Adafruit_NeoPixel = Adafruit_NeoPixel(12, PIN, NEO_GRB + NEO_KHZ800); // striscia oggetto

void setup() {

Wire.begin(); // Inizia I2C

rtc.begin(); // inizia l'orologio

Serial.begin(9600);

// imposta le modalità pin

pinMode(PIN, USCITA);

if (rtc.lostPower()) {

Serial.println("RTC ha perso potenza, impostiamo l'ora!");

// la riga seguente imposta l'RTC sulla data e l'ora in cui questo sketch è stato compilato

rtc.adjust(DateTime(F(_DATE_), F(_TIME_)));

// Questa riga imposta l'RTC con una data e un'ora esplicite, ad esempio per impostare

// 21 gennaio 2014 alle 3 del mattino chiameresti:

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

}

strip.begin();

strip.show(); // Inizializza tutti i pixel su 'off'

DateTime theTime = rtc.now(); // tiene conto dell'ora legale

byte secondval = theTime.second(); // ottieni secondi

byte minuteval = theTime.minute(); // ottieni minuti

int hourval = theTime.hour();

punto(striscia. Colore(0, g, 0), 50);

}

ciclo vuoto () {

// prendi tempo

DateTime theTime = rtc.now(); // tiene conto dell'ora legale

int minuteval = theTime.minute(); // ottieni minuti

int hourval = theTime.hour(); // prendi le ore

int secondval = theTime.second();

if (minutovalore 0) {

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

striscia.mostra();}

else if (minuto <= 9) {

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

striscia.mostra();}

else if (minuto <= 14) {

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

striscia.mostra();}

else if (minuto <= 19) {

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

striscia.mostra();}

else if (minuto <= 24) {

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

striscia.mostra();}

else if (minuto <= 29) {

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

striscia.mostra();}

else if (minuto <= 34) {

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

striscia.mostra();}

else if (minuto <= 39) {

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

striscia.mostra();}

else if (minuto <= 44) {

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

striscia.mostra();}

else if (minuto <= 49) {

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

striscia.mostra();}

else if (minuto <= 54) {

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

striscia.mostra();}

else if (minuto <=59) {

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

striscia.mostra();}

ritardo(1000);

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

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

strip.show();

}

if (valore orario == 0) {

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

striscia.mostra();}

else if (valore orario == 1) {

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

striscia.mostra();}

else if (valore orario == 2) {

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

striscia.mostra();}

else if (valore orario == 3) {

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

striscia.mostra();}

else if (valore orario == 4) {

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

striscia.mostra();}

else if (valore orario == 5) {

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

striscia.mostra();}

else if (valore orario == 6) {

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

striscia.mostra();}

else if (valore orario == 7) {

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

striscia.mostra();}

else if (valore orario == 8) {

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

striscia.mostra();}

else if (valore orario == 9) {

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

striscia.mostra();}

else if (valore orario == 10) {

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

striscia.mostra();}

else if (valore orario == 11) {

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

striscia.mostra();}

else if (valore orario == 12) {

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

striscia.mostra();}

else if (valore orario == 13) {

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

striscia.mostra();}

else if (valore orario == 14) {

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

striscia.mostra();}

else if (valore orario == 15) {

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

striscia.mostra();}

else if (valore orario == 16) {

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

striscia.mostra();}

else if (valore orario == 17) {

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

striscia.mostra();}

else if (valore orario == 18) {

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

striscia.mostra();}

else if (valore orario == 19) {

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

striscia.mostra();}

else if (valore orario == 20) {

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

striscia.mostra();}

else if (valore orario == 21) {

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

striscia.mostra();}

else if (valore orario == 22) {

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

striscia.mostra();}

else if (valore orario == 23) {

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

striscia.mostra();}

ritardo(1000);

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

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

strip.show();

}

// per il debug seriale

Serial.print(valoreora, DEC);

Serial.print(':');

Serial.print(minuteval, DEC);

Serial.print(':');

Serial.println(secondval, DEC);

}

void punto(uint32_t c, uint8_t aspetta) {

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

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

strip.setPixelColor(i, c);

strip.show();

ritardo (attesa);

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

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

striscia.mostra();}

}

}

}

Passaggio 5: olio danese

Olio Danese
Olio Danese
Olio Danese
Olio Danese
Olio Danese
Olio Danese
Olio Danese
Olio Danese

Il passaggio finale e facoltativo consiste nell'applicare dell'olio danese al legno. Mi piace molto come mette in risalto la grana e offre una certa protezione da macchie e umidità. Quindi lo consiglio vivamente.

Puoi spazzolarlo o semplicemente uso un vecchio panno per pulirlo.

Ora non resta che collegarlo e divertirti.

Consigliato: