How about a clock instead of the voltage level?
Announcement
Collapse
No announcement yet.
Arduino based VDI!
Collapse
X
-
Nice. How many times have you started hunting, and when you get ready to quit find you have been at it for 2 hours and never noticed that? Not good when you are out on your lunch hour
How about a clock instead of the voltage level?
-
That graph is killer. Gotta see how you do that
I use one of these on the medical device I write the code for... wanted to do a graph like this, but could not find the characters. Wound up using user defined characters for some of the custom symbols, but never figured out a clean way to do graphs. This rocks.
Leave a comment:
-
Could you please post the schematic that you used?
I think the next evolution of this needs to be notch filters. I'm going to have to convert it to straight C though.
C++ is not really suitable for the micros I use, and I've never bothered with C++. I wish it was straight C.
Additional questions: it uses a menu system, where is the code for that?
Leave a comment:
-
I'd do an if-then-else chain rather then goto's.
But this is getting pretty good.
Now, you can take this and make a set of notch rejection cases as well.
Leave a comment:
-
I write C code for a living. I'm an embedded firmware engineer. I'll restructure the code a bit to get rid of the gotos.
But as he code sits now, it appears to me that
there might be an issue. You do a goto in the for loop. Depending on the compiler, that might result in the next execution of the for loop, in which case your count will be off, and your average won't be right
The 0515 code is a bit clearer
It still would be clearer if instead of the goto read in the for loop, you did a continue, and tracked the count of the good samples separately. In our product, I do a rolling average of 32 samples of our data. I chose a buffer implementation rather than a multiply. That is, I track the last 32 values, throw away the last one and recompute the average. This provides a good deal of smoothing, shortening the buffer makes it more sensitive. We use a bucket average like yours, for another part of the program, where I bucket average the same values.
THIS DANG THING WONT ALLOW FORMATTING AND INDENTING.
Each { needs to be indented 4 or 8 spaces. Don't know what is wrong with this input window, but I apologize for the non formatting...
sensorValuex = analogRead(sensorPinx); //Read the analog pin A0 and store it's value as sensorValuex (it will be between 0 and 1023)
sensorValuer = analogRead (sensorPinr); //Read the analog pin A0 and store it's value as sensorValuer (it will be between 0 and 1023)
good_count=0;
if (sensorValues > 5) && (sensorValuer >5) // only if the sensors are both > 5. do we do anything
{
// in the case of bad values, we just skip them, so the result is that when we exit this loop, we may not have 50 values.
// to keep the average accurate, you need to know how many good passes you made
for (int n = 0 ; n < 50 ; n ++) // starts a counter to read the sensors again in a loop 100 times
{
sensorValuex = analogRead(sensorPinx); //Read the analog pin A0 and store it's value as sensorValuex (it will be between 0 and 1023)
sensorValuer = analogRead (sensorPinr); //Read the analog pin A0 and store it's value as sensorValuer (it will be between 0 and 1023)
slope=sensorValuer / sensorValuex; // calculate X/R ratio and call it "slope"
if (slope==0)
{
continue; // this will force the loop to start the next increment
}
else
{
slopeTotals=slopeTotals+slope;
good_count++
}
}
}
//
// coming out of this, the good_count will be the number of samples that you actually used.
// I'd like to get this code into the arctan form, so we could have phase angles from - to +, as well as the numbers you have. This looks very much like it will work however.
/'
slopeAve = slopeTotals/good_count; // take all the slope values and average them.
Leave a comment:
-
I never had a commercial MD Piovra. Only see Ace250 of my friend. I think that is good. Searching opinions and videos, for the same price Eurotek pro seems way better choice for me. It response very fast respect garrett, sound is not "ding ding" without information like ace250...it is very informative, "responding FAST" and rich! Vdi seems really good. Obviously this is an enter level MD...but I consider this for a possible buy...
Before i link a video in my previous post. It was for alpha 2000. The model without vdi...
Eurotek PRO has vdi and cost only a little more than alpha 2000.
Leave a comment:
-
Hello Manny77,
thank you so much for your replay, i see the video you linked to me and ..... Oh my good !! ....
I think you are right on teknetics , what do you think of new model euro pro with 11 DD ?
I think this is a good metal, hope his VDI is valid.
Leave a comment:
-
Piovra1981, thank you for the compliments!
This is a VLF MD. For what I know, PI MD are very limited in metal identification.
Anyway you should know many things about MD and their working principles, and you should know very well about electronics before to build a not so easy project like this VDI.
My vdi has come after big experience building tgsl...his coil, his circuit...hours of reading in geotech forum. Using oscilloscope to investigate problems...to tune it...it was really a challenge for me! And I work in electronics!
And TGSL is the best treated machine here in geotech forums! Many people built it...many problems solved together. Years of discussion! And someone can't solve some problems anyway!
My VDI was not functioning from the first time... I follow the project very well but problems are insidious...behind the corner.
Some months to get it to work...Daren knows the story...
To add this vdi to garrett it should be reverse engineered like Daren said. Not so easy to understand a working principle of a MD! A schematic is not always clear.
PCB of garrett is SMD, with tiny surface mounted components...very little tracks and pads. Nearly impossible to work on it for amateurs...the risk is high: short circuits, unwanted removal of components and so on.
Arduino and display are very battery drain. You have to add an external battery to mantain a good operation time.
I think you should consider to change your MD rather to invest your time on this project.
Ace 250 mantains a good value in the time. You could sell it and buy another MD with numeric VDI, maybe teknetics eurotek pro:
Sorry but this is my honest opinion Piovra...
Leave a comment:
-
Hello,
your self made metal is fantastic, is a PI MD ? ( geotech members are mervellous )
my ace 250 is a good MD ( i use it from 3 years ) i found a lot of think with it.
i know my Ace has VDI (12 segments ), but i like to add one VDI meter 0-99 segments.
hope someone can help me ! ( i know it is an hard experiment ).
Leave a comment:
-
Hi Piovra1981!Originally posted by Piovra1981 View PostHello,
i just see your project: it is wonderfull.
do you think i can do for garrett ace 250 ?
In case can you help me for it ?
regards
matteo
I'm Italian too...
Garrett Ace 250 has already a VDI, it shows indicators on display based on internal numbers like Daren's one. Yes it has not graph but I saw it working not bad. My friend has one and he found many interest things! Working principle is the same. I don't think that this project will add something to your already good MD...
Anyway Daren Project is really wonderful! It works really really great even if I haven't yet tried in real soil.
This is my MD. Built entirely by me. From coil to circuits, boxes, cables, controls and everything else. Hard work from summer 2013 until now. Many many mods, test, experiment and finally this beautiful VDI project, working like a charm. I really like it!
Thanks to all Geotech user who contributed to make this project come true! Really kind and wise people here!
DIGI-Golden Sabre:
http://youtu.be/czV0hs6ikis
Leave a comment:
-
I don't know, if it can be done. In any case it will require full reverse engineering of Ace 250. I don't think I can help
Leave a comment:
-
Hello,
i just see your project: it is wonderfull.
do you think i can do for garrett ace 250 ?
In case can you help me for it ?
regards
matteo
Leave a comment:
-
Attached is a set of instruction of how to build TGSL Arduino VDI including the latest software. This algorithm is watching the X,R signals and after detecting the target it returns ID using the strongest sampled target signal; after trying multiple approaches this is the one that gives most stable results. It was also successfully field tested.
There are two params you can adjust but don't have to (min signal and sample averaging). After calibration (only one time after installing software) the VDI should "just work". VDI sound is OK but there is a lot of room for improvement.
New feature in this version is graph (yes; graph in the 16x2 LCD) of the signal strength. You will be able to judge object by looking at the graph. One or two nice humps ->small object (coin, ring, pull tab, etc) jagged graph -> foil, can; wide hump -> large object, etc...
Here is video to some tests; (sorry for poor quality):
(I don't use VDI sound, so its turned off on the video)
http://youtu.be/q2BznUWwAzs
TGSL-Arduino-VDI.zip
Daren
Leave a comment:
-
If you start the coversions from the tone trip - fine good science..
When to stop converting may be when the tone stops, or when the amplitude dips below the comparator level.
This may help? Rather than doing a set number of conversions.
Id guess commercial code would, during a hit above threshold, write x,r adc values to arrays.
You then have options for which data in the array to use, for simple machines with no gain control - ones who limit with large signals, maxed atod radings could be discarded in simple tests.
This would stilll give phase ID on large targets for example.
Leave a comment:
Leave a comment: