Taula de continguts:
- Pas 1: recollida de peces i treball de fusta
- Pas 2: cercles acrílics
- Pas 3: soldar
- Pas 4: el codi
- Pas 5: Oli danès
Vídeo: Ish Clock: 5 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Sovint em trobo comprant coses que no tinc ni idea de què faré. Aquest projecte és el resultat de la compra d’un anell que té 12 LEDs WS2812b encesos. No tenia cap pla, però semblava genial en línia, de manera que en vaig ficar un al carretó, vaig jugar-hi una estona quan va arribar i després ho vaig oblidar tot.
Una estona després vaig pensar en fer un rellotge i vaig recordar que estava assegut allà sense fer res. Pensava en comprar un segon anell amb 60 LEDs encès per compensar els minuts, però després vaig començar a pensar com tendim a mirar el temps i arrodonir-lo als 5 minuts més propers.
Amb això a la meva, vaig sortir amb el meu anell de 12 LED per fer el rellotge ish. Mostra 1 LED a la vegada durant 1 segon, per indicar l’hora (LED blau) i després els minuts (LED vermell) arrodonits cap avall
Pas 1: recollida de peces i treball de fusta
Vaig tenir la gran sort d’arribar a la feina un dia i veure un palet. Aquest palet em va quedar atrapat, ja que no semblava el vostre palet de fàbrica estàndard. Era de roure net, tractat tèrmicament i amb una massa inusualment sòlida.
Aquest projecte està fet a partir d’una de les peces d’aquest palet. (Li vaig preguntar al cap abans de portar-me'l a casa)
També s'utilitza:
- Anell LED de 12 píxels ws2812b
- Mòdul de rellotge en temps real (RTC) (estic fent servir un DS3231 amb I2C)
- Compatible amb Arduino Nano v3.0
- Full acrílic (5 mm)
- Filferro de colors
Eines
- Trepant elèctric
- Encaminador
- Punta de fusta plana ajustable
- Polidora de potència
- Serra de mà
- Soldador
- Pistola de cola calenta
- Paper de sorra
- Oli danès
Ponçat
Vaig començar fent servir la polidora per redreçar i netejar el bloc de fusta fins que tots els costats estiguessin nets i llisos. Vaig deixar algunes imperfeccions visibles i no són perfectament rectes ni quadrades, ja que m'agrada poder veure part de la història al bosc.
Marcant i tallant els forats
Després de polir, vaig triar el costat que volia la cara del rellotge i vaig marcar el centre traçant línies des de cada cantonada. Vaig ajustar la mica de fusta ajustable una mica més gran que l’anell LED, de manera que hi hauria una prestatgeria perquè l’acrílic s’assegués i talla uns 5 mm de profunditat i, a continuació, ajustem el tallador una mica més de la mida de l’anell LED i en vaig reduir uns 5 mm més o menys.
Recorregut i forats de cables
Amb el meu enrutador amb el bit de 12 mm, vaig encaminar un recés a la part inferior del bloc per amagar el RTC i l’Arduino. Té uns 15 mm de profunditat i no menys de 5 mm de qualsevol vora. Vaig marcar el centre (ish) des de la part inferior i vaig perforar amb un bit de 10 mm tot just passat la meitat per permetre els cables LED. Després, amb una broca de 5 mm, he forat des del centre del recés del LED per trobar el forat de 10 mm des de la part inferior.
Un forat més de 4 mm a la part posterior per poder entrar i, mitjançant una punta de router més petita, per fer un canal per als cables de la part posterior de l’anell LED i s’ha acabat el treball de la fusta.
Pas 2: cercles acrílics
Per fer l'acrílic de la part davantera del rellotge vaig dir que tallava una peça quadrada que era més gran que el forat que havia d'omplir. Després, amb la polidora de potència per començar, vaig començar a treure les cantonades fins que tenia la forma i la mida adequades. Després vaig passar a la polidora manual per no tirar massa i haver de tornar a començar.
Va ser un procés lent i tediós d'assaig i error fins que va quedar bé, però crec que el resultat final va valer la pena. Vaig acabar fent servir un paper granulat molt fi per donar un aspecte esmerilat a la part frontal de l’acrílic.
Pas 3: soldar
M'agrada utilitzar un sistema de color per als meus cables en aquesta ocasió que trio:
- Vermell per a alimentació (5v)
- Blanc per a terra
- Groc per a dades
- Verd per al rellotge
Vaig començar soldant els 3 cables necessaris a l'anell LED mitjançant el sistema anterior i empenyent els cables pel forat. Com que no s’hauria d’exposar a cap força forçada, vaig utilitzar una mica de cola calenta per mantenir l’anell al seu lloc. (És possible que hagi de canviar-lo algun cop) i instal·lar l'acrílic amb una mica de cola calenta al voltant de la vora.
Després vaig soldar els 4 cables al RTC mitjançant el sistema anterior. Per mantenir les coses una mica més ordenades, vaig decidir treure el poder del RTC a l'Arduino. Després, ho va connectar tot a l'Arduino i va soldar 1 cable per alimentar-lo i un altre per a terra a l'Arduino.
RTC
- SCL (rellotge) al pin analògic 5
- SDA (dades) al pin analògic 4
- VCC a 5V
- GND a qualsevol GND de l'Arduino
Anell LED
Din al pin digital 6
Tenia un cable USB vell penjat, així que vaig decidir utilitzar-lo per alimentar el rellotge. Vaig tallar l'extrem que normalment es connectava a alguna cosa i el vaig empènyer pel forat de la part posterior. A continuació, va despullar i empalmar els extrems abans de soldar el VCC a l'Arduino i l'anell LED al costat positiu i la Terra des de l'Arduino i el LED a Terra. Poc es redueix la calor més tard i tenia bon aspecte, La pistola de cola calenta va tornar a sortir per aguantar-ho tot. Vaig decidir deixar l'Arduino amb el joc suficient per poder accedir al port USB per programar-lo en el futur, però no tant que pogués caure.
Pas 4: el codi
Ara hauríeu de poder carregar aquest codi a l'Arduino.
Si l'RTC no s'executa, aquest codi establirà l'hora en funció de la compilació del codi, així que assegureu-vos de prémer el botó de càrrega i no verificar-lo.
alternativament, això també funciona molt bé per configurar l'hora.
www.instructables.com/id/Setting-the-DS130…
Bona part d’aquest codi l’he pres de la biblioteca Adafruit NeoPixel i d’altres d’una biblioteca RTC que he trobat i d’altres que he inventat pel meu compte.
// inclou el codi de la biblioteca: #include
#incloure
#incloure
// defineix pins
#defineix el PIN 6
#define BRIGHTNESS 20 // defineix la brillantor màxima
#defineix r 5
#defineix g 5
#defineix b 5
RTC_DS3231 rtc; // Establir objecte de rellotge
Adafruit_NeoPixel strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // objecte de tira
configuració nul·la () {
Wire.begin (); // Comenceu I2C
rtc.begin (); // començar rellotge
Serial.begin (9600);
// estableix modes pin
pinMode (PIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC ha perdut energia, permetem definir l'hora!");
// la línia següent estableix el RTC a la data i hora en què es va compilar aquest esbós
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))));
// Aquesta línia estableix el RTC amb una data i hora explícites, per exemple, per definir
// El 21 de gener de 2014 a les 3:00 trucaríeu a:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Inicialitza tots els píxels a "off"
Hora Data el Temps = rtc.now (); // té en compte el DST
byte secondval = theTime.second (); // obtenir segons
byte minuteval = theTime.minute (); // obtenir minuts
int hourval = theTime.hour ();
punt (tira. Color (0, g, 0), 50);
}
bucle buit () {
// obtenir temps
Hora Data el Temps = rtc.now (); // té en compte el DST
int minuteval = theTime.minute (); // obtenir minuts
int hourval = theTime.hour (); // obtenir hores
int secondval = theTime.second ();
if (minuteval 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
else if (minuteval <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
else if (minuteval <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
else if (minuteval <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
else if (minuteval <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
else if (minuteval <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
else if (minuteval <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
else if (minuteval <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
else if (minuteval <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
else if (minuteval <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
else if (minuteval <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
else if (minuteval <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
retard (1000);
per a (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
if (hourval == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
else if (hourval == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
else if (hourval == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
else if (hourval == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
else if (hourval == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
else if (hourval == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
else if (hourval == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
else if (hourval == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
else if (hourval == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
else if (hourval == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
else if (hourval == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
else if (hourval == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
else if (hourval == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
else if (hourval == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
else if (hourval == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
else if (hourval == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
else if (hourval == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
else if (hourval == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
else if (hourval == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
else if (hourval == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
else if (hourval == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
else if (hourval == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
else if (hourval == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
else if (hourval == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
retard (1000);
per a (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// per a la depuració en sèrie
Serial.print (hourval, DEC);
Serial.print (':');
Serial.print (minuteval, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
punt buit (uint32_t c, uint8_t espera) {
per a (int j = 0; j <3; j ++) {
per a (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
retard (esperar);
per a (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Pas 5: Oli danès
El pas final i opcional és aplicar una mica d’oli danès a la fusta. M'agrada molt com treu el gra i ofereix una mica de protecció contra les taques i la humitat. Així que el recomano.
Podeu pintar-lo o simplement faig servir un drap vell per netejar-lo.
Ara només queda connectar-lo i gaudir-ne.
Recomanat:
Porta imatges amb altaveu incorporat: 7 passos (amb imatges)
Suport d'imatges amb altaveu incorporat: aquí teniu un gran projecte per dur a terme durant el cap de setmana, si voleu que us poseu un altaveu que pugui contenir imatges / postals o fins i tot la vostra llista de tasques. Com a part de la construcció, utilitzarem un Raspberry Pi Zero W com a centre del projecte i un
El despertador de bombolles fa que el despertar sigui divertit (ish): 7 passos (amb imatges)
El rellotge despertador de bombolles fa que el despertar sigui divertit (ish): despertar amb un rellotge despertador que xucla. Sóc d’aquelles persones a les quals no els agrada despertar-se abans que surti el sol (o ha estat moltes hores fora). Llavors, quina millor manera de fer divertir el despertar que fer una festa de bombolles al llit! Utilitzant un arduino i un
Com desmuntar un ordinador amb passos i imatges senzills: 13 passos (amb imatges)
Com desmuntar un ordinador amb passos i imatges senzills: és una instrucció sobre com desmuntar un ordinador. La majoria dels components bàsics són modulars i fàcilment eliminables. Tanmateix, és important que us organitzeu al respecte. Això us ajudarà a evitar la pèrdua de peces i també a fer el muntatge
LittleBits Mad Libs (-ish): 7 passos (amb imatges)
LittleBits Mad Libs (-ish): llest per involucrar els vostres estudiants en un repte que integra pràctiques d'enginyeria NGSS (Next Generation Science Standards) (i més si afegiu altres restriccions!)? Utilitzant LittleBits o qualsevol altre kit electrònic de components Laboratoris, Lego WeDo, LEGO
Word Clock amb Arduino i RTC: 7 passos (amb imatges)
Word Clock amb Arduino i RTC: vaig decidir fer un regal especial per a la meva xicota pel seu aniversari. Com que tots dos estem dedicats a l'electrònica, era una bona idea fer alguna cosa "electrònica". A més, tots dos ens hem regalat aquest tipus de regals fets per si mateixos abans, i