radio tag tracking with LCD and port extender

I've been working on an Arduino project that performs distance and location tracking of a remote tag. As it uses radio signals it can be used indoors where GPS solutions would fail.

It uses a Loc8tor Lite device to do the distance and location measurement; it has two stepper motors controlled by the Adafruit motor shield, to move the device in 3 dimensions and displays results on a Liquid Crystal Display.

The project also includes a 'port extender': this uses a shift register to convert 3 ports on the Arduino into 8 logical ports; a modification of the Liquid Crystal library is required, which replaces the digitalWrite() call with my own version. Will post video soon.

Here is the video: Arduino radio tag tracking, motor shield stepper motors and LCD display with port extender - YouTube

Really interesting stuff, whats the max effective range of the radio tracker? Any reason you used stepper motors over servos?

The documentation says 122m with clear line of sight but I don't get anything like this as I'm having to measure the piezo sounder output to determine distance, which proves not to be too accurate as the distance increases. I calibrated the signal up to about 6m. I really need to find where to take the feed that drives the sounder.

To be honest, I got it into my head that servo's were for spinning so thought steppers were the best bet for this project. You can see though that the movement is not that smooth so when I get some time I will see if it works better with servos.

How are you reading the Piezo output?

Getting something reliable out of the Piezo sounder signal was the most problemtic aspect of this project. I tried lots of things, measuring distance between peaks, magnitude and frequency at different distances - in the end, the most reliable was to average thousands of readings (I used 4000 consecutive readings); the higher the average, the further away the tag is.

I then calibrated readings against actual distances and worked out a basic formula (a sort of inverse square) to convert reading to distance. I would dearly like to find the feed that the device gets prior to piezo sounder - I think it would be more accurate and much faster.

Have you considered converting the digital piezo signal into an analog signal with an additional circuit? Not sure if it would be any more reliable but could be worth looking in to.

I've put more details of this project and all my Arduino projects on my website http://www.timegalore.co.uk

this particular project is held here:

There is more on the background of this project with further images and
the code. Any questions let me know.

I'm not entirely clear on how the Loc8tor works but could you measure the round trip time for distance?

Not sure either, it's a proprietary product; I was guessing signal attenuation but not sure. Would love to know more about the design at least to avoid needing to work out distance from the piezo signal