Paso 10: Precisión y Error
Exactitud:
Si un paintball viaja a 300fps, toma 3.3333ms para viajar 1ft (1 / 300 fps = 3.3333ms). Viendo como nuestros pares transmisor/Detector de IR están separados 4" aparte, tenemos que dividir 3.3333ms por 3 (ft 1 / 4 pulg = 3). Así que el tiempo que tarda el paintball para viajar 4" 300 fps es 1.1111ms.
300 fps = 3.3333ms/ft
tiempo de viaje 4 pulg = 3.3333ms / (ft 1 / 4 en.)
= 1.1111ms
Velocidad de la CPU = 12 MIPS
= 83.3333ns / ins
Exactitud = 100 - (100 * (83.3333ns / 1.1111ms))
= 99.9925% de precisión a 300fps
Ahora no es la exactitud actual de este cronógrafo. Si este microcontrolador podría detectar un objeto en un ciclo de instrucción, tendría una exactitud de 99.9925% 300 fps porque su peor caso de no detectar un objeto cuando se ha roto el rayo podía ser 83.3333ns antes de realmente lo detecta.
Viendo como soy los detectores de infrarrojos de la interrogación y esperando a ver cuando un objeto ha roto la viga #1, toma 8 ciclos de instrucción por loop cuando estoy tratando de detectar si existe un objeto rompiendo la viga. Una vez que se ha detectado un objeto, tiene una instrucción más ciclo para llevar a cabo porque tiene que empezar Timer1. Cuando termine todo esto, ha comenzado a grabar el período de tiempo que tarda el proyectil para viajar de la viga #1 a #2 la viga. Lo mismo ocurre para la viga #2. Toma 8 ciclos de instrucción por loop de "detección" y una instrucción más para apagar el Timer1. Por lo tanto es el peor de los caso:
Ins/del lazo = 8 ins * 2 lazos
= 16 instrucciones antes de la detección
Ins/habilitación de Timer1 = 1 ins * 2 (activación y desactivación del Timer1)
= instrucciones 2
Mayor cantidad de tiempo posible antes de una detección = (16 ins + 2 ins) * 83.3333ns / ins
= 1,5 μs
Exactitud = 100 - (100 * (1.5µs / 1.1111ms))
= 99.865% de precisión a 300fps
Suponiendo que no existen otras fuentes de error (la distancia es exactamente de 4", vigas están rotas idénticamente en cada lado, etc.) tendríamos una precisión del 99.865% 300 fps de este cronógrafo. Esto es muy bueno, sin embargo, hay muchas otras pequeñas fuentes de error que no he dado cuenta de. Por lo tanto es muy poco probable que el cronógrafo que construir o construir 99.865% exacta. Sin embargo, funciona bastante bien y estoy muy contento con él.
Editar:
Me olvidé de agregar la mínima velocidad del proyectil. Viendo como la cuenta más alta que Timer1 puede contar hasta es 65.535, además utiliza una instrucción más para hacerla desbordar a 0 y a su funcionamiento en 12 MIPS, podemos calcular la velocidad de un proyectil como 62fps. Los cálculos son como sigue:
Velocidad MCU = 12 MIPS
= 83.3333ns / ins
Max Count Timer1 = 65.535 instrucciones + 1 más instrucción para interrumpir
= 65.536 instrucciones
Velocidad min = ((12 MIPS/65.536 ins) * ft 1/3)
= fps 61.03516 (para estar seguro, te dicen 62fps)