Subsystems

Detection

When the user writes on the whiteboard, the position will be calculated using an array of ultrasonic and infrared transmitters attached just behind the tip of the pen. The modules at each corner will detect the time delay between the infrared and ultrasonic pulses and calculate the distance. Combining the readings from four sensors will give redundant coverage and fault tolerant positioning. The same positioning techniques will be used to track the system's pen as it draws, and to determine the relative positions of the modules.

This scheme has been validated in papers like this and this. Both papers have shown that sub-centimeter precise tracking is possible for fairly large areas (larger than our whiteboard!).

Actuation

The drawing system will have a harnessed pen suspended from cables that is used to draw on the board. The cables will be attached to steppers at each corner module through a tensioning rod. These modules will be able to control the tension on the cable allowing them to move the harness. To extend and retract the pen, we will use a Sarrus linkage mechanism. Using a control loop we will be able to determine the exact amount of tension to keep on each cable in order to hold the pen steady at either a retracted or extended state.

In a simulated system on a 60" by 40" whiteboard, we have determined the optimal cable tensions at each point in order to maintain an average 2oz and 6oz force per cable. On these charts we also place a contour line showing where the required force exceeds the maximum force available from the steppers. This reflects the possible working area on the board. The colorbar to the right of each image indicates the colors for the tensions in ounces.

 
2oz Module Tensions

 
2oz Total Tension

 
6oz Module Tensions

 
6oz Total Tension

 
In order to support movement, there are two approaches we will test: using a control loop to control the tension on each cable at each point in time; or, using a control loop to control the amount of cable let out at each point in time. While controlling the tension at each point in time may produce more accurate results, we will be limited by the acceleration profiles of our steppers. In the end, this may produce more unstable results. On the other hand, controlling the amount of cable let out at each module is very straightforward, however it may not give us as much control over where the harness is.

As a first step in determining which method to use, we have simulated each method in MATLAB and compared the results. Currently the model does not take into account maximum stepper speed, however this can be accounted for by a simple time dilation. Here are the results of drawing a spiral over 8 seconds:

 
Stable Spiral

 
Stable Spiral Cable Lengths

 
Stable Spiral Cable Tensions

 
Notice how the tensions never exceed 5oz. In the model, the maximum cable tension that the steppers will maintain is 14oz. If we try to speed up the drawing of the spiral so that the required forces exceed 14oz, you can see that the drawing destabilizes due to the higher cable tensions:

 
Unstable Spiral

 
Unstable Spiral Cable Lengths

 
Unstable Spiral Cable Tensions

 
Both of these simulations worked by precomputing the optimal cable lengths that induce the correct force to produce the proper accelerations required to reach the desired position. Overall this is a fairly computation heavy process. An alternate (and naive) method would be to just let out the amount of cable equal to the desired distance of the harness from each module. We find that this produces significant oscillations due to not taking into account the tensioning springs:

 
Naive Spiral

 
Naive Spiral Cable Lengths

 
Naive Spiral Cable Tensions

 
In the end, our control loops do not entirely reflect these cases, as these cases work by entirely precomputing cable lengths while the control loop would be actively managing tension and position. However, should the control loop be unstable, the first method presented may be an effective alternative.

Communication

In order to support each module coordinating its operation with the other modules, we require a high throughput, low latency network. This is especially important when we're detecting pen position as information from each module needs to be combined in order to determine the position of the pen. We have researched three possible solutions in an attempt to determine the one best suited to our needs.

 
Barebones Wireless Transceiver

 
Our first option is a plain RF transceiver such as the RFM12BSP pictured. This option would allow us to build our own protocol on top of a plain RF link. This would provide the best latency as there would be no protocol overhead, however it would introduce significant complication in order to implement error correction/retransmission if necessary. This would additionally be the cheapest option as the RFM12BSP is only $6.95.

 
XBee Transceiver

 
Another option is to use a premade solution such as the XBee wireless modules such as the one pictured. This would allow us to quickly develop the wireless network as the device operates upon a mature protocol that supports robust communication.

One issue we found in researching these is that the Series 2 does not support the fast broadcast mode that the Series 1 supports. The Series 2 is designed to act in a mesh network so when it tries to broadcast a message, it retransmits it three times and all receives also broadcast it three times in an attempt to reach all nodes on the network. Additionally it has been reported that this broadcast mode is very slow, which is not suitable for our needs.

Fortunately, the Series 1 XBee modules are still available and support a simple broadcast mode in which any module that hears the transmission accept it. This is much more suited to our needs. One disadvantage here is that the XBee modules all cost upwards of $20.