Necesita ayuda con el circuito de temporización del sensor balístico

4

Construí un proyecto usando un microcontrolador Arduino para administrar fotografías de alta velocidad de un rifle de aire, como globos.

Tengo un interruptor de contacto en el gatillo. Cuando eso introduce un 1 lógico en mi programa Arduino, le digo a la cámara que dispare el obturador, apago las luces LED de la habitación y empiezo a buscar el pellet del rifle de aire para romper un rayo de luz LED que se encuentra frente al cañón de la pistola. Cuando eso sucede, mi programa cronometra la cantidad de tiempo que tarda el pellet en romper una segunda viga que está exactamente 2 pulgadas pasada la primera. Mi programa usa la demora entre los 2 eventos para calcular la velocidad del pellet y multiplica por la distancia al objetivo que he ingresado en el Arduino.

A la hora calculada, mi plataforma utiliza un aislador óptico de estado sólido para cerrar el contacto en un instante.

Todo funciona bien, hasta cierto punto. Escribí el código Arduino que trata con los puertos de E / S directamente en lugar de utilizar las funciones de Arduino para minimizar la latencia de las entradas.

Sin embargo, el Arduino es relativamente lento y se necesitan varios ciclos de instrucciones para responder a un evento desencadenante. Eso significa que mi tiempo calculado está limitado a múltiplos del tiempo de respuesta, lo que significa que mi tiempo para disparar el flash a menudo está apagado en una cantidad pequeña pero importante.

Lo que me gustaría hacer es tener un chip de reloj en tiempo real programable preciso de microsegundos que pueda disparar en una señal de flanco ascendente, hacer que mida la demora al segundo sensor, calcular la velocidad del proyectil y la demora requerida hasta que el proyectil alcanza la distancia designada para apuntar, y luego dispara una lógica 1 en ese momento con una precisión de microsegundos.

La mayoría de los chips de reloj en tiempo real que he visto emiten el tiempo sobre una línea serie, lo cual sería demasiado lento para esta aplicación. Incluso para mi aplicación de rifle de aire, el pellet se atascaría en la "trampa de bala" al final del objetivo antes de que el primer valor haya terminado de enviarse a mi microcontrolador.

Actualmente estoy trabajando con rifles de aire comprimido, pero espero cambiar a balas de calibre .22, que pueden moverse a una velocidad mayor que la del sonido.

¿Hay algún chip de reloj en tiempo real programable de alta precisión que pueda usar para esta aplicación? ¿O quizás un circuito que podría construir con un cristal de cuarzo, un contador digital y una matriz de puertas programables?

P.S. Aquí hay un enlace a algunos de los resultados de mi configuración actual. Cuando funciona, los resultados son muy atractivos:

Fotografía de alta velocidad

    
pregunta Duncan C

2 respuestas

2

Creo que puede usar la captura de entrada incorporada en el microcontrolador AVR (posiblemente con una función de biblioteca Arduino en lugar de la programación completa). Si tuvo que hacer lo último, Atmel Studio es una descarga gratuita y tiene todo lo que necesita en cuanto a software.

El temporizador 1 tiene 16 bits y, creo que con el preescalador mínimo, se puede ejecutar a 16MHz (suponiendo que es el reloj de la CPU), lo que le brinda una resolución de 62.5ns y un tiempo máximo de 4 ms. El contador corre libremente y el conteo se agarra al ver un borde cuando se configura correctamente.

El único problema que previno es que los pulsos pueden estar dos muy juntos para que la captura de entrada se reconfigure para agarrar el segundo borde del otro pin de entrada. En la programación básica, podría usar una interrupción y probablemente algunos microsegundos serían suficientes. A 1500 FPS, tendría 111usec por 2 ", lo que parece mucho tiempo para un ISR. Podría obtener unos 1776 conteos, lo que probablemente sea mucho más de lo necesario o incluso útil.

Por eso, u otras razones, podría considerar aumentar esas 2 pulgadas; parece bastante corto para obtener una alta precisión de todos modos. Los medidores de velocidad de bala comerciales utilizan más como 200mm / 8 "IIRC.

    
respondido por el Spehro Pefhany
0

Algunas ideas por ahora ...

Pedir / Pedir prestado / Hacer un trato para un contador de intervalo de tiempo de > 10MHz o un alcance DSO de 30MHz

-e.g. GUC-2010G 100MHz Contador universal de $ 100 utilizado en Kijiji por un valor de $ 1k

Comience midiendo la latencia de cada unidad de cámara con flash desde el mecanismo de disparo a la cámara y el sensor de disparo hasta la llegada del objetivo.

Método 1 óptico (configuración más rápida, más precisa, más estable, pero más difícil) Método 2 Acústico (es decir, ancho de banda 50 veces menor, respuesta más lenta, 50% más de variación en el retardo de perder el objetivo)

\ $ 1 \ mu s \ $ tiempo de respuesta, como un IC de receptor IRDA2 de 1MBps, válido para < 1 m de espacio. con una interrupción de ruta de 1 mm ~ 5 mm.

  

Veo que muchos utilizan el sensor de audio para el disparador, que también puede funcionar, pero la misma idea, es necesario medir la diferencia de latencia al sensor desde el disparador hasta el flash de destino en microsegundos xx.

  • Diseñe un sistema para calibre 0.22 de 1200 pies / s = 818 mph
  • excepto trabajar en métrica ... solo
    • para velocidades de 30.84kmm / so 31mm / ms o \ $ 0.31mm / \ mu s \ $
  • Luego configure el EOI para bloquear la luz ambiental de las unidades de flash con una apertura estrecha muy profunda con orificios cónicos de cono negro no reflectantes, lo suficientemente grandes como para capturar el haz de luz IR de 2 mm de un emisor o láser de 5 mm de 100 mA.
  • un contador de hardware también puede ser fácil de hacer si tiene experiencia pero es más fácil de comprar.
  • haga un diagrama de bloques de su configuración y defina la latencia y todas las fuentes de error con una desviación de 3 sigma (tiempo de subida, suministro V, ruido)
  • la alineación y la estabilidad mecánica de los sensores emisores son importantes, así que planifique hacer un accesorio ..

LarazónparamedirTdelayeshacerqueuntemporizadorajustabletengaencuentaladiferenciaeneltiempodeconfiguracióndelacámarayeltiempodellegadadelobjetivoparaactivarmomentosprecisosparacapturarelobjetivo,cadavezconunretardovariableomúltiplesretrasosparaMúltiplestomassecuenciadasdevariascámaras.

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas