|Google Nexus 7 Running an Early Version of DRO App|
Even such basic DRO proved to be amazingly useful, but I quickly started compiling a list of features I would like to add. Soon it became obvious that the little Arduino board with six buttons would not be able to provide the “bells and whistles” I wanted. After playing with different microcontrollers, input designs and display ideas I decided to scrap the original plan and take a different approach. Instead of the traditional self-contained unit, the new design will consist of two separate parts: Arduino-based driver used to read the scales and an Android tablet as the main processor and user interface. The two devices will communicate with a simple serial protocol using an inexpensive Bluetooth modem.
|Parts required to make a wireless reader|
for Grizzly iGaging scales using Arduino Uno
Encoder DriverReading the iGaging scales or other digital calipers is a fairly simple exercise. The driver would need to read three scales, either sequentially or in parallel, convert this data into “ticks” and send the result to the “mothership” over UART. This doesn't require much processing power, but precise control over the timing is critical. While Arduino is an obvious choice due to the availability and ease of use, virtually any microcontroller with 6 available general purpose I/O ports will be up to the task.
The obvious benefit is that the driver can be built for as little as $20 by using MSP430 Launchpad, an old “USB” phone charger, and an inexpensive BlueTooth modem off eBay. While the low cost is definitely a good thing, there is an even more important benefit: this approach provides a layer of abstraction between the encoder hardware and the DRO software. As long as the positions sent to the table are in the expected format, the hardware used to read the position is largely irrelevant.
DRO DisplayOnce the data is read from the encoder, it needs to be post-processed. Ticks need to be converted to standard measurement units (inches, millimeters, palms etc.), predefined offsets applied to zero-out the origin and the results formatted for the display. Most of those operations require floating point multiplication and division. Unfortunately, the microcontrollers available to hobbyists fall seriously short when it comes to floating point math. Application processors that come in modern Android tables, on the other hand, have gobs of power and handle these tasks very well.
Even more important benefit of using a tablet is the large backlit touch screen. Besides being easy to read and interact with, graphical touch screens offer awesome flexibility. The user interacts with the DRO the buttons can be added or removed; the whole display can be resized or rearranged; complex functions can be presented as separate views etc. Instead of using multi-button sequences to access common functions, you can have a user-friendly graphical UI at your fingertips. Finally, software installation becomes virtually trivial using Android market or a standalone app installer utility.