Grove-Single Axis Analog Gyro
The Grove – Signal Axis Analog Gyro is based on an angular velocity sensor (Murata-ENC-03R) that uses the phenomenon of Coriolis force. It can only measure the X-axis angular velocity, which is different from other 3-Axis gyro, but with a higher speed. It can be used for the position control and attitude control like the self-balanced 2WD.
Model: SEN05091P
Feature
Input Voltage: 3.3V/5V
Standard Grove Interface
Light Weight
High Speed
Measure X-axis Angular Velocity
Demonstration
With Arduino
The module detects one-axis rotation with analog signal. High-pass filter and low-pass filter circuit are applied to reduce the temperature drift and suppress the output noise. Before the measurement of the angular velocity, a reference value(the sensor output at Angular Velocity=0) is required. This value is 1.35V in default. But in order to get more accurate reference values, before the measurement,a calibration is necessary. In this calibration, the output voltage when angular velocity =0 been sampled 200 times, and then the average of these data will be treated as the reference value.
1.Connect it to A0 port of Grove - Base Shield, of cause any pin of the analog pins would be OK.
2.Plug the Grove - Base Shield into Arduino/Seeeduino and connect them to PC using a USB cable.
3.Upload the below code.Please click here if you do not know how to upload.
int sensorPin = A0; // select the input pin for the sensor
float reference_Value=0;
int sensorValue = 0; // variable to store the value coming from the sensor
void setup()
{
int i;
float sum=0;
pinMode(sensorPin, INPUT);
Serial.begin(9600);
Serial.println("Please do not rotate it before calibrate!");
Serial.println("Get the reference value:");
for(i=0;i<1000;i++)
{
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
sum += sensorValue;
delay(5);
}
reference_Value = sum/1000.0;
Serial.println(reference_Value);
Serial.println("Now you can begin your test!");
}
void loop()
{
double angularVelocity;
sensorValue = analogRead(sensorPin);
angularVelocity =((double)(sensorValue-reference_Value)*4930.0)/1023.0/0.67; //get the angular velocity
Serial.print(angularVelocity);
Serial.println("deg/s");
Serial.println(" ");
delay(10);
}
- Now, it is time to the calibration. Put the sensor on your desk horizontally ,and then press the Reset button on the Seeeduino, and then Open the serial tool:
- As you see the "Now you can begin your test", that means the calibration done. You can use the sensor now. Rotating direction can reference the following picture:
With Raspberry Pi
You should have got a raspberry pi and a grovepi or grovepi+.
You should have completed configuring the development enviroment, otherwise follow here.
Connection
- Plug the sensor to grovepi socket A0 by using a grove cable.
Navigate to the demos' directory:
cd yourpath/GrovePi/Software/Python/
- To see the code
nano grovesingleaxisanaloggyro.py # "Ctrl+x" to exit #
import time
import grovepi
#Connect the Grove Single Axis Analog Gyro to analog port A0
#SIG,NC,VCC,GND
sensor = 0
grovepi.pinMode(sensor,"INPUT")
#calibration
print "calibrating..."
sum = 0
errors = 0
for x in range(0, 100):
try:
#Get sensor value
v = grovepi.analogRead(sensor)
sum += v
#time.sleep(.05)
except IOError:
print "Error"
errors += 1
if errors == 100:
print "unable to calibrate"
raise SystemExit
reference_value = sum / (100 - errors)
print "finished calibrating"
print "reference_value =", reference_value
#ready
while True:
try:
#Get sensor value
sensor_value = grovepi.analogRead(sensor)
#Calculate angular velocity (deg/s)
velocity = ((float)(sensor_value - reference_value) * 4930.0) / 1023.0 / 0.67
print "sensor_value =", sensor_value, " velocity =", velocity
time.sleep(.5)
except IOError:
print "Error"
5.Run the demo.
sudo python grovesingleaxisanaloggyro.py
Schematic Online Viewer
Resource
[Eagle] Grove - Signal Axis Analog Gyro Eagle
[PDF] Grove - Signal Axis Analog Gyro Sch
[PDF] Grove - Signal Axis Analog Gyro PCB
[Datasheet] File Signal Axis Analog Gyro datasheet
[Code] Demo code on github
Tech Support & Product Discussion
Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.