arduino camera triangulation motion-detection

arduino - Cómo calcular dónde impacta una bala en una pared(una pared REAL y una bala)



camera triangulation (4)

Estoy construyendo un proyecto muy emocionante, y estoy creando esta publicación para obtener ideas nuevas, frescas y más locas.

Tengo una pared grande, y estoy disparando. Necesito calcular las coordenadas X e Y exactas donde impacta el proyectil.

Hay varios desafíos:

  • No todas las balas tienen la misma masa o velocidad.
  • Puedo estar usando más de una pistola, por lo que dos balas pueden golpear a un intervalo más cercano.
  • Es posible que reproduzca un video en la pared, por lo que una lectura completa de kinnect puede confundirse.
  • Si es posible, no quiero agregar mejoras a las pistolas o balas.
  • Es posible que no tenga el control total sobre el tipo de muro; se prefieren ladrillos y pintura regulares.

Con todo lo dicho, estoy completamente abierto a las opciones. Los primeros no son restricciones y estoy dispuesto a cambiar el enfoque y comenzar de cero.

Mi enfoque hasta el momento es configurar tres sensores de movimiento y triangular la posición en función de la onda de impacto. Hasta ahora ha sido impreciso y necesita mucha puesta a punto.

Si desea mejorar mi enfoque sugiriendo un sensor o software que me puede estar perdiendo, sea bienvenido, pero como dije, estoy dispuesto a comenzar de nuevo.

Este proyecto se completará, así que si tu solución es genial, contribuirás a algo muy bueno, y puedo enviarte una foto o incluso invitarte a grabar conmigo ;-)


Esto es solo una idea. Puede sonar un poco complicado, pero podría funcionar.

Más o menos, lo que tienes que hacer es una matriz láser con un sensor al final. Esto es lo que quiero decir.

Ahora digamos que tienes mucho más láseres y sensores.

Después de eso, puede usar una fotocélula / fotoresistor / resistencia dependiente de la luz para ver cuándo y qué láser se rompe. Después de eso, al tener 1 láser en el eje X y 1 y el eje Y, puede identificar la bala.

Ahora esto se complica si hay muchos sensores. Un pequeño truco que tengo es conectar directamente la fotocélula a un convertidor de analógico a digital y, al final, conectarlo a una matriz de registros de desplazamiento (también conocido como expansor IO) del Arduino. Por lo tanto, podemos saber qué sensor se activó.

Este método respeta muchas de tus limitaciones. Puede detectar una bala grande o pequeña, sin importar la velocidad (aunque Arduino más rápido podría ayudar). Puede detectar cosas incluso si hay un video en la pared. Si se calibra adecuadamente, la luz láser cegará la fotocélula y si se corta el rayo láser, aunque sea levemente, la intensidad de la luz bajará bastante, lo que indica que una bala pasó en ese punto. No se necesita modificación de bala / pistola. Si monta esto en un tipo de bastidor de una construcción "móvil", esto se puede utilizar en muchos tipos de pared y solo necesita realinear ambos ejes antes de volver a usarlo.

Esto puede sonar complicado, pero esto es solo una idea / sugerencia. Si alguien tiene alguna sugerencia para lo análogo a IO, por favor coméntelo.


Use una cámara IR de alta velocidad y úsela para detectar bengalas en una imagen aplanada por color (Use OpenCV u otra biblioteca para convertir RGB de 24 bits, etc. -> imagen en blanco y negro).

Tome el FOV de la cámara y calcule el desplazamiento X e Y mediante triangulación en función de la distancia a la pared y la traslación desde el punto central de la imagen de la cámara. Si necesita una biblioteca de matriz, use la biblioteca de GLM: es rápida y contendrá todas las funciones que necesita.

¡Buena suerte!


¿Has considerado una cámara térmica? Vi este video hace un tiempo, cuando un chico dispara a un objetivo y captura sus disparos a través de una cámara térmica. En el minuto 1:00, una vez que las balas alcanzan el objetivo, aparece una mancha de calor durante un breve período de tiempo. La forma en que lo haría es colocar la cámara a la distancia más cercana posible de la pared y obtener una toma inicial del área objetivo. Luego, cada bala disparada provocará una pequeña irregularidad de calor en la pared, que será el punto de impacto.