Go Down

Topic: Help me decide please. (Read 4521 times) previous topic - next topic


Hello Friends,

I am a newbie and should say that i am really fascinated with Arduino. Academically I come from the Mechanical background and professionally software engineering is my Job. In order to help a friend of mine who is a professor of mechanical engineering wants to develop an instrument to analyze a surface(high/low points) using UltraSound, I have taken the task of creating an Interface which will aid him in his quest. Even though i have good experience with software engineering as a programmer for 8 years, my affinity towards Electronics is very bad. But i believe Arduino has solved that issue.

Here I wish to seek some advises. Since ultrasound is his mode of input i figured out Ping))) will be a good option, but cannot determine which board to use(Arduino Diecimila i chose based on my instincts). The projects requires to analyze a surface to measure the roughness using UltraSound. So the high/low points will be having (1/1000) mm difference between them. I have attached the picture below to explain my requirements.

So can Ping))) really detect this much low distance? What i basically mean is that can Ping))) detect distance up to (1/1000)mm of precision?

Do you guys think the following items will satisfy my project requirements?

Arduino Diecimila - Board
Ping Ultrasonic Range Finder(Ping))) ) - Sensor.

After this the interface should be pluggable into any device like Laptop, Computer or perhaps an Android Phone where an application which will be developed by me will be installed on the respective devices. So the user will plug in our complete device to any of the specified device and will see the data in form of a graph generated by our app. This is something that I can manage on the later part, but i need to know if the above components are enough so i can purchase them to start atleast and then explore about further requirements.


Ashok Srinivasan.


No way.

The speed of sound in air is 343.2 m/s and you are looking for a resolution of 0.001mm, or 1 micrometer (10^-6 m). So the time resolution is t=d/v=10^-6 / 343.2 = 3 nanoseconds. There's no way the Ping))) or the Arduino have that kind of resolution.

Besides, ultrasonic reflection is not going to focus a pinpoint beam of sound on a spot on the surface. You are going to get gross reflections from a large area.

I'd look into laser measurement. Super-precise tools like atomic force microscopes or scanning tunneling microscopes will definitely give you your resolution (usually better than 1 nanometer) but at a very high price.

Need a custom shield? Let us design and build one for you.


For a metal surface a capacitance distance sensor would be an option I believe.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


Some form of laser parallax, but not Arduino territory.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.


Thank you guys Rugged, Mark and AWOL for your time to answer my query.

I do not know if my question is stupid, but i am curious to ask it. Suppose i keep my object at 1m distance, then the distance for the wave to reach the object and come back will be totally 2 meters.

Since i am dealing with millimeters with decimal places like 0.001mm, I would like a clarification with the below sample scenario.

Speed of Sound = 334 m = 334000 mm

Point 1

Total Distance to be travelled by the wave = 2m = 2000mm

Time taken in Seconds = 2000 / 334000 = 0.0059880239520958

Time taken in Milli Seconds = 5.9880239520958

Time taken in Micro Seconds = 5988.0239520958

Now the sensor is moved by 0.1 mm horizontally and parallel with the surface and the vertical distance between the sensor and the surface increasing by 0.001 mm,

Then it will be

Point 2

Total Distance to be travelled by the wave = 2m(roughly) = 2000.001 mm

Now the time taken in Seconds = 2000.001 / 334000 = 0.0059880269461078

Time taken in Milli Seconds = 5.9880269461078

Time taken in Micro Seconds = 5988.0269461078

Now the difference between time taken for Point 1 and Point 2 in micro seconds is  = 0.002994012

Hence i thought i will use these value of differences to analyze the surface initially and monitor the same area often to see how the surface changes(i mean becoming flat).

So this was the basic idea for which i thought will use the Arduino board and the ping sensor. Please feel free to correct me if i am wrong. Also what are the pitfalls in this technique. To  my understanding one pitfall i could see is the double numbers. But i could see that arduino supports Double values too http://www.arduino.cc/en/Reference/Double.

I am planning to get the data from the sensor and paint a graph in Flash. Since this is the objective i thought this approach will help solve the problem.


Ashok Srinivasan.


micro seconds is  = 0.002994012

Or, written in more normal terms, just short of 3 nanoseconds (333MHz).
On a processor which executes instructions in 62.5 nanoseconds (16MHz).

40 kHz ultrasound (25microsecond cycle) has a wavelength in air of around 8mm.
You're looking for a resolution of finer that 1 / 8000th of a wavelength.
It is hard to get most common ultrasonic transducers to transmit fewer than about ten or twenty cycles.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.


Thanks AWOL and KE7GKP.

Fine the scope of the project is to analyze the grinding wheels. This is needed to find when a Grinding Wheel needs to be Dressed. Which means after a prolonged grinding process the metal dust gets clogged into the gaps between the abrasive layer of the grinding wheel and thus becomes smooth. Thus it needs to be dressed to make it rough again. This is the requirement.

My friend wanted to use UltraSonic as the sensor for this project. He also gave me the original idea about measuring distance between the grinding wheel circumference surface which would be ideally be around 6 - 7 cms. So this device would constantly watch the surface by 0.1mm increments and check if the surface has become flat. When it gets nearly flat it informs the user to dress up the Wheel. This is the holistic idea.

Regarding other Microcontrollers which can execute instructions at a faster speed, do you have any suggestions?


Ashok Srinivasan.


For a practical and economical solution, ultrasonic measurement of actual surface roughness just isn't viable. Perhaps rather than measure the actual surface roughness, you could think about measuring some other property that indicates it that would be a lot cheaper to measure? As a couple ideas off the top of my head;

e.g. - how well it reflects light (a smooth surface will probably reflect it well, whereas a rough surface will scatter it)
Have an LED incident on the surface, and a very directional photosensor, and the signal from the photosensor indicates the smoothness of the surface.

-a comparison of power consumption and structural noise (a smooth grinding surface will probably have little structural noise for the same torque)
Have a piezo mic on the chassis of the machinery and measure the power. If the piezo signal is low amplitude at a high power consumption, it probably isn't grinding well.

Good luck


Hey frankstrudel,

Great and hats off to your idea. Let me try convincing my friend about this. But before that for clarity sake i wish to ask about the setup. What you mean is keeping a light source at a specified angle to the object where the light will reflect and fall on the photoelectric cell aligned at an angle on which will be on the line of expected light falls rite?

Hence in that case monitor the intensity of light falling on the photocell continuously and observe the data to make decisions. It would be of immense help if you can point to some links where i can have a look at the systems already established. Meanwhile i am also trying to google around with the keywords based on your approach. In any case a direct point will be of a great use.


Ashok Srinivasan.


photoelectric cell

I wouldn't base any google search on that term.
Photocells are usually taken to be light-dependent resistors (LDRs), which are way too slow for this kind of thing.
Try photodiode or phototransistor.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.


Googling 'surface roughness reflectivity sensor' found me these, which I think should be of some aid in understanding the problem;



Honestly didn't know these existed, just seemed to be an easy way to do it... you just need to build/calibrate one to work with the grinding wheel specific scenario you have.



I should first thank you all for staying with me all this time. Now going ahead with the photocell technique, it changes resistance with light. Now calculating the resistance with the light will gave me a picture of the state of the wheel. But for clarity sake look at the below picture and let me know if the setup should be like it.

Also to my understanding the approach is all about reading the resistance continuously and analyze the surface rite?


Ashok Srinivasan.



The first link has some interactives which gives me a fair understanding of the light scattering technique. The second link was more of a product description but has lead to new way of looking at the problem.

Now i am yet to get the Arduino Board in my hands. It will probably arrive tomorrow. As a first step i want to analyze the resistance in the photocell with a grinding wheel and would analyze the data. If it gives me a ray of hope then will think of arranging a bunch of photocells since they are cheap to experiment with.


Ashok Srinivasan.


You'll have to have some way of negating changes in ambient light as well.


Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131