Gyor Sensor
Output : Analog DC voltage centered at about 2.5VDC
Rate Range : +/-100 deg/sec
Scale Factor : 20mV/(deg/sec)
Bias (neutral) : 50% of Vdd
Number of Axis : 1
Bandwidth(-3dB, -90deg) : 10 Hz
Dimensions : 29 x 18 x 29 mm
Power supply (Vdd) : 5VDC +/-250mV
Current dissipation :  less than 50mA(150mA for initialization
Transformation of  Measurement Value
    CRS03-02 measures angular velocity(omega) and outputs the measurement value as analog DC voltage(Vo). The relation between omega(deg/s) with Vo(V) is given as follows.
 
omega = (Vo-2.5)/0.02
 
Therefore Vo=0.5/2.5/4.5(V) correspond to omega=-100/0/+100(deg/s).
 
How to Read Output Voltage by NXT Brick
    The output voltage range of CRS03-02 is [0(V), 5(V)]. To read the voltage, we use the input port of the NXT brick as AD converter(5V,10-bit). The relation between raw sensor value(u, 10-bit) with output voltage(Vo) is given as follows.
 
Vo = (u/1023)*5
 
Power Supply Problem
    Since CRS03-02 requires 5VDC(150mA) power supply(Vdd), we have to consider how to supply the power from NXT brick to the gyro sensor. From the hardware developer kit, we see that the NXT brick can supply its battery power from the motor port.
socket for
gyro sensor
socket for
NXT input port
socket for
NXT motor port
voltage regulator
    The circuit above consists of a voltage regulator (TA4805S, Toshiba), two condensers, two RJ11 sockets, and a socket for gyro sensor.  The regulator drops the output voltage of the NXT motor port to 5V, and supplies this regulated voltage to the gyro sensor. While the output voltage of the gyro sensor is transfered to the NXT input port by this circuit. The structure of the circuit is shown below.
Sample Code(RobotC)
 
float get_angular_velocity(){
    float omega_rad_per_sec, omega_deg_per_sec, u;
    u = (float) SensorRaw[S1];                   // sensor port 1 is used for CRS03-02
    omega_deg_per_sec =(u/1023*5 - 2.5)/0.02;    // angular velocity(deg/s)
    omega_rad_per_sec =omega_deg_per_sec/180*PI; // angular velocity(rad/s)
    return(omega_rad_per_sec);
}
 
task main()
{
    float omega;
    motor[motorA] = 100;    // power supply for voltage regulator
    while(1){
        omega =get_angular_velocity();
    }
}
 
Circuit