Beispiel #1
0
 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()
Beispiel #2
0
 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()
Beispiel #3
0
    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)