Tabla de contenido:
- Paso 1: Recopilación de piezas y trabajos en madera
- Paso 2: círculos acrílicos
- Paso 3: soldadura
- Paso 4: el código
- Paso 5: aceite danés
Video: Ish Clock: 5 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
A menudo me encuentro comprando cosas con las que no tengo ni idea de qué voy a hacer. Este proyecto es el resultado de la compra de un anillo que tiene 12 LEDs WS2812b encendidos. No tenía planes para él, pero se veía genial en línea, así que puse uno en mi carrito, jugué con él por un tiempo cuando llegó y luego lo olvidé por completo.
Un rato después estaba pensando en hacer un reloj y recordé que estaba sentado allí sin hacer nada. Estaba pensando en comprar un segundo anillo con 60 LED encendidos para compensar los minutos, pero luego comencé a pensar cómo nosotros / yo tendemos a ver la hora y redondearla a los 5 minutos más cercanos.
Con esto en el mío, me puse en marcha con mi anillo de 12 LED para hacer el reloj ish. Muestra 1 LED a la vez durante 1 segundo, para indicar la hora (LED azul) y luego los minutos (LED rojo) redondeados hacia abajo.
Paso 1: Recopilación de piezas y trabajos en madera
Tuve mucha suerte de llegar un día al trabajo y ver un palé. Esta paleta me llamó la atención porque no se parecía a su paleta estándar, corriente. Era un roble limpio, tratado térmicamente y extraordinariamente sólido.
Este proyecto está hecho de una de las piezas de ese palet. (Le pregunté al jefe antes de llevármelo a casa)
También usado:
- Anillo LED ws2812b de 12 píxeles
- Módulo de reloj en tiempo real (RTC) (estoy usando un DS3231 con I2C)
- Compatible con Arduino Nano v3.0
- Hoja de acrílico (5 mm)
- Alambre de color
Instrumentos
- Taladro eléctrico
- Enrutador
- Broca de madera plana ajustable
- Lijadora eléctrica
- Sierra de mano
- Soldador
- Pistola de silicona
- Papel de lija
- Aceite danés
Lijado
Comencé usando la lijadora eléctrica para enderezar y limpiar el bloque de madera hasta que todos los lados estuvieran limpios y lisos. Dejé algunas imperfecciones visibles y no es perfectamente recto o cuadrado, ya que me gusta poder ver algo de la historia en la madera.
Marcar y cortar los agujeros
Después de lijar elegí el lado que quería de la esfera del reloj y marqué el centro dibujando líneas en cada esquina. Puse la broca de madera ajustable un poco más grande que el anillo LED para que hubiera un estante para que el acrílico se sentara y cortara unos 5 mm de profundidad, luego ajusté el cortador un poco más del tamaño del anillo LED y corté otros 5 mm más o menos..
Enrutamiento y orificios para cables
Usando mi enrutador con la broca de 12 mm, enrute un hueco en la parte inferior del bloque para ocultar el RTC y Arduino. Tiene unos 15 mm de profundidad y no menos de 5 mm de cualquier borde. Marqué el centro (ish) desde la parte inferior y perforé con una broca de 10 mm justo después de la mitad para permitir los cables LED. Luego, usando una broca de 5 mm, perforé desde el centro del hueco del LED para encontrar el orificio de 10 mm desde la parte inferior.
Un orificio más de 4 mm en la parte posterior para que entre la energía y usando una broca más pequeña para hacer un canal para los cables en la parte posterior del anillo LED y el trabajo de madera está listo.
Paso 2: círculos acrílicos
Para hacer el acrílico para el frente del reloj, dije cortar una pieza cuadrada que fuera un poco más grande que el agujero que tenía que llenar. Luego, usando la lijadora eléctrica para comenzar, comencé a quitar las esquinas hasta que tenía la forma y el tamaño correctos. Luego pasé al lijado manual para no disparar demasiado y tener que empezar de nuevo.
Fue un proceso lento y tedioso de prueba y error hasta que encajó perfectamente, pero creo que el resultado final valió la pena. Terminé usando un papel de lija muy fino para darle al frente del acrílico un aspecto mate.
Paso 3: soldadura
Me gusta usar un sistema de color para mis cables en esta ocasión elijo:
- Rojo para poder (5v)
- Blanco para tierra
- Amarillo para datos
- Verde para reloj
Comencé soldando los 3 cables necesarios en el anillo LED usando el sistema anterior y empujando los cables por el orificio. Como no debería estar expuesto a ninguna fuerza real, utilicé un poco de pegamento caliente para mantener el anillo en su lugar. (Es posible que deba cambiarlo en algún momento) e instalar el acrílico con solo un poco de pegamento caliente alrededor del borde.
Luego soldé los 4 cables al RTC usando el sistema anterior. Para mantener las cosas un poco más ordenadas, decidí sacar energía para el RTC del Arduino. Luego conecté todo al Arduino y soldó 1 cable para alimentación y otro para tierra al Arduino.
RTC
- SCL (reloj) al pin analógico 5
- SDA (datos) al pin analógico 4
- VCC a 5 V
- GND a cualquier GND en Arduino
Anillo LED
Din al pin digital 6
Tenía un viejo cable USB colgando, así que decidí usarlo para alimentar el reloj. Corté el extremo que normalmente se conectaría a algo y lo empujé a través del agujero en la parte posterior. Luego, pele y afine los extremos antes de soldar el VCC al Arduino y el anillo LED al lado positivo y la tierra del Arduino y el LED a tierra. Me encogí un poco más tarde y se veía bien, La pistola de pegamento caliente volvió a salir para mantener todo presionado. Decidí dejar el Arduino con suficiente juego para poder acceder al puerto USB para programarlo en el futuro, pero no tanto como para que me caiga.
Paso 4: el código
Ahora debería poder cargar este código en Arduino.
Si el RTC no se está ejecutando, este código establecerá la hora en función de cuándo se compiló el código, así que asegúrese de presionar el botón de carga y no verificar.
alternativamente, esto también funciona muy bien para establecer la hora.
www.instructables.com/id/Setting-the-DS130…
Gran parte de este código lo tomé prestado de la biblioteca Adafruit NeoPixel y algo de una biblioteca RTC que encontré y algunos los inventé por mi cuenta.
// incluye el código de la biblioteca: #include
#incluir
#incluir
// definir pines
#define PIN 6
#define BRIGHTNESS 20 // establece el brillo máximo
#define r 5
#define g 5
#define b 5
RTC_DS3231 rtc; // Establecer objeto de reloj
Tira de Adafruit_NeoPixel = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // quitar objeto
configuración vacía () {
Wire.begin (); // Comenzar I2C
rtc.begin (); // iniciar el reloj
Serial.begin (9600);
// establecer pinmodes
pinMode (PIN, SALIDA);
if (rtc.lostPower ()) {
Serial.println ("RTC perdió energía, ¡ajustemos la hora!");
// la siguiente línea establece el RTC en la fecha y hora en que se compiló este boceto
rtc.adjust (Fecha y hora (F (_ FECHA_), F (_ HORA_)));
// Esta línea establece el RTC con una fecha y hora explícitas, por ejemplo para establecer
// El 21 de enero de 2014 a las 3 a. M., Llamaría:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Inicializar todos los píxeles a 'desactivados'
DateTime theTime = rtc.now (); // tiene en cuenta el horario de verano
byte secondval = theTime.second (); // obtener segundos
byte minuteval = theTime.minute (); // obtener minutos
int hourval = theTime.hora ();
punto (tira. Color (0, g, 0), 50);
}
bucle vacío () {
// consigue tiempo
DateTime theTime = rtc.now (); // tiene en cuenta el horario de verano
int minuteval = theTime.minute (); // obtener minutos
int hourval = theTime.hora (); // obtener horas
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 ();}
retraso (1000);
para (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 ();}
retraso (1000);
para (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// para depuración en serie
Serial.print (hora, DEC);
Serial.print (':');
Serial.print (minuteval, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
punto vacío (uint32_t c, uint8_t espera) {
para (int j = 0; j <3; j ++) {
para (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
retrasar (esperar);
para (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Paso 5: aceite danés
El paso final y opcional es aplicar un poco de aceite danés a la madera. Realmente me gusta cómo resalta el grano y además ofrece cierta protección contra las manchas y la humedad. Así que lo recomiendo mucho.
Puedes cepillarlo o simplemente uso un paño viejo para limpiarlo.
Todo lo que queda ahora es enchufarlo y disfrutar.
Recomendado:
Bubble Alarm Clock hace que despertarse sea divertido (ish): 7 pasos (con imágenes)
Bubble Alarm Clock hace que despertarse sea divertido (más o menos): Despertarse con un zumbido de despertador apesta. Soy una de esas personas a las que no les gusta despertarse antes de que salga el sol (o han estado muchas horas afuera). Entonces, ¿qué mejor manera de hacer que el despertar sea divertido que tener una fiesta de burbujas en la cama? Usando un arduino y un
Slap Alarm Clock con Arduino: 13 pasos (con imágenes)
Slap Alarm Clock con Arduino: No sé ustedes, pero una simple alarma no es capaz de despertarme. Necesito luz, sonido e incluso un bofetón suave para despertar. Ningún despertador me atrae, así que decidí hacerme uno, digno de despertarme. Aunque parezca el despertador yo
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil
LittleBits Mad Libs (-ish): 7 pasos (con imágenes)
LittleBits Mad Libs (-ish): ¿Listo para involucrar a sus estudiantes en un desafío que integra prácticas de ingeniería NGSS (Estándares de ciencia de próxima generación) (¡y más si agrega otras restricciones!) Usando littleBits o cualquier otro kit de electrónica de varias partes (SAM Labs, Lego WeDo, LEGO
Ribba Word Clock con Wemos D1 Mini (servidor de hora de Internet): 8 pasos (con imágenes)
Ribba Word Clock con Wemos D1 Mini (Internet Time Server): Supongo que todo el mundo llega al punto en que le hace cosquillas en los dedos y quiere construir un Word Clock. Bueno, este es mi intento y mi conclusión general para construirlo de la manera más eficiente posible. En primer lugar, tengo una impresora 3D y tengo acceso