En este artículo, veremos cómo puede hacer un cronógrafo simple a partir de piezas económicas y asequibles. Accesorio necesario para medir la velocidad de una bala en un rifle. Estas cifras son necesarias para determinar la condición del rifle, porque con el tiempo, algunas partes del neumático se desgastan y requieren reemplazo.
Preparamos los materiales y herramientas necesarios:
- Digispark chino (en el momento de la compra cuesta 80 rublos);
- visualización del tipo de segmento en TM1637 (cuesta 90 rublos cuando se compra);
- LED infrarrojos y fototransistores (10 pares) - el costo fue de 110 rublos;
- cien resistencias de 220 ohmios cuestan 70 rublos, pero solo se necesitarán dos.
Eso es todo, esta es la lista completa de artículos que necesitará comprar. Por cierto, las resistencias también se pueden encontrar en electrodomésticos viejos. Puede apostar más a su valor nominal, pero no menos. Como resultado, puede mantener dentro de 350 rublos, pero esto no es tanto, dado que el cronógrafo de fábrica costará al menos 1000 rublos, y el montaje allí es mucho peor que el nuestro hecho en casa.
Entre otras cosas, debe abastecerse de detalles como:
- cables;
- una pieza de tubería con una longitud de al menos 10 cm (una tubería de agua de plástico es adecuada);
- Todo para soldar;
- multímetro (opcional).
Los primeros tres detalles descritos tienen sus propios matices, por lo que cada uno de ellos debe considerarse por separado.
Digispark
Este artículo es una placa de circuito en miniatura que es compatible con ArduinoA bordo tiene un ATtiny85. Cómo conectar este elemento al Arduino IDE, puede seguir leyendo, también puede descargar controladores para él allí.
Esta placa tiene varias opciones, una usa microUSB y la otra está equipada con un conector USB, que está conectado directamente a la placa. Debido al hecho de que el producto casero no tiene una fuente de alimentación individual, el autor eligió la primera versión del tablero. Si instala una batería o una batería en un producto casero, esto aumentará enormemente su precio y no afectará en gran medida la practicidad. Y casi todos tienen un cable para cargar un móvil y un banco de energía.
En cuanto a las características, son similares a ATtiny85, aquí sus capacidades son abundantes. El microcontrolador en el cronógrafo solo interroga a los sensores y controla la pantalla.
Si nunca antes ha conocido a Digispark, los matices más importantes se pueden encontrar en la tabla.
Es importante tener en cuenta el hecho de que la numeración de pines para la función analogRead () tiene diferencias. Y en el tercer pin hay una resistencia pull-up con un valor nominal de 1.5 kOhm, ya que se usa en USB.
Algunas palabras sobre la pantalla
Cualquiera puede usar la pantalla para hacer en casa, pero el autor optó por una opción barata. Para que el dispositivo sea aún más barato, puede abandonar completamente la pantalla. Los datos simplemente pueden enviarse por cable a una computadora. Será necesario aquí. La pantalla en cuestión es una copia de la pantalla.
En la foto se puede ver cómo se ve la pantalla por delante y por detrás.
Como las distancias entre los números son las mismas, cuando los dos puntos están apagados, los números se leen sin problemas. La biblioteca estándar es capaz de mostrar números en el rango 0-9. letras en el rango a-f, y todavía existe la oportunidad de cambiar el brillo de toda la pantalla. Los valores de los dígitos se pueden configurar mediante la función de visualización (int 0-3, int 0-15).
Cómo usar la pantalla
Si intenta ir más allá de los valores de [0, 15], la pantalla mostrará confusión, que, además de todo lo demás, no es estática. Por lo tanto, para mostrar caracteres especiales, como grados, desventajas, etc., debe jugar.
El autor quería que la pantalla mostrara la energía final del vuelo de la bala, que se calcularía en función de la velocidad de la bala y su masa. Los valores de acuerdo con la idea tenían que mostrarse de forma secuencial, pero para comprender dónde se debería anotar de alguna manera, por ejemplo, utilizando la letra "J". En casos extremos, simplemente puede usar el colon, pero al autor no le gustó y subió a la biblioteca. Como resultado, en función de la función de visualización, se creó la función setSegments (byte addr, byte data), ilumina los segmentos codificados en datos en el número con número de addr:
Dichos segmentos se codifican de manera bastante simple, el bit de datos menos significativo es responsable del segmento superior, y luego en sentido horario, el séptimo bit es responsable del segmento medio. El carácter "1" cuando se codifica se parece a 0b00000110. El octavo bit más significativo es responsable del colon, se usa en el segundo dígito y en todos los demás se ignora. Posteriormente, el autor automatizó el proceso de obtención de códigos utilizando Excel.
Lo que finalmente sucedió se puede ver en la foto.
Finalmente los sensores
No se proporcionó información precisa sobre los sensores, solo se sabe que tienen una longitud de onda de 940 nm. Durante los experimentos, se descubrió que los sensores no pueden soportar corrientes de más de 40 mA. En cuanto a la tensión de alimentación, no debe ser superior a 3,3V. En cuanto al fototransistor, tiene un cuerpo ligeramente transparente y reacciona a la luz.
Procedemos al montaje y configuración de productos caseros:
Primer paso Asamblea
Todo se ensambla de acuerdo con un esquema muy simple. De todos los pines, solo se necesitarán P0, P1 y P2. Los dos primeros se utilizan para la pantalla, y se necesita P2 para los sensores.
Como puede ver, una resistencia se usa para limitar la corriente de los LED, pero la segunda tira de P2 al suelo. Debido al hecho de que los fototransistores están conectados en paralelo, cuando la bala pasa frente a cualquier optoacoplador, el voltaje en P2 caerá. Para determinar la velocidad de vuelo de una bala, debe conocer la distancia entre los sensores, medir dos sobretensiones y determinar el tiempo durante el cual ocurrieron.
Debido al hecho de que solo se usará un pin, no importa desde qué lado disparar. Los fototransistores notarán una bala de todos modos.
Se recopilan todos los detalles visibles en la foto. Para recolectar todo, el autor decidió usar una placa de pruebas. Luego, toda la estructura se cubrió con pegamento caliente para mayor resistencia. Se colocan sensores en la tubería y se sueldan cables a ellos.
Para evitar que los diodos pulsen cuando son alimentados por un banco de energía, el autor instaló un electrolito a 100 mKf en paralelo con los LED.
También es importante tener en cuenta que el pin P2 se eligió por una razón, el hecho es que P3 y P4 se usan en USB, por lo que ahora con la ayuda de P2 existe la oportunidad de flashear en casa después del ensamblaje.
P2 también es una entrada analógica, por lo que no es necesario usar interrupción. Simplemente puede medir las lecturas entre los valores actuales y anteriores, si la diferencia es mayor que un cierto umbral, en ese momento la bala pasa cerca del optoacoplador.
Paso dos Firmware
El preescalador es un divisor de frecuencia, en casos estándar en placas como Arduino es 128. Esta cifra afecta la frecuencia con la que se sondea el ADC. Es decir, por defecto 16 MHz, sale 16/128 = 125 kHz. Cada digitalización consta de 13 operaciones, por lo que el pin se puede sondear tanto como sea posible a una velocidad de 9600 kHz. En la práctica, esto no es más de 7 kHz. Como resultado, el intervalo entre mediciones es de 120 μs, que es demasiado para el trabajo casero. Si la bala vuela a una velocidad de 300 m / s, superará una trayectoria de 3,6 cm durante este tiempo, es decir, el controlador simplemente no podrá notarlo. Para que todo funcione correctamente, el intervalo entre mediciones debe ser de al menos 20 μs. Para esto, el valor del divisor debe ser igual a 16. El autor hizo un divisor 8, cómo hacer esto, se puede ver a continuación.
Lo que sucedió durante el experimento se puede ver en la foto.
La lógica del firmware tiene varias etapas:
- medir la diferencia de valores en el pin antes y después;
- si la diferencia excede el umbral, el bucle se apaga y se recuerda la hora actual (micros ());
- el segundo ciclo funciona de manera similar al primero y tiene un contador de tiempo en el ciclo;
- si el contador ha alcanzado el valor establecido, se envía un mensaje de error y la transición al estado inicial. En este caso, el ciclo no entra en la eternidad si la bala no fue atrapada repentinamente por el segundo sensor;
- si el contador no se desborda y la diferencia de valor es mayor que el umbral, se mide el tiempo actual (micros ());
- Ahora, en función de la diferencia en tiempo y distancia entre los sensores, puede calcular la velocidad de vuelo de la bala y mostrar información en la pantalla. Bueno, entonces todo comienza de nuevo.
La etapa final. Prueba
Si todo se hace correctamente, el dispositivo funcionará sin problemas. El único problema es la mala respuesta a la iluminación fluorescente y LED, con una frecuencia de ondulación de 40 kHz. En este caso, pueden producirse errores en el dispositivo.
Trabajos caseros en tres modos:
Después de encender, hay un saludo, y luego la pantalla se llena de rayas, esto indica que el dispositivo está esperando una toma
Si hay errores, se muestra el mensaje "Err", y luego se activa el modo de espera.
Bueno, entonces viene la medición de velocidad
Inmediatamente después del disparo, el dispositivo mostrará la velocidad de la bala (indicada por el símbolo n), y luego se mostrará información sobre la energía de la bala (símbolo J). Cuando se muestra un julio, también se muestran dos puntos.