Índice:

Relógio Micro Binário: 10 Passos (com Imagens)
Relógio Micro Binário: 10 Passos (com Imagens)

Vídeo: Relógio Micro Binário: 10 Passos (com Imagens)

Vídeo: Relógio Micro Binário: 10 Passos (com Imagens)
Vídeo: Expectativa x realidade. E você lindona, Opção 1 ou 2? 2024, Novembro
Anonim
Relógio Micro Binário
Relógio Micro Binário
Relógio Micro Binário
Relógio Micro Binário

Projetos Tinkercad »

Tendo criado anteriormente um Instructable (DVM Binário), que faz uso da área de exibição limitada usando binário.

Foi apenas um pequeno passo ter criado anteriormente o módulo de código principal para conversão de decimal em binário para a criação de um relógio binário, mas a única coisa que faltava era um RTC (relógio em tempo real).

No entanto, o Microbit não tem uma versão em RTC.

O RTC possibilita a realização de projetos de relógio com bateria reserva.

Como tal, o seguinte projeto usa um Microbit e um Kitronik RTC para criar um relógio 24H com um display Binário e adicionalmente tem uma opção de alarme.

O software do projeto que será executado no Microbit será criado no Makecode Blocks.

Suprimentos:

MicroBit V1 ou V2

Caixa protetora MicroBit (opcional)

Makecode

Kitronik RTC

CR2032

Codeblocks

Cura

impressora 3d

1 * SPDT (on - on) switch

1 * SPDT (on - off - on) switch

2 * SPST (normalmente aberto), interruptor momentâneo

4 * M3 (10 + 6 mm), separadores M / F com porcas M3

4 * M3 (8 mm), parafusos

Conector M / F de jumper, 100mm, 28AWG pré-fabricado com plugue e soquete.

1 * Piezo Buzzer (sem movimentação)

Esses suprimentos estão disponíveis em vários pontos de venda e você pode ter seu próprio fornecedor preferencial.

Etapa 1: Definindo a área de exibição

Definindo a área de exibição
Definindo a área de exibição
Definindo a área de exibição
Definindo a área de exibição

Embora a área de exibição seja limitada na quantidade de dados que podem ser mostrados a qualquer momento, ela se presta perfeitamente à exibição de dados de bits.

Como tal, há área suficiente para exibir palavras binárias de 4 x 4 bits para representar o tempo com notificações e modos de seleção.

O display é dividido em 3 áreas principais; Tempo, seleção e modos.

Tempo

Dezesseis LEDs atribuídos ao Tempo, cada coluna de 4 LEDs é atribuída a um intervalo de tempo, sendo os intervalos na forma H, H, M e M.

Cada bit da palavra binária tem uma ponderação de 1, 2, 4 e 8 com o LSB na linha 4 e o MSB na linha 1

Cada palavra binária de 4 bits permite uma contagem de 0 a 15, que é mais do que suficiente para o formato de hora 24H, exigindo uma contagem máxima por coluna de 2, 9, 5 e 9.

Seleção

Uma linha de 4 LEDs na linha 0 é usada para identificar a coluna de tempo selecionada ao inserir o tempo.

Modos

Uma coluna de 5 LEDs na coluna 4 é usada para identificar os modos, funções e operação.

Assinale - LED 4, 0 piscando on e off é usado para indicar segundos e operação.

Tempo - LED 4, 1 indica o modo de tempo quando ligado. (Modo padrão ao ligar)

Alarme - LED 4, 2 indica o modo de alarme quando ligado.

Notificação de alarme - LED 4, 3 e LED 4, 4 piscam quando o alarme é acionado.

Etapa 2: RTC (relógio em tempo real)

RTC (Relógio em tempo real)
RTC (Relógio em tempo real)
RTC (Relógio em tempo real)
RTC (Relógio em tempo real)
RTC (Relógio em tempo real)
RTC (Relógio em tempo real)
RTC (Relógio em tempo real)
RTC (Relógio em tempo real)

O RTC é o coração do aplicativo, permitindo definir e manter o tempo preciso.

Mais detalhes sobre o RTC podem ser encontrados em Kitronik.

O RTC fornece um fornecimento regulamentado que nega a necessidade de alimentar o Microbit por seu próprio conector USB ou JST e a bateria reserva é fornecida para reter o tempo em caso de perda de energia.

Antes de usar o RTC, você precisará carregar o pacote de extensão.

Usando Makecode no ícone Configurações, selecione Extensões e digite Kitronik RTC na pesquisa.

Selecione o pacote para instalá-lo e ele será adicionado às outras extensões.

