Paso 2: Programar el Arduino
Esta sección asume que sabes conectar el microcontrolador Arduino a tu ordenador, compilar y subir un dibujo. Si no sabes cómo hacer usted probablemente no debería estar haciendo este Instructable. Pero pasar algún tiempo en esta página y realizar algunos de los ejemplos y tutoriales que podría traerle al día.Vamos a subir nuestro bosquejo antes de realizar cualquiera de los componentes electrónicos por lo que podemos probar la electrónica como vamos.
#1: Descargar
Descargar el archivo secret_knock_detector.pde en la parte inferior de esta sección y copiar en su cuaderno. (O ver el texto y cortar y pegar en un dibujo nuevo).
(Tip: Si el nombre del archivo descargado es algo como "BARS5HS13H8SW.tmp" simplemente cambiarle el nombre a secret_knock_detector.pde. y eres bueno para ir.)
#2:
Abra el dibujo y compilarlo. Debe compilar correctamente la primera marcha, pero es bueno estar seguro.
#3:
Conecta tu Arduino y subir el sketch.
Si usted tiene algún problema, revise la sección solución de problemas en el sitio de Arduino.
Resumen del código:
Para los curiosos, aquí hay un unos pocos bits de código si usted está interesado en ocuparse vanamente:
(Si no eres curioso, vaya a la sección siguiente)
sobre línea 28:const int umbral = 4;
Esta es la sensibilidad del detector de golpe. Si usted consigue un montón de ruido, levante (hasta 1023), si tienes un golpes de audición difícil puede disminuir (tan bajo como 1).
sobre línea 29:const int rejectValue = 25;
sobre la línea 30:const int averageRejectValue = 15;
Ambos se utilizan para determinar la precisión con alguien tiene que tocar. Son porcentajes y debe estar en el rango de 0-100. Bajar estos medios alguien debe tener sincronización más precisa, cuanto más alto es más Clemente. averageRejectValue siempre debe ser inferior a rejectValue.
Configuración de 10 y 7 hace difícil para dos personas golpear el golpe mismo incluso si saben el ritmo. Pero también aumenta el número de falsos negativos. (es decir: se tocar correctamente y todavía no se abre.)
sobre línea 31:const int knockFadeTime = 150;
Este es un contador de tiempo de debounce crudo para el knock sensor. Después oye un golpe se detiene para escuchar esto muchos milisegundos por lo que no cuenta el mismo golpee más de una vez. Si recibes un golpe solo contado como dos entonces aumentar este temporizador. Si no registra dos golpes rápidos luego disminuyen.
sobre línea 32:const int lockTurnTime = 650;
Se trata ahora de muchos milisegundos corremos el motor para abrir la puerta. Cuánto tiempo debe ser depende del diseño de su motor y su cerradura. Está bien si se queda un poco largo ya que he diseñado un embrague deslizante simple en el diseño, pero es mejor que todas las partes si no funciona demasiado.
sobre línea 34:const int maximumKnocks = 20;
Cuántos golpes se registro. 20 es mucho. Esto puede aumentar si su escondite secreto está protegido por tortuosos bateristas con buenos recuerdos. Aumentar demasiado y corre fuera de memoria.
sobre línea 35:const int knockComplete = 1200;
También conocido como el número máximo de milisegundos que esperará de un golpe. Si no oye un golpe para este tiempo asumirá que se haga y verifique si el golpe es bueno. Incrementar esto si eres una aldaba de lento. Disminuirla si eres una aldaba rápida y están impacientes para esperar 1,2 segundos antes de abrir su puerta.
sobre línea 39:int secretCode [maximumKnocks] = {50, 25, 25, 50, 100, 5...
Este es el golpe por defecto que reconoce cuando se enciende. Se trata de notación rítmica extraña puesto que cada valor es un porcentaje de los golpes más largos. Si usted está teniendo un momento difícil conseguir que reconocen el cambio "afeitado y un corte de pelo" a {100,100,100,0,0,0... y una secuencia simple de 3 golpes lo abrirá.
Depuración:
línea 51: Serial.begin(9600);
sobre línea 52:Serial.println ("programa Inicio.");
Descomentar estas líneas para ver información sobre el puerto serie de depuración. Hay algunas otras líneas de depuración de código en el resto del código que usted puede eliminar el comentario para ver lo que está sucediendo internamente.
Asegúrese de configurar su puerto serie a la velocidad correcta.
El resto del código es comentado por lo que se puede ver cómo funciona pero probablemente no tendrá que cambiarlo si no a cambiar el diseño.