PRE2017 3 11 Python Code

From Control Systems Technology Group
Revision as of 16:40, 16 March 2018 by S164358 (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
import RPi.GPIO as GPIO     # GPIO pin control
import time                 # Posibility to delay
GPIO.setmode(GPIO.BOARD)    # Board numbering sceme
pin_cServo1 = 29            # Continuous servo 1
pin_cServo2 = 33            # Continuous servo 2
pin_cServo3 = 37            # Continuous servo 3
pin_mServo1 = 13            # Mini servo 1

# Sets pin as output. 
GPIO.setup(cServo1,GPIO.OUT)
GPIO.setup(cServo2,GPIO.OUT) 
GPIO.setup(cServo3,GPIO.OUT) 
GPIO.setup(mServo1,GPIO.OUT) 

freq = 100                  # Servo frequency [Hz]

# Assigns frequency to pins
cServo1 = GPIO.PWM(pin_cServo1, freq) 
cServo2 = GPIO.PWM(pin_cServo2, freq)
cServo3 = GPIO.PWM(pin_cServo3, freq)
mServo1 = GPIO.PWM(pin_mServo1, freq)

cleft   = 5             # 100% velocity to left 
ccenter = 7.5           # no movement
cright  = 10            # 100% velocity to right

mleft   = 5             # 90 degrees left
mcenter = 7.5           # center
mright  = 10            # 90 degrees right

cyldelay        = 2     # Time it takes for cylinder to rotate
dropdelay       = 15    # Time it takes to drop package
platformdelay   = 2     # Time it takes for platform to move down
lockdelay       = 20    # Time lock stays opened

# Sets all servos still at centered position
cServo1.start(ccenter)
cServo2.start(ccenter)
cServo3.start(ccenter)
mServo1.start(mcenter)

if i=true:
    cServo1.ChangeDutyCycle(cleft)      # Inner cylinder opens 
    cServo2.ChangeDutyCycle(cright)     # Outer cylinder moves away
    time.delay(cyldelay)                # Duration of cylinder movement
    cServo1.ChangeDutyCycle(ccenter)    # Inner Cylinder stops moving
    cServo2.ChangeDutyCycle(ccenter)    # Outer Cylinder stops moving
    time.delay(dropdelay)               # Duration of package dropping
    cServo1.ChangeDutyCycle(cright)     # Inner cylinder closes
    cServo2.ChangeDutyCycle(cleft)      # Outer cylinder moves back
    time.delay(cyldelay)                # Duration of cylinder movement
    cServo1.ChangeDutyCycle(ccenter)
    cServo2.ChangeDutyCycle(ccenter)   
    
    cServo3.ChangeDutyCycle(cleft)      # Platform moves down
    time.delay(platformdelay)           # Duration of platform moving down
    cServo3.ChangeDutyCycle(ccenter)    # Platform stops moving

if j=true:
    mServo1.ChangeDutyCycle(mleft)      # Lock opens
    time.delay(lockdelay)
    mServo1.ChangeDutyCycle(mcenter)    # Lock closes