Midiendo la velocidad de una flecha con un Mouse viejo y el arduino


Muy cierto es que de muchas formas se puede medir la velocidad de una flecha, pero esta me parece una muy buena y aplicando moderna tecnología

Este práctico esta inspirado en un trabajo de dos capacitadores del INET (Instituto Nacional de Educación Tecnológica), Leo Monti y Javier Maldonado, muchas gracias y a no reclamar derecho de autor.

Midiendo la velocidad de la flecha que interrumpe una barrera óptica

clip_image002

clip_image004

clip_image006

Como pueden ver para algo sirven los libros je je..

clip_image008

Para hacerlo necesitaremos los siguientes materiales, (además de una ballesta o un rifle de aire comprimido), la placa arduino que ya les comenté es una interesantísima herramienta (ver acá) un mouse viejo del tipo a bola, un puntero láser y soportes la pc y un par de software que se pueden bajar de la red.

Se preguntarán para que el mouse? Bueno en las plaquetas de la electrónica de estos aparatos que todo buen juntamugre debe guardar celosamente, hay dos sensores infrarrojos que en este caso vamos a usar como sensores de luz.

clip_image010

clip_image012

Aquí están marcados los dos sensores que posee, sacamos la placa completa del ratón y la vamos a alimentar directamente de la placa arduino, si se fijan ambos sensores (los negros con la pinta verde), tienen delante una rueda, al sacar la plaqueta esa rueda queda en la caja del Mouse, ahora frente al sensor queda una especie de plástico transparente que es un diodo emisor de infrarrojos, para nuestro trabajo usaremos el sensor de la derecha asi que con un soldador sacamos led (el transparente) eso nos dejará libre la pasada para estimular con un puntero láser el fotodiodo, que asi se llama.

Para no entrar en líos vamos a alimentar toda la placa, en casi todos los mouses que desarmé el cable azul es el positivo y el verde el negativo, pero para estar mas seguros vamos a ver el capacitor electrolítico (esta indicado en la imagen anterior) que esta inmediatamente sobre el sensor que vamos a usar, este tiene marcado sus patas asi no le erramos, sacamos de la pata positiva un cable rojo y de la negativa uno negro la salida que sensará la luz la sacaremos soldando un cable a la pata izquierda del fotodiodo en esta imagen puede verse bien

clip_image014

Una vez hecho esto nos quedan 3 cables, el rojo (positivo) el negro (negativo) y un tercer cable que es la salida del sensor en este caso verde.

Para que funcione mejor deberemos colocar toda la placa en una caja de cartulina negra dejando un orificio por donde entre un pequeño tubo plástico negro como se ve en la figura

clip_image016

clip_image018

En la foto se ve la placa arduino sobre el protoboard sujeta con una bandita de goma y la caja negra donde sobresale el caño plástico que deja una entrada al sensor. También sujeta con bandita.

Las conexiones, el rojo a los 5V de la placa arduino, el negro a GND y la salida del sensor al pin A0.

El código para el arduino es este:

/*
Barrera de luz
*/
// to the pins used:
const int analogInPin = A0; // acá entra el cable que viene del fototransistor
int sensorValue = 0; //
//int outputValue = 0; //
unsigned long time;
void setup() {
Serial.begin(115200);
}
void loop() {
// read the analog in value:
sensorValue = analogRead(analogInPin);
// print the results to the serial monitor:
//Serial.print("Time: ");
time = millis();
Serial.print(time);
Serial.print(" ");
Serial.println(sensorValue);
}

Una vez cargado el código en el monitor serial (ajustados los baudios a 115200) podemos ver dos columnas, la primera marca los milisegundos y la otra los valores que ve el sensor. Algo así:

1418719   87

1418721   87

1418722   88

1418724   87

1418725   87

Bueno que hacemos con eso, nos vamos a bajar de la red dos programas, el RealTerm, y el Kst2 , el primero es el que fabrica el archivo para que el Kst luego lea las columnas de datos.

Instalamos los software

Con la tarjeta arduino conectada corremos Realterm, vamos a Port

clip_image020

clip_image022

Se cambian los baudios a 115200 y la com a 3 y se pica Change.

Si todo va bien deberemos ver las dos columnas, con los milisegundos y lo que e sensor ve, en este caso 0

Luego pasamos “Capture”

clip_image024

En File escribimos el nombre del archivo que va a contener los datos, en este caso “prueba2” picamos sobre Start Overwirite.

clip_image026

Aparece esta pantalla y se detiene el paso de datos, sin embargo esta grabando, asi que con el programa en este estado haremos las pruebas (lanzar la flecha que pase justo sobre la barrera óptica).

Una vez terminamos picamos stop Capture, y nos queda ya el archivo prueba2 con todos los datos.

Ahora abrimos:

clip_image028

clip_image030

Picamos sobre Wilzard

clip_image032

Buscamos el archivo prueba2

Ahora picamos Configure

clip_image033

Ponemos los valores como muestra la imagen y pulsamos OK

clip_image035

Acá nos aparecen las dos columnas del archivo, elegimos columa2 y la pasamos al lado derecho

clip_image037

Ahora Next

clip_image039

En Create from field, elegimos Columna 1 y el resto como indica la imagen, seguimos con Next (Esto parece complicado pero es muy sencillo una vez que lo hacemos varias veces)

