Novedades
  • .

Cronógrafo con Arduino

Los sensores bajaron de precio, nunca me contestaron pero si me llego una notificacion de ebay que les redujeron el precio. Ojala y esto ayude un poco al desarrollo del producto
 
Los actualizo...

Después de aproximadamente 4 meses en espera, entre que se me perdió un paquete y tuve que encargar otro, por fin, llegaron los mentados ojos para este cronógrafo, sin embargo, por cuestiones de l violencia que aqueja mi estado, no pude probarlos hasta hoy (hace dos semanas que los tengo en mis manos) y pues para no hacer más largo este rollo, puedo decirles que me dejó una grata sonrisa [emoji3]

Les dejo unas fotos y mañana subo el video de los primeros 8 tiros (no tuve tiempo de un string completo).

91f340058bfccd9209a775601ab0a262.jpg


9e2679acec2abcc1e98b131bb0d52d6e.jpg


Ya me quemaba y este fue el primer disparo medido por el cronógrafo [emoji2]. Sale baja la velocidad, pero es porque y me quedaban 2000 psi en el Marauder.

126e2cf43ef56e817e6d67edf4157263.jpg


Saludos.

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
Les dejo las primeras 8 mediciones:

834.11
848.49
848.49
848.49
848.49
834.11
834.11
848.49

Los disparos fueron hechos con JSB de 25.39 gr.


P.D. Metí mal el peso de la posta, por eso sale mal el cálculo de la energía.

Saludos!

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
Última edición:
Les comparto video:


Saludos!

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
¡Felicidades!

Se ve bastante bien; a mi me llego un display 1602 hace como 2 o 3 semanas pero ya no he hecho pruebas. Da animos ver el resultado :) creo que voy a retomar con un par de pushbutton.


Finalmente, ¿como quedo el codigo, lo modifico mas?, ¿que sensores fueron los que utilizo?


Salu2 y nuevamente, felicidades
 
¡Felicidades!

Se ve bastante bien; a mi me llego un display 1602 hace como 2 o 3 semanas pero ya no he hecho pruebas. Da animos ver el resultado :) creo que voy a retomar con un par de pushbutton.


Finalmente, ¿como quedo el codigo, lo modifico mas?, ¿que sensores fueron los que utilizo?


Salu2 y nuevamente, felicidades
Gracias Dux! Usé los sensores opl550a y op240a, los cuales funcionan perfectamente sin errores. Respecto al software, cambié varias cosas, ya que la primer versión tiraba errores y siempre se mantenía contando la función micros(), más tarde les subo la actualización. Esta versión es muy básica, sólo entrega velocidad promedio y energía promedio.

Tengo otro software que estoy trabajando, donde puedes introducir el peso del diábolo para el cálculo de energía mediante pulsadores y también quiero agregarle velocidad mínima, velocidad máxima y std dev. Igual más tarde les muestro en video cómo funciona.

Saludos!

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
Gracias por responder REX_007...

Yo probe el codigo, conexiones y eso virtualmente y me daba muchos problemas (ya no recuerdo si eso de la cuenta lo vi) e hice algunos cambios con base en pushbuttons e incluir un menu para el peso de los diabolos (y creo que solo me quede con la idea de hacer un menu mas elaborado, ya no recuerdo la verdad) cuando tenga espacio busco en la PC (estoy en tapatalk) y si aun tengo ese codigo subo algunos pantallazos o comentarios por si sirve de algo



Salu2
 
Gracias por responder REX_007...

Yo probe el codigo, conexiones y eso virtualmente y me daba muchos problemas (ya no recuerdo si eso de la cuenta lo vi) e hice algunos cambios con base en pushbuttons e incluir un menu para el peso de los diabolos (y creo que solo me quede con la idea de hacer un menu mas elaborado, ya no recuerdo la verdad) cuando tenga espacio busco en la PC (estoy en tapatalk) y si aun tengo ese codigo subo algunos pantallazos o comentarios por si sirve de algo



Salu2

Estaría genial compañero. Verá que con el nuevo código, le va dar cero problemas...

Quedamos a la espera de su aporte también [emoji2].

Saludos y en un rato los actualizo...

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
Adjunto la actualización que usé para el proyecto.

