Files
picar/MotorControl/motor.py
Michael Pivato 2b4f959572 Initial Commit
2018-11-19 21:52:30 +10:30

79 lines
1.7 KiB
Python

import time
from RPi import GPIO
"""This module controls the Motor and Servo control.
This module provides an interface for interacting with
the motor on the Traxxas Slash using a Raspberry Pi
3B+.
"""
"""
"""
class MotorController:
def __init__(self, pin_number, frequency, duty_cycle=0):
self._duty_cycle = duty_cycle
self._operating_frequency = frequency
self._running = False
self.pin_number = pin_number
# Pulse width was mentioned to be 6-7.2% by uni group.
GPIO.setmode(GPIO.OUT)
GPIO.setup(self.pin_number, self._operating_frequency)
self._control_pin = GPIO.PWM(self.pin_number, self._duty_cycle)
@property
def duty_cycle(self):
return self._duty_cycle
@duty_cycle.setter
def duty_cycle(self, value):
if value > 0 and value < 100:
self._duty_cycle = value
# Change the current duty cycle of the GPIO.
self.control.changeDutyCycle
def start(self):
if self._running:
return
else:
self._control_pin.start(self._duty_cycle)
def stop(self):
self._control_pin.stop()
def arm(self):
class MotorDetails:
def __init__(self):
@property
def minDutyCycle(self):
return self._minDutyCycle
@minDutyCycle.setter
def minDutyCycle(self, value):
self._minDutyCycle = value
@property
def maxDutyCycle(self):
return self._maxDutyCycle
@maxDutyCycle.setter
def maxDutyCycle(self, value):
self._maxDutyCycle = value
@property
def idle(self):
return self._idle
max_reverse = 1000
idle = 1500
max_forward = 2000