Índice:

Cryptap: uma fechadura de porta baseada em ritmo: 5 etapas
Cryptap: uma fechadura de porta baseada em ritmo: 5 etapas

Vídeo: Cryptap: uma fechadura de porta baseada em ritmo: 5 etapas

Vídeo: Cryptap: uma fechadura de porta baseada em ritmo: 5 etapas
Vídeo: ✨A Will Eternal EP 01 - 106 Full Version [MULTI SUB] 2024, Julho
Anonim
Cryptap: uma fechadura de porta baseada em ritmo
Cryptap: uma fechadura de porta baseada em ritmo
Cryptap: uma fechadura de porta baseada em ritmo
Cryptap: uma fechadura de porta baseada em ritmo
Cryptap: uma fechadura de porta baseada em ritmo
Cryptap: uma fechadura de porta baseada em ritmo

Inspirado por vários mecanismos de desbloqueio de portas que vi no hackaday.com, decidi criar um por conta própria. Este possui uma interface de dois botões; um para iniciar e terminar o envio da senha e outro para realmente tocar no ritmo que é a sua senha. Também há uma luz de status. Consegui construir isso de forma realmente barata usando peças que vasculhei nos últimos meses. As únicas coisas que tive que pagar foram o próprio microcontrolador, que custava US $ 21 (https://www.pjrc.com/teensy/), e um fio para pendurar imagens que eu tinha antes.

É muito divertido tocar no tema Star Wars ou algo assim para entrar no meu quarto. Agora, eu não preciso me preocupar em me trancar fora do meu quarto de novo! Além disso, é bom e geek.

Etapa 1: Peças e Ferramentas

Peças e Ferramentas
Peças e Ferramentas
Peças e Ferramentas
Peças e Ferramentas

Escolhi o Teensy porque é meu primeiro microcontrolador e ainda não tenho programador. O Teensy requer apenas um cabo USB A-miniB e software gratuito para instalar, compatível com Mac / Windows / Linux. Além disso, é muito fácil fazer upload do arquivo hex; basta compilar e pressionar o botão no Teensy.

O custo desse projeto para mim foi de US $ 21, mais o fio para pendurar um quadro. Peças da rua vieram de um coador de café (relé, LED, capacitor) e um roteador (LED, conector modular, conector de força, capacitores). As amostras grátis foram o regulador de 5 volts 7805, botões e interruptor. Eu também encontrei muitas coisas na caixa de "peças quebradas" em meu laboratório de EE: conectores banana e cabo, fio, o driver sn754410, um conector de quatro pinos e resistores. Eu tinha um carregador extra de laptop por perto, que usei como energia, e um cabo de modem da Apple cuja lingüeta estava quebrada. Outro hardware: uma placa de parede. Usei uma pistola de cola quente, um ferro de soldar, uma lima de agulha e uma furadeira, que são bem comuns. A coisa mais incomum que usei foi uma ferramenta de garra longa e flexível.

Etapa 2: Hardware pré-existente

Hardware pré-existente
Hardware pré-existente
Hardware pré-existente
Hardware pré-existente
Hardware pré-existente
Hardware pré-existente
Hardware pré-existente
Hardware pré-existente

Tive muita sorte que já houvesse tanto instalado. Meu quarto é acessível por ADA, e havia vários canos, caixas elétricas e uma fechadura elétrica já instalada. Ao remover a batida da porta por curiosidade, descobri que ela não estava conectada. Havia um cano da batida da porta para uma placa de parede em branco dentro do meu quarto, e outro cano de lá para uma placa de parede em branco do lado de fora.

A batida da porta diz que precisa de 24 V @ 3 A para funcionar, mas consegui sobreviver com uma fonte de alimentação de 19 V, 7,9 A que tinha. A batida da porta foi polarizada, então certifique-se de ter a polaridade correta!

Etapa 3: circuitos

Circuitos
Circuitos
Circuitos
Circuitos
Circuitos
Circuitos
Circuitos
Circuitos

Para controlar a batida da porta, usei o relé que encontrei no coador de café. Este relé precisava de mais de 5 V TTL para acioná-lo, então o sn754410 foi usado para converter TTL para 19 V, que acionou o relé. O sn754410 é na verdade um driver quad half-H, então eu estava desperdiçando 3/4 do chip, mas não tinha transistores de potência, então foi o que usei.

O chip sn754410 tem dois pinos VCC, um para 5V e outro para qualquer voltagem que você quiser, que foi 19V para mim. É um chip muito legal. Você pode usar isso para acionar motores e relés diretamente, porque pode comutar 1A por chip de um quarto e tem diodos de proteção integrados. Dê uma olhada na folha de dados. No meu circuito, conectei o sn754410 diretamente ao pino de saída do Teensy. Os botões são conectados como ativo-baixo, o que é muito comum para microcontroladores. Eles estão conectados diretamente ao Teensy, o que significa que tenho que fazer debouncing no software. A luz de status é conectada ao Teensy por meio de um resistor de 1K ohm; nada especial. O circuito funcionou sem capacitores, mas coloquei-os assim mesmo para o caso. Existem tampas de proteção em ambos os trilhos de alimentação de 19 V e 5 V para o aterramento. Durante a programação do Teensy, 5 V veio do USB, mas quando ele está funcionando por conta própria, a energia vem do bloco de energia do laptop. Quando conectei o regulador 7805 diretamente em 19V, ele ficou MUITO quente, então coloquei uma rede de resistores para limitar a tensão e a corrente de entrada do regulador. Isso foi um desastre, mas agora tudo está em uma temperatura controlável.

Etapa 4: conectando-os juntos

Conectando-os
Conectando-os
Conectando-os
Conectando-os

O Teensy não era problema. Ele vem com pinos, para que você possa conectá-lo diretamente à placa de ensaio.

Decidi codificar por cor os fios para a batida da porta com cabos banana vermelho (+) e preto (-) da caixa de peças quebradas do laboratório. Havia alguns plugues cortados de seus fios, então retirei um pouco de plástico para expor um ponto de solda. Eu realmente gosto de como os plugues de banana do laboratório podem se conectar uns aos outros. Usei o cabo do telefone da Apple para conectar os botões e a luz de status fora da sala ao Teensy dentro. Como um lado estava quebrado, cortei essa extremidade e soldei o cabeçalho de quatro pinos, lacrando-o com cola quente. Isso se encaixou perfeitamente na minha placa de ensaio. O lado em que deixei o plugue ligado foi para a tomada modular que recuperei do roteador. Todos os quatro fios foram usados (GND, luz de status, botão iniciar / parar, botão de código). Caso você não tenha notado, eu gosto de plugues e conectores. O bloco de energia foi conectado à tomada de energia que tirei do roteador. Passar os fios pelos canos da parede não foi muito difícil, por causa da garra flexível. Isso realmente salvou meu dia.

Etapa 5: Código

Código
Código
Código
Código

Tentei comentar meu código. Lembre-se de que este é um software 1.0, o que significa que não está livre de erros. ## OPERAÇÃO ## 1. Pressione o botão Iniciar / Parar para sinalizar que você está pronto para começar a inserir o código. A luz de status começa a piscar lentamente. 2. Toque em seu código no botão de código. A luz de status piscará a 120 BPM, então você pode usar isso como seu metrônomo, se quiser. No entanto, o programa cryptap medirá os comprimentos de pulso em relação uns aos outros proporcionalmente, então você também pode usar seu próprio tempo. Apenas certifique-se de que você está correto o suficiente! 3. Quando a entrada do código for concluída, pressione o botão Iniciar / Parar novamente. O programa então decidirá se você deve entrar. Como os humanos não são cronometristas muito precisos (os meus realmente não são), eu defino a taxa de tolerância para +/- 30%. Isso significa que a duração da batida pode ser imprecisa nessa quantidade e ainda assim passar no teste. Isso é bom o suficiente para dizer a diferença entre melodias bastante semelhantes. Há uma pequena quantidade de sobreposição difícil de alcançar entre as batidas de comprimento duplo e triplo, mas o código ainda é muito difícil de decifrar. Para destrancar a porta, as batidas devem estar nas proporções corretas entre si (+/- a relação de tolerância) e o número de batidas deve estar correto. Se uma senha inválida for inserida, o programa aguardará alguns segundos enquanto ignora qualquer entrada do usuário. A luz de status também piscará rapidamente. Se o código correto for inserido, a luz de status acenderá continuamente e a porta será desbloqueada por 8 segundos. ## CONFIGURAÇÃO DO USUÁRIO ## A chave é armazenada em uma matriz como esta: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // "Parabéns a você" O array armazena a quantidade de tempo que acontece ENTRE as batidas. Portanto, se sua senha tiver SEIS notas como "Parabéns a você", deve haver CINCO elementos na matriz. Se sua senha for muito longa e você tiver mais de 16 batimentos (muito difícil, não recomendo), você deve aumentar o número definido nesta linha: #define inputCodeLength 16 ## O RESTO DO CÓDIGO # # Eu estava curioso sobre interrupções, então fiz meus botões dispararem interrupções. Para tornar essas interrupções fáceis de usar, pedi aos meus manipuladores de interrupção que verificassem certos ponteiros de função. Se o ponteiro não estiver definido como NULL, a função para a qual ele aponta será chamada. Eles são configurados com as várias funções de "configuração de modo" dentro de cryptap.c. Fiz um esforço para evitar estouros de buffer, definindo um número máximo de pulsos inseridos. Se o número máximo de pulsos for inserido, o programa iniciará imediatamente a análise da senha e decidirá se deve destravar a porta. Espero que meus comentários no código ajudem. ## BUGS ## Tentei remover o código de depuração USB, mas o código não funcionará se o fizer. Portanto, deixei usb_init () e as várias instruções print (). Eu apreciaria se alguém pudesse removê-los e ainda fazer o programa funcionar. Melhor ainda se eles puderem explicar por que não funcionou para mim. Imediatamente após ser programado, o Teensy às vezes não aceita entrada de código. Para resolver isso, desligue e ligue o circuito.

Recomendado: