Pages: [1] 2 3   Go Down
Author Topic: measuring speed of projectile  (Read 3332 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 403
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am trying to measure the speed of a 6mm spherical projectile moving slower than 700 FPS. I was going to use photo resistors but discovered they are too slow.
is there any other options?
Logged

Offline Offline
Sr. Member
****
Karma: 1
Posts: 314
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is an interesting project.  I once saw a setup where someone had a box, about the size of a case of wine, with a whole a little larger than you fist on each end.  There was a bright light inside with some sensors.  The owner then fired 45 caliber bullets through the box and had a digital read out of their speed.  I never found out how the speed was measured.
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 403
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I was just thinking of using IR led and IR detector. Does anyone know the response time for one of those?
Logged

Global Moderator
Boston area, metrowest
Online Online
Brattain Member
*****
Karma: 434
Posts: 23594
Author of "Arduino for Teens". Available for Design & Build services. Now with Unlimited Eagle board sizes!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

700FPS: 700 Feet/Sec x 12in/feet * 1sec/16,000,000 clock = 0.000525 in/clock cycle
Flipping that over, thats 1904.7 clock cycles/inch.
Thus in 12 inch there would be 22,857 clock cycles.

That would be plenty of time create 2 interrupts and measure the uS between interrupts.

I imagine one way would be to have two layers of aluminun foil at each end of a box.
1 layer connected to ground, the other to arduino interrupt pin with internal pullup.
When the bullet hits the foil layers, the pin is grounded & creates a Low interrupt.
Code for a low interrupt, set a flag to capture the micros(), clear the flag and stop the capture on the 2nd interrupt.

(700 Feet/sec * 1 mile/5280 feet * 60 sec/min * 60 min/hr = 477 miles/hours, moving right along!)
« Last Edit: July 15, 2012, 11:30:19 pm by CrossRoads » Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17.
Arduino for Teens available at Amazon.com.

Offline Offline
Edison Member
*
Karma: 4
Posts: 1722
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Id say use a phototransistor and a led(or laser even better) and have that trigger both ends, a little more resuable and should be fast enough
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 252
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

im sure the commercially available CHRONY uses IR sensors, I would imagine that is the way to go,
I am interested to see how this works out for you, i wouldnt mind making one
Logged

Dallas, Texas
Offline Offline
God Member
*****
Karma: 3
Posts: 712
Old, decrepit curmugeon
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

An LED and a phototransistor works fine for this purpose (depending upon the distance between transmitter and sensor), but the issue is a little more complicated by the need to work in ambient light which changes.  You want a detector that will only notice fast changes.  Attached is a scan from my lab notebook of just such a circuit I used to detect projectiles many years ago.  This should work as a good starting point for you.  I believe all of the components are both readily available and fairly cheap.

For the following I used a laser, mostly because it was available and the distance between the transmitter/sensor I was using was several feet, the same circuit also works with a matching led for smaller distances.


* BreakBeamDetector.jpg (183.17 KB, 533x720 - viewed 106 times.)
« Last Edit: July 16, 2012, 08:04:36 am by wanderson » Logged

New true random number library available at: http://code.google.com/p/avr-hardware-random-number-generation/

Current version 0.7.2

Southern California
Offline Offline
Full Member
***
Karma: 0
Posts: 108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OK, I could not resist trying this.  I taped a strip of aluminum foil across two windows on either side of a box.  The projectile breaks the two strips and the sketch measures the interval in microseconds.  With an airsoft gun, the measured velocity was 152.00, 170.09, and 159.32 on three trials.  Code below if anyone is interested.



Code:
// measures velocity of projectiles
// projectile breaks foil strips 218 mm apart

#include <LiquidCrystal.h>

LiquidCrystal lcd(3,5,9,10,11,12);
unsigned long start=0, finish=0;
int startPin=4, finishPin=8, done=0;
float distance=218.0, interval, velocity;

void setup() {
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Muzzle Velocity");
  pinMode(startPin, INPUT_PULLUP);
  pinMode(finishPin, INPUT_PULLUP);
}

void loop() {
  while(!start) {
    if(digitalRead(startPin) == HIGH)
      start = micros();
  }
  while(!finish) {
    if(digitalRead(finishPin) == HIGH)
      finish = micros();
  }
  while(!done) {
    interval = float(finish-start);
    velocity = distance*1000*3.28/interval;
    lcd.setCursor(0, 1);
    lcd.print(velocity);
    lcd.print(" ft/sec");
    done = 1;
  }
}


* IMG_0307.jpg (1929.59 KB, 2592x1936 - viewed 123 times.)
Logged

Global Moderator
Boston area, metrowest
Online Online
Brattain Member
*****
Karma: 434
Posts: 23594
Author of "Arduino for Teens". Available for Design & Build services. Now with Unlimited Eagle board sizes!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Is that the range you were expecting?
Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17.
Arduino for Teens available at Amazon.com.

Southern California
Offline Offline
Full Member
***
Karma: 0
Posts: 108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Is that the range you were expecting?
I didn't really know what to expect, but the values do seem reasonable to me.  When I shoot it outside, the projectile is visible, and it flies across the yard (around 50 ft) in less than 1/2 second.
Logged

Dallas, Texas
Offline Offline
God Member
*****
Karma: 3
Posts: 712
Old, decrepit curmugeon
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

With an airsoft gun, the measured velocity was 152.00, 170.09, and 159.32 on three trials.  Code below if anyone is interested.

What are the units on this velocity?
Logged

New true random number library available at: http://code.google.com/p/avr-hardware-random-number-generation/

Current version 0.7.2

Offline Offline
Sr. Member
****
Karma: 0
Posts: 403
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

With an airsoft gun, the measured velocity was 152.00, 170.09, and 159.32 on three trials.  Code below if anyone is interested.

What are the units on this velocity?

Airsoft is almost always in FPS (feet per second).

Also, If I use 2 IR led emitter and detector at 1 foot could I analogRead() in that time frame? If not what is an interrupt?
Logged

Dallas, Texas
Offline Offline
God Member
*****
Karma: 3
Posts: 712
Old, decrepit curmugeon
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

With an airsoft gun, the measured velocity was 152.00, 170.09, and 159.32 on three trials.  Code below if anyone is interested.

What are the units on this velocity?

Airsoft is almost always in FPS (feet per second).

Also, If I use 2 IR led emitter and detector at 1 foot could I analogRead() in that time frame? If not what is an interrupt?

These values could be either feet per second (a little slow for airsoft) or meters per second (a little fast for airsoft).  All of the numbers (which haven't been many) I have seen for airsoft speeds have been in the 300 ft/sec range
Logged

New true random number library available at: http://code.google.com/p/avr-hardware-random-number-generation/

Current version 0.7.2

Dallas, Texas
Offline Offline
God Member
*****
Karma: 3
Posts: 712
Old, decrepit curmugeon
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Also, If I use 2 IR led emitter and detector at 1 foot could I analogRead() in that time frame? If not what is an interrupt?

No you cannot use analogRead for this.  It really needs to be a digital read.  The a2d conversion in the arduino takes tens to hundreds of milliseconds much, much to slow.  The circuit I provided above will provide digital output which can be used digitalRead for slow speeds, but would need to be interrupt read for higher speeds.
Logged

New true random number library available at: http://code.google.com/p/avr-hardware-random-number-generation/

Current version 0.7.2

Offline Offline
Edison Member
*
Karma: 4
Posts: 1722
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Look on the arduino playground for information on interupts
Logged

Pages: [1] 2 3   Go Up
Jump to: