package com.cellbots; public class Balancer implements OrientationListener { PulseGenerator pulseGenerator; ServoTester servoTester; int maxLean = 30; int deadBand = 0; // OrientationManager orientationManager; int leftCenter, rightCenter, maxSpeed; float requestedPitch = (float) 90.0; long lastTimestamp; float degPerSecond; public Balancer() { // this.orientationManager = new OrientationManager(); } public void startBalancing(PulseGenerator pulseGenerator, ServoTester servoTester) { this.pulseGenerator = pulseGenerator; this.servoTester = servoTester; this.leftCenter = 0;//pulseGenerator.getLeftPulsePercent(); this.rightCenter = 0;//pulseGenerator.getRightPulsePercent(); if (Math.abs(leftCenter - 50) > Math.abs(leftCenter - 50)) { maxSpeed = Math.abs(leftCenter - 50) - deadBand; } else { maxSpeed = Math.abs(rightCenter - 50) - deadBand; } if (OrientationManager.isSupported()) { OrientationManager.startListening(this); } } public void stopBalancing(PulseGenerator pulseGenerator, ServoTester servoTester) { if (OrientationManager.isListening()) { OrientationManager.stopListening(); } } public void onOrientationChanged(float azimuth, float pitch, float roll, float timestamp) { // TODO Auto-generated method stub Float pitchError = requestedPitch - pitch; if(pitchError > maxLean) { //pulseGenerator.setLeftPulsePercent(leftCenter); //pulseGenerator.setRightPulsePercent(rightCenter); return; } } }