I have seen these for a while and always just kept a tab on them but when the max series came out I just had to post it here. Its an ultrasonic sensor that simply blows vex away in terms of its features.
#25.1ft range
3.3V to 5V supply with very low average current draw
High acoustic power output
All interfaces are active simultaneously:
* RS-232 serial
o 0 to Vcc output range
o 9600 baud, 8-N-1
* Analog, (Vcc/1024) / cm
* Pulse Width
Real-time auto calibration and noise rejection for every ranging cycle
Calibrated beam angle
Object detection includes zero range objects
Readings can occur up to every 100mS, (10-Hz rate)
Free run operation can continually measure and output range information
Triggered operation provides the range reading as desired
Sensor operates at 42KHz
It seems like it is a really good candidate for use on a vex robot. I really don’t know why vex has made something like this yet, I mean their sensor works but it could be much better.
It packs way more features than a vex does and its just plain out better so for $20 more it seems to be well worth the cash in my opinion. The regular sensor uses the delay between the start and echo signal which can tie up the micro controller for that short time. This sensor can use many different ways like serial which alone is more than enough to make me buy it.
I think the most interesting part is the analog output. Vex should have done this because this results in using no interrupts and only 1 cable which would allow you to use as many sensor as there are ADC ports.
I download the cad models of the Vex sensor and measured the dimensions of it. Here is what I got
The base is 3.189 in long and 1.171 in wide which gives it a total surface area of around 3.734 square inches. (Minus the fillets in the cad models which might throw it off by a super tiny amount).
The one from Sparkfun is .785 long by .870 wide giving its base a surface area of around .683 square inches.
Height wise they are about the same however on the back of the Sparkfun sensor it looks like there is a metal part that sticks out the back a sizable amount. In total the one from Sparkfun is .989 in tall and the Vex is .807 in tall. So the Vex is slightly shorter but only by 0.182 inches.
So in the end the Vex sensor takes up about 5.35 times more surface area than the one from Sparkfun does mainly do in part to its large plastic casing. This would fit on the end of a robotic arm much better than the Vex one and would require less wiring (just one of the applications of a smaller sensor).
I am just waiting for Vex to produce something like this that’s smaller and has different interfaces like analog or serial!
We’ve used them with our FRC robots using the old IFI Robot controllers (essentially a VEX robot controller on steroids… the originally VEX units were intended to be low-cost training units for the full robot control systems) and the Maxbotix sensors work great. We used the analog input as that was easiest and offered more than adequate precision.
Serial is the most accurate then pwm and then analog. Serial contains the exact distance in centimeters, pwm is accurate but if your hardware cannot time the pulses perfectly it can be off, and analog works but if the distance is to great and the sensor has to scale a very large distance to a 10 bit analog resolution you will lose something. For this sensor though I think analog is just as accurate because the distance in centimeters would go form 1 to 762 not over 1023 or whatever the max 10 bit resolution is.
The purpose of multiple interfaces would be to give it the best compatibility amongst a group of micro controllers. Not all micro controllers have pwm ports, not all of them have ADC converters, and not all (but most) have serial connections. If a micro controller has 1 of the three then it can use this sensor. For example a few of the 8 pin attiny micro controllers have serial and digital pins but no ADC or pwm pins. In this case if the sensor was analog only then it wouldn’t work but if it had a serial interface then it could work with that micro controller.
Its easier to use and cheaper to make 1 sensor with many interfaces rather than make 1 sensor for each type of interface. This gives the sensor a much broader range of what it can be used with.