Arduino Forum

Topics => Science and Measurement => Topic started by: hello98 on Aug 15, 2019, 06:47 am

Title: Linear velocity measuring device
Post by: hello98 on Aug 15, 2019, 06:47 am
Hi, what kind of sensor can be used to measure linear surface velocity (non-contact type)?
Title: Re: Linear velocity measuring device
Post by: wvmarle on Aug 15, 2019, 07:00 am
Distance sensors (IR or ultrasound), hall effect sensors, break beam sensors, and there are probably more options.
Title: Re: Linear velocity measuring device
Post by: meltDown on Aug 15, 2019, 07:46 am
As is usually (always?) the case, you would get more specific help if you gave more specific detail.

(I'm not sure what "linear surface velocity" actually means... is it the face of something moving towards us in a straight line, like the front of a car.... or what?)

What is it whose velocity you need to measure....

Title: Re: Linear velocity measuring device
Post by: wvmarle on Aug 15, 2019, 07:56 am
More speed measurement options: GPS, encoder attached to wheel.
Title: Re: Linear velocity measuring device
Post by: 6v6gt on Aug 16, 2019, 03:21 am
A computer mouse achieves that. You know that velocity is distance / time ?
Title: Re: Linear velocity measuring device
Post by: Nathaniel_ on Sep 04, 2019, 03:11 am
an accelerometer could measure velocity (by integrating), but it would accumulate error over time so it would probably be unusable after a certain period of time.
Title: Re: Linear velocity measuring device
Post by: MarkT on Sep 07, 2019, 06:31 pm
Optical mouse can measure transverse movement without contact if the surface is patterned.
Title: Re: Linear velocity measuring device
Post by: Idahowalker on Sep 07, 2019, 07:58 pm
Hi, what kind of sensor can be used to measure linear surface velocity (non-contact type)?
Will you be measuring short time frames or long time frames? Short being pico, nano,  and femto seconds. Long being microSeconds+.

I'd use a DUE or STM32 BluePill or a ESP32 and a RTOS.

If you are measuring long time frames, a GPS and the TinyGPS++ library would do the trick. There is a function in the library to measure distances between two points using Lat and Lon. You can store time, in uSeconds, between readings. Use the last position and current position to get distance traveled. With distance traveled and time of traveled distance you can determine linear velocity's, on the surface of the earth, with a good degree of accuracy.

With an ESP32 you can store time in pico seconds. It will take not take many seconds to overrun your time storage variables, with an ESP32, when using pico seconds as your timing base. Take a reading and calculate often with using pico seconds.

You can even calculate how much time it takes to take a reading and use that time to increase the accuracy of the linear velocity reading.

Using a GPS to calculate linear velocities, I'd not let more than 1 milli second pass before doing a velocity calculation; after all the measuring device, on the Earths surface, is traveling in a curved space.