High Level Design
Our first step in the journey into VPspace begins with a diagram. The diagram is drawn for a general case of strings with length a and b, and we define the Cartesian coordinate system referenced at the upper left stepper motor with inverted ycoordinate, for convenience of derivations (see Figure 1). With this system in place, we may proceed to come up with a mapping from Cartesian coordinates to string lengths, but more specifically we can come up with differential changes in the respective strings that give rise to differential changes in the xcoordinate and ycoordinate at a given point, and for a given function. Figure 1: VPspace
It's rather amazing how conveniently the math works out! Having made these relations we have accomplished a substantial part of design. From here if we can store the values of the current lengths of each string and the current x and ycoordinate in the referenced Cartesian coordinate system, we thereby have all the information necessary to turn both motors the number of times required to satisfy the equations. The remainder of the design becomes all user interface. We decided that the data necessary to draw objects will be acquired from keypad entry, and communication to the user will occur via an LCD display. We have a sketch of what we originally conceived of as the entire working system. Our final product ended up looking remarkably similar to this initial vision. Figure 2: The Sketch
