!!! Using Classes and Methods This is __Exercise 5__ of the [Micro Python Tutorial]. !motor_controller.py %%python {{{ # motor controller class from motor import Motor class MotorController: def __init__(self): self.port_forward_motor = Motor('pfwd') self.stbd_forward_motor = Motor('sfwd') print("motor controller ready.") def set_speed(self, port_speed, stbd_speed): self.port_forward_motor.set_speed(port_speed) self.stbd_forward_motor.set_speed(stbd_speed) def stop(self): self.port_forward_motor.stop() self.stbd_forward_motor.stop() }}} %% !motor.py: %%python {{{ # this is the motor class class Motor: def __init__(self, name): self.motor_name = name self.motor_speed = 0 print("motor {} ready.".format(self.motor_name)) def set_speed(self, speed): self.motor_speed = speed print("set motor {} speed to: {}".format(self.motor_name, speed)) def get_speed(self): return self.motor_speed def stop(self): self.motor_speed = 0 print('motor {} stopped.'.format(self.motor_name)) }}} %% !main.py: %%python {{{ import time from motor_controller import MotorController motor_ctrl = None try: motor_ctrl = MotorController() # begin to accelerate in clockwise rotation for speed in range(0, 101): motor_ctrl.set_speed(speed,-speed) time.sleep(3) # wait 3 seconds # begin to decelerate down to zero (stopped) for speed in range(100, -1, -1): motor_ctrl.set_speed(speed,-speed) except Exception as ex: print('an error occurred: {}'.format(ex)) finally: # if motor_ctrl: same thing as: if motor_ctrl is not None: motor_ctrl.stop() print('complete.') }}} %% ---- * [MicroPython Tutorial Exercise 4|MicroPythonTutorialExercise04]: classes * [MicroPython Tutorial Exercise 6|MicroPythonTutorialExercise06]: tbd