Page 75 - The Unofficial Guide to Lego Mindstorms Robots
P. 75
64
If you wanted to attach a temperature sensor to input 2 and measure Celsius values, you would do the following:
SetSensorType(SENSOR_2, SENSOR_TYPE_TEMPERATURE);
SetSensorMode(SENSOR_2, SENSOR_MODE_CELSIUS);
T he SetSensor() command, which I described first in this section, is a convenient way of specifying both an input type
and an input mode. Table 4-4 shows what types and modes correspond to the configurations that SetSensor() recognizes.
Table 4-4. Input Configurations, Types, and Modes
In put Configuration Input Type Input Mode
SENSOR_TOUCH SENSOR_TYPE_TOUCH SENSOR_MODE_BOOL
SENSOR_PULSE SENSOR_TYPE_TOUCH SENSOR_MODE_PULSE
SENSOR_EDGE SENSOR_TYPE_TOUCH SENSOR_MODE_EDGE
S ENSOR_LIGHT SENSOR_TYPE_LIGHT SENSOR_MODE_PERCENT
SENSOR_CELSIUS SENSOR_TYPE_TEMPERATURE SENSOR_MODE_CELSIUS
SENSOR_FAHRENHEIT SENSOR_TYPE_TEMPERATURE SENSOR_MODE_FAHRENHEIT
SENSOR_ROTATION SENSOR_T YPE_ROTATION SENSOR_MODE_ROTATION
Timers
The RC X has fo ur internal timers, numbered 0, 1, 2, and 3. They count in increments of 100 ms, or once every 1/10 seconds.
NQC includes two comman ds for interacting with the timers:
Timer(const n)
This returns the value of the specified timer, which s hould be 0, 1, 2, or 3. The number returned is the number of 1/10 seconds
since the timer was cleared.
ClearTimer(const n)
T his com mand resets the value of the given timer to 0. The timer begins counting up again immediately.
Random Numbers
NQC has a simple command for creating random numbers. Random numbers are often useful in robot programming. For
example, a robot that tries to drive around obstacles can easily get stuck in a corner if it always backs up and turns exactly the
same way to get away from an obstacle. A robot that backs up for a random amount of time and turns for a random amount of
time is less likely to get stuck in this way. The command for generating random numbers is:
Random(const n)
This command returns a random number between 0 and n.