Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. import lejos.hardware.port.SensorPort;
  2. import lejos.hardware.sensor.EV3GyroSensor;
  3. import lejos.robotics.SampleProvider;
  4.  
  5. public class GyroDrift {
  6.  
  7. private final static int SAMPLE_AMOUNT = 10;
  8. private final static int TIME_INTERVAL = 20;
  9. private static int offset = 0;
  10. private static EV3GyroSensor gyro;
  11.  
  12. public static void CalibrateOffset() {
  13. SampleProvider getrate = gyro.getRateMode();
  14.  
  15. float[] level = new float[10];
  16. int avg=0;
  17.  
  18. for (int i=0; i<SAMPLE_AMOUNT; i++) {
  19. getrate.fetchSample(level, i);
  20. }
  21. for (int i=0; i<SAMPLE_AMOUNT; i++) {
  22. avg+=level[i];
  23. }
  24. offset = avg/SAMPLE_AMOUNT;
  25. }
  26.  
  27.  
  28. public static int getCorrectAngle() {
  29. float[] level = new float[0];
  30. SampleProvider getrate = gyro.getRateMode();
  31. getrate.fetchSample(level, 1);
  32.  
  33. int rate = (int) level[0] - offset;
  34. int angle = rate*TIME_INTERVAL;
  35. return angle;
  36. }
  37.  
  38. public GyroDrift() {
  39. gyro = new EV3GyroSensor(SensorPort.S1);
  40. }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement