Cryptap: Un ritmo basado en cierre (5 / 5 paso)

Paso 5: código

He tratado de comentar mi código. Tenga en cuenta que se trata de software de 1,0, lo que significa que no es libre de errores.

## OPERACIÓN DE ##

1. Presione el botón start/stop para indicar que usted está listo para comenzar la entrada de código. La luz de estado empieza a parpadear lentamente.
2. Pulse en el código en el botón código. La luz de estado parpadeará en 120 BPM, por lo que usted puede utilizar esto como su metrónomo si quieres. Sin embargo, el programa de cryptap mide las longitudes de pulso entre sí proporcionalmente, por lo que también puede usar su propio tempo. Sólo asegúrese de que son bastante exactos!
3. cuando se realiza la entrada de código, presione el botón start/stop otra vez. El programa entonces decidirá si debe dejarle.

Puesto que los seres humanos no son guardianes del tiempo muy preciso (tuyo realmente no es), configurar la relación de tolerancia de +-30%. Eso significa que las longitudes de golpe pueden ser inexacta por esa cantidad y todavía paso muster.  Esto es suficiente establecer la diferencia entre canciones bastante similares. Hay una pequeña cantidad de traslapo de duro-a-alcanzan entre doble y triple longitud latidos, pero el código todavía es bastante difícil de romper.

Para desbloquear la puerta, las pulsaciones deben estar en las proporciones correctas entre sí (+ /-la relación de tolerancia), y el número de pulsaciones debe ser la correcto. Si se introduce una contraseña incorrecta, el programa espera unos segundos mientras se ignoran cualquier entrada del usuario. También parpadeará la luz de estado rápidamente.  Si el código correcto es introducido, la luz de estado se encenderá constantemente y la puerta se desbloqueará durante 8 segundos.

## CONFIGURACIÓN DE USUARIO ##

La clave se almacena en un array como este:
#define keylength 5
const int clave = {2, 1, 3, 3, 3}; "Feliz cumpleaños"

La matriz almacena la cantidad de tiempo que pasa entre los latidos. Así que si tu contraseña tiene seis notas como "Feliz cumpleaños", debe haber cinco elementos de la matriz. Si tu contraseña es muy larga y tiene más de 16 compases, (muy difícil, que no lo recomiendo), debe aumentar el número definido en esta línea:
#define inputCodeLength 16

## EL RESTO DEL CÓDIGO ##

Tenía curiosidad acerca de interrupciones, así que tuve mis botones activan interrupciones.  Para hacer estas interrupciones fácil de usar, tuve mis manejadores de interrupción Compruebe ciertos punteros a función. Si el puntero no está establecido en NULL, se invoca la función apunta a.  Éstos se establecen con las distintas funciones de "ajuste del modo" dentro de cryptap.c.

Hice un esfuerzo para evitar desbordamientos de búfer estableciendo un máximo número de pulsos entrados. Si el número máximo de pulsos de entrada, el programa inicia análisis de contraseña inmediatamente y decide si abrir la puerta.

Espero que mis comentarios en la ayuda de código.

## ERRORES DE ##

He intentado quitar el USB depuración de código, pero el código no funciona si lo hago. Por lo tanto, dejé de usb_init() y las diversas declaraciones de print(). Lo agradecería si alguien podría quitarlos y todavía tiene el trabajo del programa. Mejor aún si puede explicar por qué no funcionó para mí.

Inmediatamente después de ser programado, el Teensy a veces no acepta entrada de código.  Para solucionar esto,-ciclo de alimentación del circuito.

Artículos Relacionados

Automático, Biorritmo LED acuario luz

Automático, Biorritmo LED acuario luz

luces del acuario Normal son tubos fluorescentes que requieren que encienda por la mañana y apagado en la noche. Esto no es la manera más eficiente a la luz un tanque, pero por alguna razón es el kit por defecto te dan. Otra cuestión es que el circui
Descargar gratis canciones populares Online

Descargar gratis canciones populares Online

Pop, antes de música popular, puede variar desde un ámbito grande de pistas de baile fácil al género incluso metal, rock y punk más animoso. La difusión de la música pop de estilo occidental ha sido modernizada y globalizada de hoy en día, y hay vent
Sistema de cierre basados en Arduino

Sistema de cierre basados en Arduino