Existem vários blocos de código para ler e gravar no RTC.

Exigiremos apenas 4 desses blocos de código para o relógio binário.

Eles serão utilizados para gravar a hora definida no RTC e para ler a hora de volta para atualizar a exibição do relógio.

Etapa 3: Codificando o Relógio

Codificando o Relógio
Codificando o Relógio
Codificando o Relógio
Codificando o Relógio
Codificando o Relógio
Codificando o Relógio

A primeira parte do código é a inicialização do programa de variáveis, matrizes e texto informativo.

Iniciar

Bclk - Relógio Binário

<Sel - um botão seleciona a coluna que será ajustada para configuração de tempo.

Inc - o botão B incrementa o tempo.

Pressionar os botões A e B ao mesmo tempo muda o modo entre Hora e Alarme.

Strval - é o valor da string contendo a hora no formato “HH: MM: SS” retornado do RTC

Apenas HH e MM são usados para exibir ou definir a hora.

Modo - retém o valor do modo para Tempo = 1 e Alarme = 2 selecionado com a combinação de botões A + B.

Período - é o valor da coluna de tempo, selecionado com o botão A.

0 = coluna 0 (H), 1 = coluna 1 (H), 2 = coluna 2 (M), 3 = coluna 3 (M)

Tick_en - habilita = 1 ou desabilita = 0 o indicador (segundos).

Inc - Armazenamento intermediário do valor de configuração de tempo incremental.

Tm_list - armazena o valor de cada coluna de tempo durante a configuração.

Alarme - ativa ou desativa o indicador de alarme.

O forever continuamente chama a função tick.

Marcação

A função de marcação, que normalmente está ativada, exibe um LED liga / desliga alternado no canto superior direito para indicar a operação e os segundos.

Além disso, ele chama a função showtm que lê o RTC e o processa para ser exibido em binário, enquanto também chama alarm_mode, se estiver habilitado exibe os LEDs de notificação de alarme no canto inferior direito.

Showtm

A função showtm chama rdtime e o valor usado a partir disso é strval contendo a string de hora.

É criado um loop que aumenta através de strval extraindo cada número único e ignorando o separador “:”

Cada número é então convertido em seu equivalente binário com a função dec2bin e atribuído à coluna correta.

Rdtime

A função rdtime lê os primeiros 5 caracteres na string retornada do RTC (ignorando a parte dos segundos) e os passa para strval.

Se o alarme foi definido (Modo = 2), então os valores definidos do alarme são comparados com os valores retornados pelo RTC, se houver correspondência, então alarme = 1 se não houver correspondência alarme = 0.

Alarm_mode quando ativado exibe dois LEDs alternados liga / desliga no canto inferior direito da coluna 4.

Dec2bin

A função dec2bin converte um número decimal em binário e o exibe na coluna correta.

O número a ser convertido é passado via valor e a coluna de exibição é passada via col.

List2 é a matriz na qual a palavra binária de 4 bits do processo de conversão binária é armazenada.

É iniciado um loop que prossegue para dividir o valor por 2, o restante é armazenado no elemento do array o valor inteiro é dividido por 2, isso é repetido até que o valor inteiro seja <= 1 e este último valor seja colocado no array.

O maior valor decimal de um único dígito é 9 e em binário é 1001 como uma palavra de 4 bits.

A matriz então precisa ser processada na ordem reversa para o resultado correto.

Um loop é então iniciado para ligar o LED correto na coluna apropriada, isso é realizado para cada ocorrência de um na palavra binária de 4 bits.

A interface humana é realizada com botões.

O botão A

Isso seleciona a coluna na qual o valor de tempo será inserido e exibe um LED iluminado sobre a coluna escolhida na linha 4.

Depois que todas as colunas de tempo foram atualizadas, incrementar a seleção para a 5ª coluna atualiza a variável de tempo.

Se modo = 1, o RTC é atualizado, caso contrário, a hora do alarme é atualizada.

O botão B

Este é o botão de incremento e incrementa a coluna de tempo selecionada.

Para reduzir erros e economizar tempo ao chegar ao valor correto, o valor máximo que pode ser inserido por coluna é limitado com base no valor de tempo para um sistema de 24 horas.

Esses valores máximos são armazenados em tm_max , um por coluna de tempo e são selecionados automaticamente com base na coluna de tempo.

Os valores máximos são H = 2, H = 9, M = 5, M = 9

O valor do incremento é convertido em binário em dec2bin e o display é atualizado.

Seleção de modo do botão A + B

