‘You don’t learn to walk by following rules. You learn by doing, and by falling over.’ –Richard Branson

Being a classically trained Mechanical Engineer, it took a several hundred hours of self-study to become productive at application development. In hind sight it seems ridiculous that companies would fund this learning adventure, but when confronted with one small limitation at a time, it seems that persistence can yield remarkable things.

There really isn’t a great platform to share this body of learning:
• each facet is so highly specific that it is unlikely to be reused without modification;
• the technology (languages, libraries, techniques, …) are deliberately out dated as a the goal should be to develop timeless platforms;
• by industry standards these tools are generally incomplete (exception handling, error checking, dimension size verification, …) as the preferred strategy when conducting scientific measurements is to abandon the operation and point to exactly the source of the detected problem vs continuing with incomplete or erroneous data.

Throughout this work a collection of scrapped hardware components will be used to provide a consistent context and to protect IP related to any specific project that this work may have originated from.

As shown, this instrument will be a basic Optical CMM comprised of a motion system, 2D camera, and a 3D sensor. With these tools both images and height maps can be generated. Once the data has been collected it can be used in a multitude of ways, but as of now the focus of this work is to demonstrate and share the programming process including hardware interfacing, integration, graphic display, HMI/GUI, ect.. The successful demonstration of these will invariably include programming fundamentals which will for completeness only be covered briefly.

Application Development Introduction: What is an application

Application Development Introduction: What is an application