Ultrasonic module - DistoMatic

Looking to see if there’s any interest in these as well as suggestions.

To fill the niche of the discontinuation of the GHI Ultrasonic module, I’ve put together a couple Gadgeeter modules called DistoMatic. Driven by a request of Duke Nukem, there are 2 modules thus far - a sensor interface and breakout board.

The sensor boards are specifically designed for the Maxbotix HRLV-EZ (with connections for a temperature sensor) and LV-EZ modules. They use A+X/Y sockets on the Gadgeeter mainboards. I’m going to put together a final version some tweeks. Afterwards I’m going to make a Sharp IR interface modules. The small holes on the module are aligned for mounting on a servo horn.

The breakout board allows you to use multiple of these modules in a single A+X/Y socket. If there’s interest and I have the time, a future version may include an ADC to allow more than 3 sensor boards.

My CerbBee is .NET 4.2 so the initial code release will target that framework. I plan on updating another of my mainboards soon to 4.3, so shortly the code will be ported (should be pretty easy).

I don’t have a plug in for the Gadgeteer designer, but the code is straightforward to use:

Here’s the init code

DistoMatic.DistoMaticSensor snsr1, snsr2;
// Initialize the breakout board on socket #3 on the CerbBee
DistoMatic.DistoMaticG3 snr = new DistoMatic.DistoMaticG3(3);
// Startup a HRLV sensor on socket #1 on my breakboard
snsr1 = snr.InitializeSensor(1, DistoMatic.DistoMaticSensorTypes.MaxbotixHRLV);
// Sensor2 is socket #2 on the CerbBee directly and is a LV sensor.
snsr2 = new DistoMatic.DistoMaticLV(2);            

The code to read a module connected to the mainboard and a module connected to the breakout is exactly the same:

var val1 = snsr1.GetReading();
var val2 = snsr2.GetReading();

The code has 2 ways to read the sensor. One is to get a reading on demand and the other is to have a background thread read the value on a customized interval.

Both the code and hardware will be open and released soon.

Here is it in action:


Excellent, and love the servo horn fitting as that is a cool idea and I can see using it as a sort of ultra sonic radar for my rover.

Now these ultrasonic devices have mm accuracy and built in temperature correction which was something I needed for an experiment as the typical cm accuracy just wasn’t up to the task. Of course I’ll be very interested in the IR ranging as well.

Looking forward to having some of these in my Gadgeteer tool kit and if your looking for help with the 4.3 driver etc, I would be very happy to help.

The way I initially put it together allows for sharing of an Analog port, with multiple sensor types. This allows for resource sharing and flexibility, but it isn’t the most accurate ranging option they offer. In my unscientific testing (need to do some more), it was within an inch of distance - using a 8.5"x11" sheet of paper as a guide.

If max accuracy is needed, then I can setup an alternate version using either specific sensor chaining (better (see below)) or via RX/TX (best).

For myself I’d want the accurate distancing over resource sharing, but others might have a different need.

There’s no reason I can’t put together a Serial adapter board.