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.
   70   71   72   73   74   75   76   77   78   79   80