Code for Cartographer's Distance Measuring Map Tool


#define ROTATION SENSOR_1
#define RESET SENSOR_2

int DISTANCE = 0 ;

/* This only works with the RCX 2.0 firmware. */

task main() {
    SetSensor( RESET, SENSOR_TOUCH ) ;    
    SetSensor( ROTATION, SENSOR_ROTATION ) ;
    ClearSensor( ROTATION ) ;
    SelectDisplay ( DISPLAY_USER );
    SetUserDisplay( DISTANCE, 2 ) ;
    while ( true ) {
        if ( RESET == 1 ) ClearSensor( ROTATION ) ;
    	/* The diameter of the wheel is 3cm, there are 16
    	 * clicks per revolution of the rotation sensor, and
    	 * the gearing is 1:3 so one click correponds roughly
    	 * to (3 * 3.14) / 48 or approximately .19625cm.
    	 * The display assumes two decimal places so the 
    	 * following should display the distance correctly. */
	DISTANCE = 196 * ROTATION ;
    }
}