Mecánico de seguridad de craqueo utilizando Android de audio y sensores de orientación

Estoy escribiendo una aplicación que ayuda a lock-smiths con manipulación segura, principalmente creando los gráficos que necesitan sobre la marcha. Cuando se trata de obtener acceso a una caja fuerte a través de la manipulación, se requiere un análisis detallado del "paquete de ruedas" y se realiza trazando la profundidad relativa de una "cerca" sobre una "puerta". Si todas las puertas están alineadas en el paquete, la palanca de cercas caerá en la puerta de la leva y la cerradura se abrirá. Si alguien está interesado en una explicación mucho más detallada, puede encontrar un impresionante tratamiento de Matt Blaze aquí (alrededor de 3.3): www.crypto.com/papers/safelocks.pdf

Hacer los gráficos es importante, y todo lo que realmente requiere es medir con precisión dos lugares en el dial una y otra vez, y la grabación de la distancia de marcado entre dos sonidos. Por lo tanto, digamos que el punto de "drop-in" está entre 10 y 15, un evento de sonido podría ocurrir en 11.5 y 14.5, o la próxima vez alrededor de lo que podría ocurrir en 12 y 15. El cerradero hace un gráfico de la distancia entre estos Números y busca, por ejemplo, un estrechamiento de números, en un gráfico, o tal vez sólo el lugar más bajo en el gráfico.

Estoy usando una radio-choza de la escuela vieja de la recolección del teléfono (mic de la ventosa-mic) vía mi gato de los auriculares de Androids, para escuchar los acontecimientos sanos. Y para medir con precisión en el dial donde se producen los acontecimientos, he montado el teléfono en el dial con velcro y el uso de SensorManager para calcular la distancia entre los sonidos basados ​​en la distancia que el teléfono se ha girado de audio espiga-evento a espiga -evento. Lo cual está bien, pero me gustaría hacerlo sin montar el teléfono en el dial. Un par de empresas solía lograrlo por tener una cámara web mirar el dial en sí, pero que parece mucho menos preciso que sólo el montaje del teléfono como puedo obtener más precisión con grados fraccionarios de rotación.

Una vez que entre en la ubicación de drop-in, siempre golpeará un sonido, luego copia de seguridad del dial al siguiente sonido, así que estaba pensando que podría simplemente, escuchar el evento de sonido, y luego una vez que el dial invierte la medida de dirección a la siguiente Sonido, pero esto requeriría que el dial se mueva a constante, lo cual no sucederá en la vida real. Y supongo que podría hacerlo usando un dynamixel o un servo para mover el dial para el cerrajero, pero otra vez, no una buena solución. Así que mi pregunta es si alguno de ustedes, gente inteligente puede pensar en la forma en que estas tasas relacionadas (distancia entre los eventos de sonido y cambio de posición de marcación) se puede cuantificar sin montar el teléfono en el dial?

No una respuesta completa, pero algunas de las ideas que puedo lanzar en usted:

Desde el punto de vista de un ingeniero de sistemas de control puedo decirle que la forma de medir con precisión una rotación sin acceso directo al eje es con un codificador .

Así que tal vez usted puede usar el modo de accesorio Android para leer un codificador (a través de un Arduino) que montará en el dial (probablemente colocando un disco de goma en el eje del codificador y tocando contra el marcado seguro).

Todo este esfuerzo sería sólo para evitar pegar todo el teléfono a la esfera y ganar una cierta precisión extra.

Un enfoque diferente podría ser conectar algo más en el dial que generaría ruido de click que podría filtrar en el sonido para diferenciarlo del sonido seguro. Pero eso definitivamente reduciría su precisión.

  • ¿Cómo implementar arrastrar y soltar entre listas en android?
  • RxAndroid: cambios de interfaz de usuario en el subproceso Schedulers.io ()
  • OnDrawFrame no se llama en Android
  • HttpURLConnection realiza siempre una solicitud GET en lugar de una solicitud POST a pesar de setDoOutput (true) y setRequestMethod ("POST")
  • TELEPHONY_SERVICE constante no reconocida en una clase, pero está en otra
  • String.equals () siempre devuelve true
  • ¿Cómo convertir una matriz json en un objeto json en android usando gson?
  • ¿Cómo puedo configurar un administrador de alarmas para disparar cada día específico de la semana y el tiempo en android?
  • org.json.JSONObject no se puede convertir en JSONArray
  • Android piensa que no estoy cerrando mi base de datos! ¿Por qué?
  • Java.lang.RuntimeException: Paralleable encontró IOException escribiendo objeto serializable en Android que pasa el objeto ArrayList
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.