Índice:
Vídeo: Relógio Micro Binário: 10 Passos (com Imagens)
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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
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)
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
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
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
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
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
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
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
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.
Vice-campeão no concurso Block Code