def __init__(self): self.myMotor = qwiic_scmd.QwiicScmd() self.R_MTR = 0 self.L_MTR = 1 self.FWD = 0 self.BWD = 1 if self.myMotor.connected == False: print("Motor Driver not connected. Check connections.", \ file=sys.stderr) return self.myMotor.begin() print("Motor initialized.") time.sleep(.250) #self.myMotor.inversion_mode(1,1) # Zero speeds self.myMotor.set_drive(0,0,0) self.myMotor.set_drive(1,1,0) self.myMotor.enable() print("Motor enabled") time.sleep(.250)
def __init__(self): super(Motor, self).__init__() self.motor = qwiic_scmd.QwiicScmd() self.left = 1 self.right = 0 self.fwd = 0 self.bwd = 1
def __init__(self, *args, **kwargs): super(Robot, self).__init__(*args, **kwargs) self.motor_driver = qwiic_scmd.QwiicScmd() self.left_motor = Motor(self.motor_driver, channel=self.left_motor_channel, alpha=self.left_motor_alpha) self.right_motor = Motor(self.motor_driver, channel=self.right_motor_channel, alpha=self.right_motor_alpha) self.motor_driver.enable()
def __init__(self): rospy.loginfo("Setup Move...") # setup motor controller if rospy.get_param("motor_controller").lower() == 'adafruit': self.motor_driver = Adafruit_MotorHAT( i2c_bus=int(rospy.get_param("i2c_bus"))) self.motor_left_ID = 1 self.motor_right_ID = 2 self.motor_left = self.motor_driver.getMotor(self.motor_left_ID) self.motor_right = self.motor_driver.getMotor(self.motor_right_ID) self.all_stop() elif rospy.get_param("motor_controller").lower() == 'qwiic': self.motor_driver = qwiic_scmd.QwiicScmd() self.motor_driver.disable() rospy.loginfo("Setup Move Complete")
class Motor(HasTraits): #------------------------------------------- # Class variables for setting up the motor # driver for all instances of the Motor class speed = Int() myMotor = qwiic_scmd.QwiicScmd(address=0x58) myMotor.begin() myMotor.set_drive(1,0,0) myMotor.set_drive(0,0,0) myMotor.enable() FWD = 0 BWD = 1 def __init__(self, side): self.side = side if self.myMotor.is_connected(): print('Motor driver connection established') else: print('Motor driver not connected') #-------------------------------------------- # Utilize observer pattern so Motor instance # can modulate speed in response to change in # speed-value @observe('speed') def _observe_speed(self, change): self._run(change['new']) #-------------------------------------------- # Speed input will be in range of -255 to 255 # Values < 0 imply reverse direction def _run(self, speed): if speed < 0: # backward self.myMotor.set_drive(self.side, self.BWD, abs(speed)) else: # forward self.myMotor.set_drive(self.side, self.FWD, speed) #-------------------------------------------- # Calling disable from any instance of Motor # will disable the motor driver for ALL instances def disable(self): self.myMotor.set_drive(0,0,0) self.myMotor.set_drive(1,0,0) self.myMotor.disable()
def setup_motor_controller(self): rospy.loginfo("Starting with controller %s", CONTROLLER) if CONTROLLER == 'adafruit': # setup motor controller self.motor_driver = Adafruit_MotorHAT(i2c_bus=1) self.motor_left = self.motor_driver.getMotor( CircleRobot.motor_left_ID) self.motor_right = self.motor_driver.getMotor( CircleRobot.motor_right_ID) # stop the motors as precaution self.all_stop() elif CONTROLLER == 'qwiic': self.motor_driver = qwiic_scmd.QwiicScmd() self.motor_driver.disable()
def __init__(self): myMotor = qwiic_scmd.QwiicScmd() self.R_MTR = 0 self.L_MTR = 1 self.FWD = 0 self.BWD = 1 if myMotor.connected == False: print("Motor Driver not connected. Check connections.", \ file=sys.stderr) return myMotor.begin() print("Motor initialized.") time.sleep(.250) # Zero speeds myMotor.set_drive(0, 0, 150) myMotor.set_drive(1, 1, 150)
def __init__(self): super().__init__('motor_node') self.motor_driver = qwiic_scmd.QwiicScmd() self.left_motor = 0 self.right_motor = 1 self.all_stop() self.string_sub = self.create_subscription( String, 'jetbot_motor_string', self.string_callback, 10) self.twist_sub = self.create_subscription( Twist, 'jetbot_motor_twist', self.twist_callback, 10)
class AutoPhatMD: TEST = 0 pastError = 0 prevSteer = 0 prevDrive = 0 myMotor = qwiic_scmd.QwiicScmd() def Turn(self, steer): if (steer > 200): steer = 200 elif (steer < -200): steer = -200 if (steer < 0): self.myMotor.set_drive(0, 0, abs(steer)) else: self.myMotor.set_drive(0, 1, abs(steer)) def Drive(self, speed): if (speed > 150): speed = 150 if (speed > 30): for i in range(speed - 7, speed, 1): self.myMotor.set_drive(1, 1, i) time.sleep(0.01) else: self.myMotor.set_drive(1, 1, speed) self.prevDrive = speed def NoError(self): self.myMotor.set_drive(0, 0, 0) self.myMotor.set_drive(1, 1, 150) def Stop(self): self.myMotor.set_drive(0, 0, 0) self.myMotor.set_drive(1, 0, 0) time.sleep(0.05) def ManualLeft(self): self.myMotor.set_drive(0, 1, 200) time.sleep(0.05) def ManualRight(self): self.myMotor.set_drive(0, 0, 200) time.sleep(0.05) def ManualSteerStop(self): self.myMotor.set_drive(0, 1, 0) time.sleep(0.05) def ManualForward(self): for i in range(60, 120, 20): self.myMotor.set_drive(1, 1, i) time.sleep(0.01) def ManualReverse(self): for i in range(60, 120, 20): self.myMotor.set_drive(1, 0, i) time.sleep(0.01) def ManualDriveStop(self): self.myMotor.set_drive(1, 0, 0) time.sleep(0.05) def __init__(self): R_MTR = 0 L_MTR = 1 FWD = 0 BWD = 1 if self.myMotor.connected == False: print("Motor Driver not connected. Check connections.", file=sys.stderr) return self.myMotor.begin() print("Motor initialized.") time.sleep(.250) # Zero Motor Speeds self.myMotor.set_drive(0, 0, 0) self.myMotor.set_drive(1, 0, 0) self.myMotor.enable() print("Motor enabled")
motor_driver.enable() elif msg.data.lower() == "backward": set_speed(motor_left_ID, -1.0) set_speed(motor_right_ID, -1.0) motor_driver.enable() elif msg.data.lower() == "stop": all_stop() else: rospy.logerror(rospy.get_caller_id() + ' invalid cmd_str=%s', msg.data) # initialization if __name__ == '__main__': # setup motor controller motor_driver = qwiic_scmd.QwiicScmd() motor_left_ID = 1 motor_right_ID = 2 print(motor_left_ID) #motor_left = motor_driver.getMotor(motor_left_ID) #motor_right = motor_driver.getMotor(motor_right_ID) # stop the motors as precaution all_stop() # setup ros node rospy.init_node('jetbot_motors')
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. #================================================================================== # Example 1 # from __future__ import print_function import time import sys import math import qwiic_scmd myMotor = qwiic_scmd.QwiicScmd() def runExample(): print("Motor Test.") R_MTR = 0 L_MTR = 1 FWD = 0 BWD = 1 if myMotor.connected == False: print("Motor Driver not connected. Check connections.", \ file=sys.stderr) return myMotor.begin() print("Motor initialized.") time.sleep(.250)
from __future__ import print_function import time import sys import math import qwiic_scmd from log_setup import logger #------------------------------------------ # Default I2C assigned by qwiic library is bus 1. # This motor driver will be using bus 0 therefore # a modification has been made to change the default # bus to bus 0 in file: # ~/.local/lib/python3.6/site-packages/qwiic_i2c/linux_i2c.py # Line number 65 myMotor = qwiic_scmd.QwiicScmd(address=0x58) def run_motor_test(): print("Start: ") motor_left = 0 motor_right = 1 forward = 0 backward = 1 if not myMotor.is_connected(): print("Motor driver not connected!", file=sys.stderr) else: print("Motor driver connection established.") logger.info('Initializing operation of SCMD module')
def setup_motor_controller(self): rospy.loginfo("Starting with controller %s", CONTROLLER) self.motor_driver = qwiic_scmd.QwiicScmd() self.motor_driver.disable()