Pressionar os dois botões ao mesmo tempo permite a seleção entre o modo Hora ou o modo Alarme, o modo apropriado é exibido no visor.

Dependendo do modo selecionado, o display é atualizado para mostrar a hora ou a hora definida para o alarme.

Etapa 4: Operação

Operação
Operação
Operação
Operação
Operação
Operação

Baixe o arquivo Hex para o Microbit, insira uma bateria CR2032 no RTC.

Conecte o Microbit ao RTC e alimente a placa RTC via USB ou terminais de parafuso.

O LED Tick começará a piscar e logo em seguida a hora será exibida.

Se esta for a primeira vez de uso, é muito provável que a hora exibida esteja errada e precisará ser definida para a hora correta.

Seleção de modo

Pressionar os botões Seleção (A) e Incremento (B) juntos permitirá alternar as opções de Modo entre Hora e Alarme.

Definição da hora

A configuração da hora está no modo 24H.

Use o botão Seleção (A), para mover o LED na linha superior, isso indica a coluna onde o tempo pode ser alterado. As colunas de seleção correspondem a H, H, M e M.

Onde H = horas e M = minutos.

Depois de selecionar uma coluna, pressione o botão Incrementar (b) repetidamente para aumentar a contagem em um a cada toque. As contagens são indicadas em binário, afinal é um relógio binário.

O botão de incremento apenas aumenta a contagem e, uma vez que o máximo seja atingido, é redefinido para zero, pressionamentos adicionais irão aumentar novamente a contagem.

Depois de definir o tempo da primeira coluna, pressione o botão Seleção para a próxima coluna e use o botão Incrementar para definir o tempo da coluna.

Nota: *** Quando você define a Hora ou Alarme, você precisará inserir uma hora na coluna selecionada, mesmo que a hora na coluna deva permanecer inalterada, pois pular uma coluna define a hora dessa coluna para zero ****

Repita o processo até que o tempo tenha sido definido usando todas as 4 colunas.

Pressione o botão Seleção pela quinta vez para movê-lo para a quinta coluna e a hora é definida.

Configurando o Alarme

A configuração da hora do alarme é feita exatamente da mesma maneira que para a hora.

Para que o Alarme seja acionado no tempo necessário, deixe o Modo definido como Alarme.

Para desligar o Alarme, defina o Modo como Hora.

Para exibir a hora do Alarme definida, alterne o Modo entre Hora e Alarme e a hora do Alarme será exibida por um curto período de tempo antes de reverter para a exibição da hora atual.

A hora do alarme não é armazenada no RTC, portanto, se a alimentação for removida, será necessário reiniciar.

Etapa 5: encaixotar

Encaixotar
Encaixotar
Encaixotar
Encaixotar

O projeto ficará no ângulo apropriado para visualizar o relógio, mas uma caixa adiciona uma sensação de permanência.

Você pode comprar uma caixa de tamanho adequado e cortar e perfurar as áreas apropriadas para permitir que o Microbit caiba no encaixe.

Contudo; além disso, eu queria duplicar os botões Microbit junto com outros controles e indicadores.

Normalmente, as legendas precisam ser aplicadas à caixa para identificar os botões.

Eles podem ser aplicados à mão; pintadas, gravadas ou aplicadas etiquetas.

Um método para realizar todas essas opções seria imprimir a caixa em 3D, mas primeiro precisaríamos criar um arquivo CAD para criar o arquivo da impressora.

As opções de criação de arquivo são desenhadas à mão ou com código.

Optei por "desenhado com código" usando Tinkercad CodeBlocks

Os arquivos para a tampa da caixa e a base da caixa podem ser encontrados no Tinkercad CodeBlocks

Etapa 6: Projeto do Código do Bloco

Projeto de código de bloco
Projeto de código de bloco
Projeto de código de bloco
Projeto de código de bloco

A caixa é um design de duas partes consistindo em uma base e uma tampa.

Quatro orifícios de parafuso de canto serão usados para proteger a tampa com um recorte no lado esquerdo para permitir a entrada do plugue USB.

A tampa terá um recorte para o conector Microbit e os interruptores necessários, além disso, qualquer texto será impresso diretamente na tampa e os orifícios dos parafusos serão alinhados com os pilares da base.

A placa RTC será fixada na parte inferior da tampa por 4 pilares e 4 parafusos.

O tamanho da caixa mais a tampa é 70 x 105 x 31 mm

O código da tampa e da base está disponível no TinkerCad CodeBlocks.

Etapa 7: Impressão 3D

impressao 3D
impressao 3D
impressao 3D
impressao 3D
impressao 3D
impressao 3D
impressao 3D
impressao 3D

