Tabla de contenido:

Cryptap: una cerradura de puerta basada en el ritmo: 5 pasos
Cryptap: una cerradura de puerta basada en el ritmo: 5 pasos

Video: Cryptap: una cerradura de puerta basada en el ritmo: 5 pasos

Video: Cryptap: una cerradura de puerta basada en el ritmo: 5 pasos
Video: Cómo hacer una ganzúa y abrir una cerradura con ella. (1080p) 2024, Mes de julio
Anonim
Cryptap: una cerradura de puerta basada en el ritmo
Cryptap: una cerradura de puerta basada en el ritmo
Cryptap: una cerradura de puerta basada en el ritmo
Cryptap: una cerradura de puerta basada en el ritmo
Cryptap: una cerradura de puerta basada en el ritmo
Cryptap: una cerradura de puerta basada en el ritmo

Inspirado por varios mecanismos de desbloqueo de puertas que he visto en hackaday.com, decidí crear uno por mi cuenta. Éste tiene una interfaz de dos botones; uno para iniciar y finalizar el envío de la contraseña, y otro para marcar el ritmo que es su contraseña. También hay una luz de estado. Pude construir esto a un precio muy bajo usando piezas que había recuperado durante los últimos meses. Lo único que tuve que pagar fue el microcontrolador en sí, que costaba 21 dólares (https://www.pjrc.com/teensy/), y un cable para colgar imágenes que tenía antes.

Es muy divertido tocar el tema de Star Wars o algo para entrar en mi habitación. ¡Ahora, no tengo que preocuparme por encerrarme fuera de mi habitación de nuevo! Además, se siente bien y geek.

Paso 1: Piezas y herramientas

Piezas y herramientas
Piezas y herramientas
Piezas y herramientas
Piezas y herramientas

Elegí Teensy porque este es mi primer microcontrolador y todavía no tengo un programador. El Teensy solo requiere un cable USB A-miniB y software gratuito para instalar, compatible con Mac / Windows / Linux. Además, es muy fácil cargar el archivo hexadecimal; compile y presione el botón en el Teensy.

El costo de este proyecto para mí fue de $ 21, más el cable para colgar cuadros. Las piezas de la calle procedían de una cafetera (relé, LED, condensador) y un enrutador (LED, conector modular, conector de alimentación, condensadores). Las muestras gratuitas fueron el regulador, los botones y el interruptor 7805 de 5 voltios. También encontré muchas cosas en la caja de "piezas rotas" en mi laboratorio de EE: conectores y cable banana, alambre, el controlador sn754410, un cabezal de cuatro pines y resistencias. Tenía un cargador de computadora portátil adicional por ahí que usaba como fuente de alimentación y un cable de módem de Apple cuya lengüeta estaba rota. Otro hardware: una placa de pared. Usé una pistola de pegamento caliente, un soldador, una lima de aguja y un taladro eléctrico, que son bastante estándar. Lo más inusual que utilicé fue una herramienta de agarre larga y flexible.

Paso 2: Hardware preexistente

Hardware preexistente
Hardware preexistente
Hardware preexistente
Hardware preexistente
Hardware preexistente
Hardware preexistente
Hardware preexistente
Hardware preexistente

Tuve mucha suerte de que ya hubiera tanto instalado. Mi habitación es accesible para personas con discapacidad, y ya había varias tuberías, cajas eléctricas y un cerrojo eléctrico para la puerta instalados. Al quitar el pestillo de la puerta por curiosidad, descubrí que no estaba conectado. Había una tubería desde el cerrojo de la puerta hasta una placa de pared en blanco dentro de mi habitación, y otra tubería desde allí hasta una placa de pared en blanco afuera.

La cerradura de la puerta dice que necesita 24 V a 3 A para funcionar, pero pude arreglármelas con una fuente de alimentación de 19 V y 7,9 A que tenía. La cerradura de la puerta estaba polarizada, ¡así que asegúrese de tener la polaridad correcta!

Paso 3: circuitos

Circuitos
Circuitos
Circuitos
Circuitos
Circuitos
Circuitos
Circuitos
Circuitos

Para controlar el golpe de la puerta, utilicé el relé que encontré en la cafetera. Este relé necesitaba más de 5V TTL para conducirlo, por lo que se usó el sn754410 para traducir TTL a 19V, lo que impulsó el relé. El sn754410 es realmente un controlador cuádruple de mitad H, por lo que estaba desperdiciando 3/4 del chip, pero no tenía transistores de potencia, así que eso es lo que usé.

El chip sn754410 tiene dos pines VCC, uno para 5V, el otro para el voltaje que quieras que salga, que fue de 19V para mí. Es un chip realmente genial. Puede usar esto para impulsar motores y relés directamente, ya que puede cambiar 1A por cuarto de chip y tiene diodos de protección incorporados. Eche un vistazo a la hoja de datos. En mi circuito, conecté el sn754410 directamente al pin de salida de mi Teensy. Los botones están conectados como activo bajo, lo cual es muy común para los microcontroladores. Están conectados directamente al Teensy, lo que significa que tengo que eliminar los rebotes en el software. La luz de estado está conectada al Teensy a través de una resistencia de 1K ohmios; nada especial. El circuito funcionaba sin condensadores, pero los puse de todos modos por si acaso. Hay tapas de protección en los rieles de alimentación de 19 V y 5 V a tierra. Al programar el Teensy, 5V provienen del USB, pero cuando se ejecuta por sí solo, la energía proviene del bloque de alimentación de la computadora portátil. Cuando conecté el regulador 7805 directamente a 19V, se puso MUY caliente, así que puse una red de resistencias para limitar el voltaje y la corriente de entrada al regulador. Esto fue una torpeza, pero ahora todo está a una temperatura manejable.

Paso 4: cableado juntos

Conectarlo junto
Conectarlo junto
Conectarlo junto
Conectarlo junto

El Teensy no fue un problema. Viene con pines, por lo que puede conectarlo directamente a la placa de pruebas.

Decidí codificar con colores los cables del cerradero de la puerta con cables banana rojos (+) y negros (-) de la caja de piezas rotas del laboratorio. Había algunos enchufes cortados de sus cables, así que quité un poco de plástico para exponer un punto de soldadura. Realmente me gusta cómo los conectores banana del laboratorio se pueden conectar entre sí. Usé el cable del teléfono de Apple para conectar los botones y la luz de estado fuera de la habitación al Teensy en el interior. Como un lado estaba roto, corté ese extremo y soldé el cabezal de cuatro pines, sellándolo con pegamento caliente. Esto encajó muy bien en mi tablero. El lado en el que dejé el enchufe entró en el conector modular que salvé del enrutador. Se utilizaron los cuatro cables (GND, luz de estado, botón de inicio / parada, botón de código). Por si no lo has notado, me gustan los enchufes y conectores. El bloque de alimentación conectado al conector de alimentación que saqué del enrutador. Pasar los cables a través de las tuberías de la pared no fue demasiado difícil, debido a la cosa del sujetador flexible. Eso realmente me salvó el día.

Paso 5: Código

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

Intenté comentar mi código. Tenga en cuenta que este es un software 1.0, lo que significa que no está libre de errores. ## OPERACIÓN ## 1. Presione el botón de inicio / parada para indicar que está listo para comenzar a ingresar el código. La luz de estado comienza a parpadear lentamente. 2. Toque su código en el botón de código. La luz de estado parpadeará a 120 BPM, por lo que puede usarlo como metrónomo si lo desea. Sin embargo, el programa cryptap medirá proporcionalmente las longitudes de pulso entre sí, por lo que también puede usar su propio tempo. ¡Solo asegúrese de que sea lo suficientemente preciso! 3. Cuando termine de ingresar el código, presione el botón de inicio / parada nuevamente. El programa decidirá entonces si te deja entrar. Dado que los humanos no son cronometradores muy precisos (el tuyo realmente no lo es), establezco el índice de tolerancia en +/- 30%. Eso significa que las longitudes de los tiempos pueden ser inexactas en esa cantidad, y aún así son adecuadas. Esto es lo suficientemente bueno para diferenciar entre melodías bastante similares. Hay una pequeña cantidad de superposición difícil de alcanzar entre los beats de doble y triple duración, pero el código sigue siendo bastante difícil de descifrar. Para desbloquear la puerta, los latidos deben estar en las proporciones correctas entre sí (+/- la relación de tolerancia), y el número de latidos debe ser correcto. Si se ingresa una contraseña no válida, el programa espera unos segundos mientras ignora cualquier entrada del usuario. También parpadeará la luz de estado rápidamente. Si se ingresa el código correcto, la luz de estado se encenderá de manera constante y la puerta se desbloqueará durante 8 segundos. ## CONFIGURACIÓN DEL USUARIO ## La clave se almacena en una matriz como esta: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // "Feliz cumpleaños" La matriz almacena la cantidad de tiempo que pasa ENTRE los latidos. Entonces, si su contraseña tiene SEIS notas como "Feliz cumpleaños", debe haber CINCO elementos en la matriz. Si su contraseña es muy larga y tiene más de 16 latidos (muy difícil, no lo recomiendo), debe aumentar el número definido en esta línea: #define inputCodeLength 16 ## EL RESTO DEL CÓDIGO # # Tenía curiosidad por las interrupciones, así que hice que mis botones dispararan interrupciones. Para hacer que estas interrupciones sean fáciles de usar, hice que mis manejadores de interrupciones buscaran ciertos punteros de función. Si el puntero no se establece en NULL, se invoca la función a la que apunta. Estos se configuran con las diversas funciones de "configuración de modo" dentro de cryptap.c. Hice un esfuerzo por evitar desbordamientos de búfer estableciendo un número máximo de pulsos ingresados. Si se ingresa el número máximo de pulsos, el programa inicia inmediatamente el análisis de la contraseña y decide si desbloquear la puerta. Espero que mis comentarios en el código ayuden. ## ERRORES ## Intenté eliminar el código de depuración USB, pero el código no funcionará si lo hago. Entonces, dejé usb_init () y las diversas declaraciones print (). Le agradecería que alguien pudiera eliminarlos y aún así hacer que el programa funcione. Incluso mejor si pueden explicar por qué no funcionó para mí. Inmediatamente después de ser programado, el Teensy a veces no acepta la entrada de código. Para resolver esto, apague y encienda el circuito.

Recomendado: