Soundboxen are songs wrapped up in objects, originally inspired by Stockhausen’s Zodiac music boxes. Some are simple music boxes; #1 was an implementation of Riley’s In C (w/tempo knob). Others are instruments constrained to a certain song. #3 is a jukebox of bytebeat; #4 is an algorithmic radio station in a box. This is a great example of what you can do with a Fluxamasynth music generator; read below the fold for the code.
I’m a fan of experimental composer Terry Riley (try some of his organ work like Shri Camel to get started), so it seemed natural to try to adapt his 1964 algorithmic composition “In C” for the Arduino with our Fluxamasynth Shield.
A month or so ago we decided to carry the Maxbotix’s line of ultrasonic rangefinders (the MB1010, MB1013, and the MB1200 are the models we have currently stocked). The MB1013 in particular caught our eye in its claim to have a resolution of 1mm, so we decided to put it to the test. We lashed together a test rig with two panels (of plywood) that are raised and lowered by three drive shafts of 1/32″ threaded rod (pictured below).
The board has two holes in the opposite corners that make mounting to a surface a no-brainer. We quickly proved out the analog output using a 5v power supply and a multimeter, but we wanted the most precise measurement. Opting for the serial (digital) output reading with an Arduino- both methods are covered in the Maxbotix tutorial. For ease of documentation, we hooked up the Arduino to an LCD driven by our LCD117 board, for an easy three wire interface to the LED. This was just handy way to get feedback without a laptop or desktop. Actually the USB cable in the picture below snakes about 10 ft to the nearest desktop in our shop.
Our threaded rod was 32 threads per inch, which is equivalent to 24.4 mm, so one thread represents 32 threads per inch / 25.4 mm per in. or 1.25984 threads per millimeter. This allowed us to index the jig 1.25 turns per unit and not have a lot of error, with an error of .246 threads per 25 turns. In any case we indexed all the way through one inch,
Our results showed that it does indeed have a 1mm resolution, meaning that 1 1/4 turns did actually correspond with a Maxbotix output of 1mm! Our algorithm kept the readings consistent with the range up until around 620mm – where the sensor’s output started to report smaller values than the measured distance, ending up 8-10mm ahead of where it was supposed to be at 582 mm. Maxbotix cuts off the serial output of the sensor at 300mm (11.8″) so one could speculate that the error in the electronics started to be a factor in the measurement, which lead to Maxbotix to cut off the specification at 300mm.
Check out the raw data here.
The max range and cone shapes vary from the sensors we have available. They could be used for things like a parking sensor (found in most modern cars), self-navigating robots, or a suit that helps you navigate blind. Maxbotix has done a great job of taking ultrasonic measuring technology and pushing itas far as they can in accuracy, range and sensing properties (sensing cones) in these very low-cost sensors. Here’s a line up of the models we carry at Modern Device.
MB1010 LV-MaxSonar®-EZ1 – Least Expensive, good starter ($27.97)
MB1013 HRLV-MaxSonar®-EZ1 – Highest Resolution (1mm)
MB1200 XL-MaxSonar®-EZ0 – Longest Range (300in)
We got in contact with the good people at Maxbotix and showed them our research. They were pleased to see us exhibiting their equipment, and gave us some feedback on our setup…
First, I reviewed your test setup and thought you did a pretty good job. As such there is a variable that can make a big difference in your testing results. This is the temperature compensation and the location of measurement. Going though a vertical column of air is known to typically have temperature variation from the top vs the bottom. This change in temperature can affect the temperature compensation of the sensor and lead to some inaccuracies. For best accuracy, it is recommended to use a MaxTemp mounted half way between the target and sensor so that you have the most accurate temperature reading. Even one or two degrees c will have an effect on the reported range.
You can view more on the MaxTemp at this link http://www.maxbotix.com/Ultrasonic_Sensors/MB7955.htm.
Here’s how to use the Lots of Pots Board for the Raspberry Pi. The daughterboard (or shield; what are we calling Raspberry Pi add ons these days?) sits on top of the Raspberry Pi and breaks out the various GPIO pins in a useful and labeled manner. It also has an 8 channel MCP3008 analog to digital converter on board, which is hooked up to the hardware SPI pins on the GPIO header. This tutorial will describe the features of the board and cover how to read analog inputs from the ADC.