| #!/usr/bin/python
from Adafruit_MotorHAT import Adafruit_MotorHAT
 
import time
import atexit
import Adafruit_PCA9685
# create a default object, no changes to I2C address or frequency
mh = Adafruit_MotorHAT(addr=0x60)
myMotor1 = mh.getMotor(1)
myMotor2 = mh.getMotor(2)
# servo
pwm = Adafruit_PCA9685.PCA9685(address=0x60)
pwm.set_pwm_freq(60)
def move(degree_1,degree_2,degree_3,degree_8):
    degree_1 = int(degree_1 * 5.27)
    degree_2 = int(degree_2 * 5.27)
    degree_3 = int(degree_3 * 5.27)
    degree_8 = int(degree_8 * 5.27)
    pwm.set_pwm(0, 0, degree_1)
    pwm.set_pwm(1, 0, degree_2)
    pwm.set_pwm(2, 0, degree_3)
    pwm.set_pwm(7, 0, degree_8)
while (True):
    command = raw_input()
    if command == 'f':
	print "Forward! "
	myMotor1.run(Adafruit_MotorHAT.FORWARD)
	myMotor2.run(Adafruit_MotorHAT.FORWARD)
	
	myMotor1.setSpeed(255)
	myMotor2.setSpeed(255)
	time.sleep(1.5)
    
	print "Release"
	myMotor1.run(Adafruit_MotorHAT.RELEASE)
	myMotor2.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1.0)
	
    elif command == 'b':
	print "Backward! "
	myMotor1.run(Adafruit_MotorHAT.BACKWARD)
	myMotor2.run(Adafruit_MotorHAT.BACKWARD)
 	myMotor1.setSpeed(255)
 	myMotor2.setSpeed(255)
	time.sleep(1.5)
	
	print "Release"
	myMotor1.run(Adafruit_MotorHAT.RELEASE)
	myMotor2.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1.0)
	
    elif command == 'r':
	print "Backward! "
	myMotor1.run(Adafruit_MotorHAT.FORWARD)
	myMotor2.run(Adafruit_MotorHAT.BACKWARD)
 	myMotor1.setSpeed(255)
 	myMotor2.setSpeed(255)
	time.sleep(1.5)
	
	print "Release"
	myMotor1.run(Adafruit_MotorHAT.RELEASE)
	myMotor2.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1.0)
    
    elif command == 'l':
	print "Backward! "
	myMotor1.run(Adafruit_MotorHAT.BACKWARD)
	myMotor2.run(Adafruit_MotorHAT.FORWARD)
 	myMotor1.setSpeed(255)
 	myMotor2.setSpeed(255)
	time.sleep(1.5)
	
	print "Release"
	myMotor1.run(Adafruit_MotorHAT.RELEASE)
	myMotor2.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1.0)
    
    elif command == '1':
        move(65,0,0,0)
        time.sleep(1)
        move(95,0,0,0)
        time.sleep(1.0)
        
    elif command == '2':
        move(0,90,0,0)
        time.sleep(1)
        move(0,65,0,0)
        time.sleep(1.0)
        
    elif command == '3':
        move(0,0,90,0)
        time.sleep(1)
        move(0,0,55,0)
        time.sleep(1.0)
        
    elif command == '8':
        move(0,0,0,35)
        time.sleep(1)
        move(0,0,0,90)
        time.sleep(1.0)
        move(0,0,0,60)
        time.sleep(1.0)
        
    elif command == '0':
        move(65,90,55,0)
        time.sleep(1)
        
    elif command == 'all':
        print "Forward! "
	myMotor1.run(Adafruit_MotorHAT.FORWARD)
	myMotor2.run(Adafruit_MotorHAT.FORWARD)
	
	myMotor1.setSpeed(255)
	myMotor2.setSpeed(255)
	time.sleep(1)
    
	print "Release"
	myMotor1.run(Adafruit_MotorHAT.RELEASE)
	myMotor2.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1)
	print "Backward! "
	myMotor1.run(Adafruit_MotorHAT.BACKWARD)
	myMotor2.run(Adafruit_MotorHAT.BACKWARD)
 	myMotor1.setSpeed(255)
 	myMotor2.setSpeed(255)
	time.sleep(1)
	
	print "Release"
	myMotor1.run(Adafruit_MotorHAT.RELEASE)
	myMotor2.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1)
	
	print "Backward! "
	myMotor1.run(Adafruit_MotorHAT.FORWARD)
	myMotor2.run(Adafruit_MotorHAT.BACKWARD)
 	myMotor1.setSpeed(255)
 	myMotor2.setSpeed(255)
	time.sleep(1)
	
	print "Release"
	myMotor1.run(Adafruit_MotorHAT.RELEASE)
	myMotor2.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1)
    
	print "Backward! "
	myMotor1.run(Adafruit_MotorHAT.BACKWARD)
	myMotor2.run(Adafruit_MotorHAT.FORWARD)
 	myMotor1.setSpeed(255)
 	myMotor2.setSpeed(255)
	time.sleep(1)
	
	print "Release"
	myMotor1.run(Adafruit_MotorHAT.RELEASE)
	myMotor2.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1)
    
        move(95,0,0,0)
        time.sleep(0.5)
        
        move(0,90,0,0)
        time.sleep(0.5)
        move(0,65,0,0)
        time.sleep(0.5)
        
        move(0,0,90,0)
        time.sleep(0.5)
        move(0,0,55,0)
        time.sleep(0.5)
        
        move(0,0,0,35)
        time.sleep(0.5)
        move(0,0,0,90)
        time.sleep(0.5)
        move(0,0,0,60)
        time.sleep(0.5)
        
        move(65,90,55,0)
        time.sleep(0.5) |