Índice:
- Etapa 1: reunindo peças e trabalho de madeira
- Etapa 2: Círculos de acrílico
- Etapa 3: Solda
- Etapa 4: O Código
- Etapa 5: óleo dinamarquês
Vídeo: Ish Clock: 5 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Muitas vezes me pego comprando coisas que não tenho ideia do que vou fazer com elas. Este projeto é resultado da compra de um anel que possui 12 LEDs WS2812b acesos. Não tinha planos para ele, mas parecia legal online, então coloquei um no meu carrinho, brinquei com ele por um tempo quando ele chegou e depois esqueci completamente.
Um pouco depois eu estava pensando em fazer um relógio e lembrei que ele estava sentado lá sem fazer nada. Eu estava pensando em comprar um segundo anel com 60 LEDs acesos para compensar os minutos, mas então comecei a pensar em como nós / eu tendemos a olhar para o tempo e arredondá-lo para os 5 minutos mais próximos.
Com isso no meu, parti com meu anel de 12 LEDs para fazer o relógio ish. Exibe 1 LED por vez durante 1 segundo, para indicar a hora (LED azul) e depois os minutos (LED vermelho) arredondado para baixo
Etapa 1: reunindo peças e trabalho de madeira
Tive muita sorte de chegar ao trabalho um dia e localizar um palete. Esta palete chamou a minha atenção, pois não se parecia com o seu palete padrão. Era um carvalho limpo, tratado termicamente e extraordinariamente sólido.
Este projeto é feito a partir de uma das peças desse palete. (Perguntei ao chefe antes de levá-lo para casa)
Também usado:
- Anel LED de 12 pixels ws2812b
- Módulo de relógio em tempo real (RTC) (estou usando um DS3231 com I2C)
- Compatível com Arduino Nano v3.0
- Folha de acrílico (5 mm)
- Fio Colorido
Ferramentas
- Furadeira
- Roteador
- Broca de madeira plana ajustável
- Lixadeira elétrica
- Serra manual
- Ferro de solda
- Pistola de cola quente
- Lixa
- Óleo dinamarquês
Lixar
Comecei usando a lixadeira elétrica para endireitar e limpar o bloco de madeira até que todos os lados estivessem limpos e lisos. Deixei algumas imperfeições visíveis e não é perfeitamente reto ou quadrado como gosto de poder ver um pouco da história na madeira.
Marcando e cortando os furos
Depois de lixar, escolhi o lado que queria que fosse a face do relógio e marquei o centro desenhando linhas em cada canto. Eu coloquei o pedaço de madeira ajustável um pouco maior do que o anel de LED para que houvesse uma prateleira para o acrílico sentar e cortar cerca de 5 mm de profundidade, em seguida, ajustei o cortador um pouco mais do que o tamanho do anel de LED e corte outros 5 mm ou mais.
Roteamento e orifícios para cabos
Usando meu roteador com o bit de 12 mm, direcionei um recesso na parte inferior do bloco para ocultar o RTC e o Arduino. Tem cerca de 15 mm de profundidade e não menos do que 5 mm de qualquer borda. Eu marquei o centro (ish) de baixo e perfurei usando uma broca de 10 mm na metade para permitir os fios de LED. Em seguida, usando uma broca de 5 mm, perfurei do centro do recesso do LED para encontrar o orifício de 10 mm na parte inferior.
Mais um orifício de 4 mm na parte traseira para a entrada de energia e usando uma fresa menor para fazer um canal para os fios na parte de trás do anel de LED e o trabalho em madeira é feito.
Etapa 2: Círculos de acrílico
Para fazer o acrílico para a frente do relógio afirmei cortar uma peça quadrada que fosse um pouco maior que o buraco que tinha que preencher. Então, usando a lixadeira elétrica para começar, comecei a remover os cantos até que ficasse do tamanho e da forma corretos. Em seguida, mudei para o lixamento manual para não atirar demais e ter que começar de novo.
Foi um processo lento e tedioso de tentativa e erro até que se encaixou perfeitamente, mas acho que o resultado final valeu a pena. Terminei usando um papel de grão muito fino para dar à frente do acrílico uma aparência fosca.
Etapa 3: Solda
Gosto de usar um sistema de cores para meus fios nesta ocasião, eu escolho:
- Vermelho para energia (5v)
- Branco para chão
- Amarelo para dados
- Verde para Relógio
Comecei soldando os 3 fios necessários no anel de LED usando o sistema acima e empurrando os fios pelo orifício. Como não deve ser exposto a nenhuma força real, usei um pouquinho de cola quente para segurar o anel no lugar. (Talvez precise trocá-lo algum dia) e instale o acrílico com apenas um pouco de cola quente ao redor da borda.
Em seguida, soldei os 4 fios no RTC usando o sistema acima. Para manter as coisas um pouco mais organizadas, decidi obter energia para o RTC do Arduino. Em seguida, conectou tudo ao Arduino e soldou 1 fio para alimentação e outro para aterramento ao Arduino.
RTC
- SCL (relógio) para pino analógico 5
- SDA (dados) para pino analógico 4
- VCC a 5V
- GND para qualquer GND no Arduino
Anel LED
Din para pino digital 6
Eu tinha um cabo USB antigo pendurado, então decidi usá-lo para alimentar o relógio. Cortei a extremidade que normalmente se conectaria a algo e empurrei pelo orifício na parte de trás. Em seguida, descasque e aplique as pontas antes de soldar o VCC ao Arduino e o anel de LED ao lado positivo e o aterramento do Arduino e o LED ao aterramento. Eu encolhi um pouco de calor depois e estava parecendo bom, A pistola de cola quente voltou para manter e segurar tudo. Decidi deixar o Arduino com folga suficiente para poder acessar a porta USB para programá-lo no futuro, mas não tanto que possa cair.
Etapa 4: O Código
Agora você deve conseguir fazer upload desse código para o Arduino.
Se o RTC não estiver executando, esse código definirá a hora com base em quando o código foi compilado, portanto, clique no botão de upload e não verifique.
alternativamente, isso também funciona muito bem para definir a hora.
www.instructables.com/id/Setting-the-DS130…
Muito desse código eu peguei emprestado da biblioteca Adafruit NeoPixel e alguns de uma biblioteca RTC que encontrei e alguns que criei sozinho.
// inclua o código da biblioteca: #include
#incluir
#incluir
// define pinos
# define PIN 6
# define BRIGHTNESS 20 // define brilho máximo
#define r 5
#define g 5
#define b 5
RTC_DS3231 rtc; // Estabelecer objeto de relógio
Tira Adafruit_NeoPixel = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // tira o objeto
void setup () {
Wire.begin (); // Begin I2C
rtc.begin (); // começar o relógio
Serial.begin (9600);
// definir modos de pino
pinMode (PIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC perdeu energia, vamos definir a hora!");
// a linha seguinte define o RTC para a data e hora em que este esboço foi compilado
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));
// Esta linha define o RTC com uma data e hora explícitas, por exemplo, para definir
// 21 de janeiro de 2014 às 3h, você ligaria:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Inicializa todos os pixels para 'desligado'
DateTime theTime = rtc.now (); // leva em consideração o DST
byte secondval = theTime.second (); // obter segundos
byte minuteval = theTime.minute (); // obter minutos
int hourval = theTime.hour ();
ponto (strip. Color (0, g, 0), 50);
}
void loop () {
// consiga tempo
DateTime theTime = rtc.now (); // leva em consideração o DST
int minuteval = theTime.minute (); // obter minutos
int hourval = theTime.hour (); // obter 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 ();}
atraso (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 ();}
atraso (1000);
para (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// para depuração serial
Serial.print (valor da hora, DEC);
Serial.print (':');
Serial.print (minuteval, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
void dot (uint32_t c, uint8_t wait) {
para (int j = 0; j <3; j ++) {
para (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
atrasar (esperar);
para (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Etapa 5: óleo dinamarquês
A etapa final e opcional é aplicar um pouco de óleo dinamarquês na madeira. Eu realmente gosto de como ele realça o grão e também oferece alguma proteção contra manchas e umidade. Então, eu recomendo fortemente.
Você pode escovar ou eu apenas uso um pano velho para limpar.
Tudo o que resta agora é conectá-lo e aproveitar.
Recomendado:
DIY Arduino Christmas Clock: 4 etapas (com imagens)
DIY Arduino Christmas Clock: Merry Christmas! Recentemente, fui abordado por Elegoo para criar um projeto temático de Natal com seu Arduino R3 Most Complete Starter Kit. Com os componentes incluídos em seu kit, fui capaz de criar este relógio temático de Natal que exibe o t
Despertador de bolhas torna o acordar divertido (ish): 7 etapas (com imagens)
Bubble Alarm Clock torna o acordar divertido (ish): Acordar com um despertador barulhento é uma droga. Eu sou uma daquelas pessoas que não gosta de acordar antes do sol nascer (ou já passou muitas horas). Então, que melhor maneira de tornar o acordar divertido do que uma festa da bolha na cama! Usando um arduino e um
ESP8266 Network Clock sem qualquer RTC - Nodemcu NTP Clock Sem RTC - PROJETO DE RELÓGIO DE INTERNET: 4 etapas
ESP8266 Network Clock sem qualquer RTC | Nodemcu NTP Clock Sem RTC | PROJETO DE RELÓGIO DE INTERNET: No projeto estarei fazendo um projeto de relógio sem RTC, será retirado um tempo de internet usando wi-fi e será exibido no display st7735
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
LittleBits Mad Libs (-ish): 7 etapas (com imagens)
LittleBits Mad Libs (-ish): Pronto para envolver seus alunos em um desafio que integra práticas de engenharia NGSS (Next Generation Science Standards) (e mais se você adicionar outras restrições!)? Usando littleBits ou qualquer outro kit eletrônico de várias partes (SAM Labs, Lego WeDo, LEGO