CSC 161 Grinnell College Fall, 2013 Imperative Problem Solving and Data Structures

# Sensors for the Scribbler 2 Robot

A Scribbler 2 robot has numerous sensors for detecting the world, and the MyroC library provides function calls to obtain data from the sensors.

The following figures indicate which functions reference which sensors.

## Scribbler forward

Sensor Set Vector Function Text Functions Number Functions Values Returned Comments
Light Sensors
(really darkness sensors)
int vals[3]
rGetLightAll(vals);
rGetLightTxt("left");
rGetLightTxt("middle");
rGetLightTxt("right");
rGetLightNum(0);
rGetLightNum(1);
rGetLightNum(2);
bright light returns values near 0;
dark areas return large integers (about 65,000)
bright, direct light needed for small-value results

IR Scribbler Sensors int vals[2]
rGetIRAll(vals);
rGetIRTxt("left");
rGetIRTxt("right");
rGetIRNum(0);
rGetIRNum(1);
output 0 indicates no obstacle;
output 1 indicates obstacle
light must reflect from emitter to receiver, so obstacle must be a 4-6 inches away

## Fluke forward

Sensor Set Vector Function Text Functions Number Functions Values Returned Comments
Obstacle Sensors int vals[3]
rGetObstacleAll(vals);
rGetObstacleTxt("left");
rGetObstacleTxt("middle");
rGetObstacleTxt("right");
rGetObstacleNum(0);
rGetObstacleNum(1);
rGetObstacleNum(2);
values near 0 indicate no obstacle (no light reflected from emitters)
large integers (near 6,000) indicates obstacle
value returned depends upon battery strength and output; level of emitters (set by rSetIRPower(level), where level in range 0, 255)
• values under 1000 are likely to imply an obstacle
• values over 5000 are likely to imply no obstacle
• values between 1000 and 5000 may not give definitive results