clip_image041

Ultima entrada, podemos dejar tal cual, picamos Finish para que aparezca la curva

clip_image043

Bueno esta es la curva, entre 345000 350000 milisegundos vemos una línea que es la pasada de la flecha por la barrera óptica, el KST permite ampliar el sector y asi poder ver cuanto tiempo duró la pasada

clip_image045

Bueno vemos que la pasada de la flecha duró 6 milisegundos, desde 346936 hasta 34942

Como usamos los datos

Largo de la flecha: 16 cm

Distancia de la punta de la flecha al rayo láser: 9cm

Tiempo medido con el dispositivo: 0.006 seg

El peso de la flecha es de: 6.07gr

Calculando velocidad

Velocidad= ∆e/∆t= 0.16m/0.006 seg= 25m/seg

Si bien el dato parece insignificante, y mi ballesta es de juguete en el espacio de 9 cm alcanzó una velocidad de 90Km/h!!!!

Calculando aceleración:

aceleración= (Vfinal)^2-(Vinicial)^2/2 *distancia

a=(25m/seg)^2-(0m/seg)^2/ 2 *0.09m= 3472 m/seg^2

Esa aceleración equivale a 354 G, un ser humano es capaz de soportar en el mejor de los casos hasta 18 G, es decir si existiera un aparato que pudiera lanzar a una persona con la misma fuerza proporcional al de la ballesta de juguete no sobreviviría

Calculando energía cinética:

E=mv^2/2

E= 0.006Kg * (25 m/seg)^2/2 = 1.87 Julios

Otra prueba con el mismo dispositivo pero usando un rifle de aire comprimido, con un balín un poco mas largo para que pueda hacerse la lectura, el balín normal era muy corto y excedía la sensibilidad del sensor (posiblemente mejorando el código podría lograrse pero estoy muy verde aún en esto)

clip_image047

El rifle de aire comprimido

clip_image049

clip_image051

Los proyectiles, el balín de aluminio de 4 cm y la flecha de la ballesta

Los datos que obtuve con el rifle de aire fueron los siguientes:

Datos:

Largo del balín: 4.1 cm

Distancia desde la punta del balín al rayo láser: 45.5 cm

Peso del balín: 2.41gr

Tiempo medido con el dispositivo:

clip_image053

El tiempo fue de 3 milisegundos

Se pueden hacer los mismos cálculos que antes.

Se pueden medir velocidades de vehículos, bengalas, o cañas voladoras y otras cosas que se nos puedan imaginar.

16 comentarios en “Midiendo la velocidad de una flecha con un Mouse viejo y el arduino

  1. QUE GRAN PROYECTO !!! FELICIDADES
    Disculpa una pregunta tengo que registrar en el arduino los pulsos que genera uno de los sensores al girar el encoder pero no ce como conectarlo a la placa ojala m puedas ayudar grax

    • No se como es el sensor, supongo que uno óptico infrarojo, podes conectar las patitas del receptor ir a alguna de las entradas analógicas, tal como lo hice en este experimento, podes poner algún transistor como amplificador en todo caso.

  2. me parece hay un error en el codigo del arduino que no me deja compilarlo…. con que arduinoIDE lo compilaste??

  3. hola cesar ya he arreglado el problema definitivo usas mal un carácter en la linea
    Serial.print(” “);
    aquí no se ve bien pero si te fijas en tu código las comillas estas al revés eso provoca que no se compile, te lo aclaro por si alguien resulta con el mismo problema

    un saludo y sigo construyendo el mio jejeje tal ves mañana lo termino para hacer pruebas

    • Estoy usando la versión de arduino 0022, no me da problemas esa linea. Bueno me alegra hayas solucionado, he puesto un foro asociado al blog sería bueno comentaras tus logros ahí asi aprendemos un poco todos.
      Saludos

  4. como referencia solo pasa con la versión 1.0 que es la mas nueva ya que se hicieron alguno cambios…. veré el foro y comentare ahí.

    un saludo

  5. Se podrá medir la velocidad de un automóvil o sólo se puede utilizar este sistema para objetos pequeños. Gracias.

  6. Admiring the hard work you put into your website and in depth information you present. It’s awesome to come across a blog every once in a while that isn’t the same unwanted rehashed information. Great read! I’ve saved your site and I’m adding your RSS feeds to my Google account.

  7. Hello there, just became aware of your blog through Google, and found that it’s really informative. I’m gonna watch out for brussels. I will be grateful if you continue this in future. Numerous people will be benefited from your writing. Cheers!

  8. Muy bueno todo!!! Acabo de finalizar un curso dictado por Javier y Leo y nos sugirió leer este Blog. Noetinger, IPETYM Nro. 256, Juan Ocampo.
    Saludos.-

    • Esos dos son de lo mejor, excelentes capacitadores, hay cosas por aquí que les he «robado» ja ja.
      Saludos y a tus ordenes por Villa Huidobro

  9. Pingback: Diez pruebas con Calor y Temperatura | Espacio de César

  10. Podrias usar un pin de interrupcion para sensar cuando la flecha pasa la primer barrera para que active un temporizador y otra barrera a X distancia en otro pin para que lo pare y así tendrias una distancia X recorrida en el tiempo que te de el temporizador.

  11. Y si ponés dos sensores separados por algunos cm o metros ???

Deja un comentario