def __init__(self): self.motor_left = Motor(settings.PINS['motor']['left']) self.motor_right = Motor(settings.PINS['motor']['right']) self.encoder_left = Encoder.Worker(settings.PINS['encoder']['left']) self.encoder_right = Encoder.Worker(settings.PINS['encoder']['right']) self.mpu = MPU6050(0x6b) self.pid = PID() self.encoder_left.start() self.encoder_right.start()
def __init__(self): self.motor_left = Motor(settings.PINS['motor']['left']) self.motor_right = Motor(settings.PINS['motor']['right']) self.encoder_left = Encoder.Worker(settings.PINS['encoder']['left']) self.encoder_right = Encoder.Worker(settings.PINS['encoder']['right']) self.mpu = MPU6050(0x68) self.remote = RemoteControlServer(settings.pid_params) self.pid = PID() self.encoder_left.start() self.encoder_right.start()
def __init__(self): self.motor_left = Motor(settings.PINS['motor']['left']) self.motor_right = Motor(settings.PINS['motor']['right']) self.encoder_left = Encoder.Worker(settings.PINS['encoder']['left']) self.encoder_right = Encoder.Worker(settings.PINS['encoder']['right']) self.pid = PID() self.mpu = AltIMU() self.mpu.enable() self.mpu.calibrateGyroAngles() self.mpu.initComplementaryFromAccel = True self.encoder_left.start() self.encoder_right.start() self.cstate = {} self.cstate['theta'] = 0 self.cstate['gamma'] = 0 self.cstate['phi'] = 0 self.cstate['wheelAngleR'] = 0 self.cstate['wheelAngleL'] = 0 self.setpoint = {} self.setpoint['phi'] = 0 self.setpoint['theta'] = 0 self.setpoint['phidot'] = settings.DRIVE_RATE_ADVANCED self.setpoint['gammadot'] = settings.TURN_RATE_ADVANCED self.setpoint['gamma'] = 0 self.D1 = Filter(DT, settings.edumip_params['D1']['num'], settings.edumip_params['D1']['den']) self.D1.gain = settings.edumip_params['D1']['gain'] self.D1.filter_enable_saturation(-1.0, 1.0) self.D1.filter_enable_soft_start(0.7) self.D1.name = 'D1' self.D2 = Filter(DT, settings.edumip_params['D2']['num'], settings.edumip_params['D2']['den']) self.D2.gain = settings.edumip_params['D2']['gain'] self.D2.filter_enable_saturation( -settings.edumip_params['D2']['theta_ref_max'], settings.edumip_params['D2']['theta_ref_max']) self.D2.filter_enable_soft_start(0.7) self.D2.name = 'D2' self.D3 = Filter() self.D3.filter_pid(settings.edumip_params['D3']['kp'], settings.edumip_params['D3']['ki'], settings.edumip_params['D3']['kd'], 4 * DT, DT) self.D3.filter_enable_saturation(-settings.STEERING_INPUT_MAX, settings.STEERING_INPUT_MAX) self.D3.name = 'D3'
from motor import Motor import settings import time from RotaryEncoder import RotaryEncoder as Encoder encoder_left = Encoder.Worker(settings.PINS['encoder']['left']) encoder_right = Encoder.Worker(settings.PINS['encoder']['right']) encoder_left.start() encoder_right.start() while True: print(encoder_left.speed, encoder_right.speed) time.sleep(1)