Carregue os arquivos no Cura e aplique suas configurações de fatiador preferidas.

Configurações aplicadas.

Qualidade: 0,15 mm

Infill: 80%, Tri-Hexagon

Base: Brim

Salve seus arquivos e imprima.

Com o Cura, você pode carregar os dois arquivos juntos na mesma área de impressão e imprimir de uma só vez.

Etapa 8: preenchimento

Infill
Infill
Infill
Infill
Infill
Infill

A tampa da caixa é impressa com texto rebaixado que será preenchido com resina epóxi colorida de 2 partes.

A resina é misturada com uma proporção de 2 partes de resina para 1 parte de endurecedor, em seguida, um pigmento de cor opaco é misturado.

A cor escolhida foi o amarelo para contrastar com o fundo. Branco teria sido outra escolha.

Depois de misturada, a resina é pingada no recesso usando um palito de coquetel para transferir pequenas gotas de resina que são usadas para preencher gradualmente o recesso nas letras.

Resista a colocar muita resina de uma vez, pois você provavelmente vai acabar com bolhas de ar e / ou criar muito transbordamento para a superfície ao redor, o que significa que você terá mais para remover a limpeza e lixamento depois de curado.

Portanto, preencha lentamente, garantindo que a parte inferior da carta esteja coberta e construa, terminando com uma superfície ligeiramente levantada.

Uma vez que a resina tenha curado, um pouco de lixamento leve será necessário para nivelar a superfície, comece com o grau P240, progredindo para graus mais finos conforme necessário para obter um acabamento liso e, finalmente, finalizando com um polidor.

Não aplique muita pressão e muita velocidade ou você vai superaquecer o PLA e a resina, resultando em uma superfície opaca devido à coleta de areia, um pouco de água aplicada durante o processo de lixamento agirá como um lubrificante e refrigerante.

Etapa 9: Montagem

conjunto
conjunto
conjunto
conjunto
conjunto
conjunto

O Microbit se encaixará no encaixe em duas orientações, voltado para a parte principal do RTC de costas.

Se estiver voltado para a parte principal do RTC, as conexões de link não podem ser usadas, no entanto, se o Microbit estiver voltado para o lado oposto da parte principal da placa, então podemos fazer uso dessas conexões.

A montagem começa soldando um cabeçalho de pino SIL de ângulo reto no RTC, para permitir que as conexões sejam feitas com conectores push fit.

O RTC é montado por 4 * M3 (10 + 6 mm), espaçadores M / F com porcas M3 que são fixadas à tampa com 4 * M3 (8 mm), parafusos nos orifícios pré-fabricados.

Os interruptores são colocados nos orifícios pré-fabricados da tampa.

As conexões necessárias são:

GND, 3V, P1 (definir), P2 (alerta), P5 (sel) e P11 (inc)

Nota *** Os resistores (1R), no diagrama para P5 e P11 são simplesmente pontos de conexão de referência, já que a conexão direta a esses pinos no Microbit em blocos de código não está disponível no momento. ***

P5 é a conexão externa para o Botão A, que é conectado por uma chave momentânea SPST. Uma conexão ao P5 e o outro pino é conectado ao GND. Este botão é para a seleção da coluna durante o ajuste do tempo.

P11 é a conexão externa para o Botão B, que é conectado por uma chave momentânea SPST. Uma conexão ao P11 e o outro pino é conectado ao GND. Este botão é para o incremento do número durante o ajuste do tempo.

P1 é uma chave SPDT (on-on) usada para habilitar ou desabilitar as opções de configuração. O pino central vai para P1, enquanto um pino é conectado ao GND e o outro a 3V por meio de um resistor de 10k. Isso permite que um H (3V) e L (0V) sejam aplicados a este pino. Quando P1 está conectado a 3 V, isso ativa as opções de configuração de tempo e quando 0 V desativa a configuração de tempo. Controlando assim se os botões A e B têm algum efeito.

P2 é uma chave SPDT (liga-desliga-liga) que é usada para habilitar ou desabilitar a sirene de alerta e luzes externas opcionais.

O sonorizador de alerta é um Piezo Buzzer (simplesmente afixado com uma almofada adesiva de dupla face), exigindo uma pulsação fornecida pelo Microbit.

Etapa 10: finalmente

Você montou os elementos na caixa, programou o Microbit e o encaixou no encaixe da caixa.

Em seguida, aplique a energia e defina a hora.

Aproveitar.

Block Code Contest
Block Code Contest
Block Code Contest
Block Code Contest

Vice-campeão no concurso Block Code

Recomendado: