TinkerKit Gyroscope 2 Axis sensitivity 1X Overview A gyroscope is a device that measures orientation. It is very common in consumer electronics such as portable electronic devices and video game controllers to detect movement and rotation. Output: This module outputs 0V to 5V on one of its two signal pins when its angle is changed (e.g. is moved). The value is approximately 2.5V when there is no angle change in the X or Y axis. When you connect this module to the input on an Arduino using the TinkerKit Shield, you can expect to read values between 0 to 1023 while changing the angle of the module. Module description: on the board you ll find a green LED that signals that the module is correctly powered. The module is based on the LPR5150AL by ST Microelectronics, and is a two-axis gyroscope. This version of the module outputs the 1X pins on the chip. For more information about this please have a look at the datasheet. This module is a SENSOR. Each connector is an OUTPUT which must be connected to one of the INPUT connectors on the TinkerKit Shield. Code Example /* TinkerKit Gyroscope T000060-64 * * This sketch shows how to read this 2-axis gyroscope, * turning in a given angular velocity and then converting it * in the simplest way in an angular position (/inclination). * * Connect: the X-axis to the Analog Input Pin 0 (I0) * the Y-axis to the Analog Input Pin 1 (I1) * Optional: connect a servo to Analog Output Pin 9 (O2) * * created by Federico Vanzati / f.vanzati arduino.cc * in September 2011 * * inspired from www.arduino.cc/playground/Main/Gyro * by eric barch / ericbarch.com */ include <Servo.h> // Pin used in this example define SERVO 9 define X GYRO 0 define Y GYRO 1 define ADCresolution 4.89f // = 5000mV/1023counts: Arduino analog pins resolution expressed in mV/count define Sensitivity 0.67f // mV/dps sensitivity of the sensor, took from datasheet (4x output mode) // Conversion coefficient, we do here because is a constant so we ll not do the calculation every loop define K ADCresolution/Sensitivity // the constant define nrSamples 6 // Number of samples that we take for each measure Servo myservo // create servo object to control a servo // a maximum of eight servo objects can be created // Timing variables unsigned long time, sampleTime = 12 unsigned long printTime = 0, serialRefresh time = 500 float deltaT = (float)sampleTime*nrSamples/1000 //Gyroscope variables int roll zeroVoltage, pitch zeroVoltage int roll rawADC nrSamples , pitch rawADC nrSamples // store 3 values...just to avverage float roll rate, pitch rate // float roll angle = 0, pitch angle = 0 int c=0 // just a counter to count the samples int pos // variable to store the servo position