Buscamos la puerta electrónica usando ArduinoPresentado aquí es un sistema de bloqueo electrónico que Arduino Nano desempeña el papel de la unidad de procesamiento. Este circuito permite la activación de una cerradura electrónica en introducir la con
Robot camarero - Arduino basado

Robot camarero - Arduino basado

Por favor voten si le gusta!Este es mi primer Instructable. Crítica constructiva es bienvenida!IntroducciónEsta es una guía sobre cómo construí un prototipo de camarero robótico basado en Arduino UNO. Esto es tanto mi primer Instructable y Arduino pr
Ritmo cardíaco partido pendiente

Ritmo cardíaco partido pendiente

Mis amigos estaban hablando sobre brunch una vez día acerca de lo guay (y qué aterrador) sería si un conversando con (tal vez en una fiesta o en una fecha) puede realmente ver cuando su pulso se acelera, proporcionando una ventana en sus sentimientos
Precalentador del motor remoto basado en Web

Precalentador del motor remoto basado en Web

Este Instructable detallará un control basado en web muy específicos y seguimiento método que puede generalizarse para muchos otros usos.Uno de mis hobbies es volar aviones pequeños en Ohio. Ohio hacer mucho frío en invierno e intentando poner en mar
Pulsera contra el ritmo

Pulsera contra el ritmo

Nota: yo estoy entrando en este instructable en el concurso de Remix 2.0. Por lo tanto, si te gustó esto, por favor voten por mí. ¡ Gracias! Ahora que esta pequeña pieza de autopromoción shamless está fuera del camino, procedamos...Este proyecto está
Arduino y Android basado en Bluetooth control de contraseña protegida inteligente cerradura de la puerta (excepto su casa)

Arduino y Android basado en Bluetooth control de contraseña protegida inteligente cerradura de la puerta (excepto su casa)

Todos estamos preocupados por la seguridad de nuestro hogar. Mundo cada vez más inteligente y más inteligente cada día y desea controlar y asegurado lo nuestro de manera más inteligente. En este tutorial que voy a explicar cómo hacer basados en un ar
OSCURIDAD/luz SENSOR basado en el opamp LM741

OSCURIDAD/luz SENSOR basado en el opamp LM741

hey todo el mundo, voy a hacer un sensor de luz/oscuro con un opamp lm741. Es muy fácil y requiere solamente muy pocas partes y es muy interesante leer sobre.Preguntas para el instructables hacen aprender concurso juvenil:¿lo que?-i hace un sensor de
Láser corte MultiWii basado quadcopter

Láser corte MultiWii basado quadcopter

esta es la segunda versión de un pequeño helicóptero cuádruple que diseñado y construido. Está diseñado para que la herramienta necesaria para construirlo es un cortador láser.Puede obtener marcos multicopter para barato de un número de fuentes, pero
GSM basado automatizado sistema de riego con lluvia-Gun

GSM basado automatizado sistema de riego con lluvia-Gun

Era digital moderna de nuestro siglo XXI necesita automatización en cada sector. Combinación de la tecnología para aumentar la credibilidad de una tecnología de otra no es una muy buena idea. India es un país donde la agricultura es el principal y gr
Cómo enseñar ingeniería basado en proyectos para niños

Cómo enseñar ingeniería basado en proyectos para niños

Si te gusta este Instructable, entonces le animo a comprar mi libro, Ingeniero de goma. Está lleno de proyectos más impresionantes y originales hecha a mano de hardware del hogar. Usted puede encontrar donde se venden libros.Este Instructable está aq
3 x 3 cubo de LED programación consejos (basado en Arduino)

3 x 3 cubo de LED programación consejos (basado en Arduino)

cómo hacer ese cubo de hacer lo que quiera que!Seguí el instructivo aquí y construyeron un cubo de LED de 3 x 3 por un Arduino. Me ha encantado! Pero sólo podría hacer una rutina. Una y otra vez y una y otra vez y otra vez... Así que decidí probar y
Gabinete mini arcade basados en Arduino

Gabinete mini arcade basados en Arduino

Duinocade es un gabinete de la arcada muy pequeño (14cm / 5, 5 pulgadas de altura).El software y piezas de la esquema basan en la abierta mano Gamebunio, que basado en la famosa plataforma de Arduino de la fuente. El Gamebuino y el Duinocade utiliza