Saludos
 

Adjuntos

  • CRONOGRAFO_V1.0.1.docx
    150.5 KB · Visitas: 60
Desde cero

Acabo de revisar la simulación donde estuve haciendo pruebas hace algunos meses ya (según las fechas del simulador) y desafortunadamente esta vacio el sketch :( :( :( :( lo debi borrar o en su momento no se guardo, o quien sabe; volvere a hacerlo todo desde cero, espero este fin de semana tener algo de tiempo :), asi que de momento quedo a deber mis comentarios

Sketch.png



Saludos
 
Acabo de revisar la simulación donde estuve haciendo pruebas hace algunos meses ya (según las fechas del simulador) y desafortunadamente esta vacio el sketch :( :( :( :( lo debi borrar o en su momento no se guardo, o quien sabe; volvere a hacerlo todo desde cero, espero este fin de semana tener algo de tiempo :), asi que de momento quedo a deber mis comentarios

Ver el archivo adjunto 809084



Saludos

Que mal compañero [emoji17], esperemos en un espacio pueda avanzarle y nos comparta su progreso.

Yo por lo pronto, ya tengo en mis manos un Arduino nano, un LCD 20x4 I2C y un módulo display de 7 segmentos para armar uno más compacto y portable sin tanto cable, y otro un poco menos feo [emoji23] que mi primer prototipo.

Saludos y quedamos pendientes compañero. [emoji6][emoji106]

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
Que tal REX_007

Tuve un tiempo libre hoy y le dí una leída al ultimo código que subió; me surgieron tres dudas:


1. Para que necesita este delay de 100ms al inicio del Loop?

while(startTime == 0 && stopTime == 0);
delay(100);



2. Le calcula correctamente los promedios de velocidad y energía?

3. A que se refiere con lecturas erróneas que le hicieron modificar el calculo del tiempo?



Aprovechando que ya tengo el display 1602 voy a probarlo con un par de pushbutton, el display y un Nano, para verlo funcionar en vivo; si noto algún problema (no lo creo, porque entiendo que ya lo probó y funciona correctamente) lo comento a la brevedad.




Salu2
 
Me encontré el sketch que estaba utilizando en mis pruebas; es totalmente distinto al suyo (yo uso switch y como comentaba que no lo entendí bien, no utilizo la función attachinterupt) solamente la parte con el menú para ingresar el peso del diábolo no lo tengo, debió quedar en la ultima versión que no se guardo ni en ThinkerCAD y ni guarde yo en mi máquina :cry:

Lo comparto por si le quieren dar un vistazo:




Salu2
 

Adjuntos

  • Sketch.jpg
    Sketch.jpg
    202.5 KB · Visitas: 92
Que tal REX_007

Tuve un tiempo libre hoy y le dí una leída al ultimo código que subió; me surgieron tres dudas:


1. Para que necesita este delay de 100ms al inicio del Loop?

while(startTime == 0 && stopTime == 0);
delay(100);



2. Le calcula correctamente los promedios de velocidad y energía?

3. A que se refiere con lecturas erróneas que le hicieron modificar el calculo del tiempo?



Aprovechando que ya tengo el display 1602 voy a probarlo con un par de pushbutton, el display y un Nano, para verlo funcionar en vivo; si noto algún problema (no lo creo, porque entiendo que ya lo probó y funciona correctamente) lo comento a la brevedad.




Salu2


El truco en ese código es el while de la primera línea, lo que hace es que la interrupción NO esté todo el tiempo contando mediante la función micros por lo que el código se queda en esa línea. El delay es para darle un "pequeño" tiempo y así pueda ejecutar la condición. Compañero, le recomiendo pruebe el código y sus primeras dudas quedarán resueltas [emoji6]

¿Ya probó imprimiendo el tiempo que cuenta el primer código? Le pregunto para que observe lo que estoy comentando y vea que no hace lecturas tan precisas ese método. El segundo método le aseguro no va fallar...

El código que nos comparte se ve súper [emoji3] parece que lo hicimos en equipo jajaja... Tengo uno muy similar donde podemos introducir el peso de la posta como comentaba, pero tiene un problema... precisamente es el while y tengo que meterle una condición extra, pero hace que falle en las lecturas... Para que funcione sin fallos, debo quitar esa condición, pero si lo hago, ya no podemos regresar a modificar el peso [emoji17], sin embargo funcionaría sin lecturas erróneas.

Al rato lo subo.

P.D. podría compartir su código en txt para visualizarlo bien.

Saludos!

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
Por último, me falta probar el cálculo del tiempo en flotante como usted, porque el código que uso lo hace en enteros absolutos (se puede dar cuenta por cómo se repiten los datos de mis primeras pruebas).

Saludos!

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
No recuerdo bien cuando lo probe en los primeros dias de este tema, pero creo recordar que en lugar de valores me daba solo ceros, y que pase un buen rato buscando la falla, imprimiendo cada variable y cosas asi.. al final lo unico que me quedo fue culoar al tipo de variable usado, asi que considerando eso, en esta version ya las declare como muestro.


Voy a probar su codigo fisicamente, es mas sencillo (yo ya voy en las ciento y tantas lineas de codigo y aun no tiene menus ni nada jajajaja) y seria mejor partir de ese para irlo ampliando/mejorando


En cuanto tenga tiempo (ya estoy en el cel) le mando un mensaje con el txt de ese codigo :)



Salu2
 
Acabo de llegar del monte, fuí a probar el software con el menú para introducir mediante pulsadores el peso del diábolo; me llevé un buen sabor de boca [emoji3]...
Funcionó sin los errores que esperaba [emoji41]

En esta nueva versión de software, como les platicaba, podemos ajustar el peso de la posta, para que el microcontrolador haga el cálculo promedio de la energía de nuestro rifle. También usé EEPROM del Arduino, de esta forma, no se perderá nuestro ajuste si en futuras salidas volvemos a cronear, entonces quedará guardado en la memoria el peso previamente introducido.

Más tarde les comparto el video de 4 tiros de prueba, para que vean que efectivamente funciona sin fallas.

Saludos!

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
Última edición:
Les comparto el video de la última prueba:


Saludos!

Enviado desde mi Redmi Note 7 mediante Tapatalk
 
Pues nada REX_007...

Hice las conexiones (usando dos pushbutton en lugar de sensores) para probar su código y no pude hacerlo funcionar como en el video, solo me da de resultado: cero; no cuenta disparos, no da promedio.. solo cero :(
Estuve probando algunas cosas a ver si era error mio o por mis conexiones, como cambiar esta parte:

attachInterrupt(0, sensorFront, FALLING);
attachInterrupt(1, sensorRear, FALLING);

por esto:

attachInterrupt(0, sensorFront, RISING);
attachInterrupt(1, sensorRear, RISING);

luego esto:

attachInterrupt(0, sensorFront, CHANGE);
attachInterrupt(1, sensorRear, CHANGE);

luego esta variante con las mismas combinaciones anteriores:

attachInterrupt(digitalPinToInterrupt(2), sensorFront, CHANGE);
attachInterrupt(digitalPinToInterrupt(3), sensorFront, CHANGE);

y nada, siempre el mismo resultado: cero; dejo una imagen de lo que muestra la pantalla.

IMG_20191109_190325.jpg


Por ultimo, y solo para confirmar que las conexiones estuvieran bien, cargue el código que les compartí antes; sobre el mismo conexionado y todo, y si me funciono :( Les dejo una captura de pantalla.

Sketch.png


Quien sabe!; aprovechando que ya tengo el LCD 1602, mejor voy a modificar aquel código que les compartí para usar el display 1602 en lugar del puerto serial y sigo con ese código para agregarle menús y todo eso... ya que tenga espacio de hacer los cambios les comparto el código para el LCD



Salu2
 
Que mal que no le funcionó compañero. Yo igual que usted, probé con botones antes de tener los sensores y sí me funcionó. A veces ese error se soluciona agregando '.0' a las constantes, por ejemplo, si tenemos la constante 123, entonces la escribimos 123.0 (no tengo a la mano el código que compartí y no recuerdo si vienen en ese formato las constantes).

Saludos!

Enviado desde mi Lenovo TB-8703F mediante Tapatalk
 
Arriba