Skip to main content

Camera Movement program

Camera Movement program 

import RPi.GPIO as GPIO
from time import sleep

out1 = 13
out2 = 11
out3 = 15
out4 = 12 

#out5 = 33
#out6 = 31
#out7 = 35
#out8 = 32

out5 = 32
out6 = 35
out7 = 31
out8 = 33

fire = 16 
 
#GPIO.setmode(GPIO.BOARD)
#GPIO.setup(out1,GPIO.OUT)
#GPIO.setup(out2,GPIO.OUT)
#GPIO.setup(out3,GPIO.OUT)
#GPIO.setup(out4,GPIO.OUT)

#GPIO.setup(out5,GPIO.OUT)
#GPIO.setup(out6,GPIO.OUT)
#GPIO.setup(out7,GPIO.OUT)
#GPIO.setup(out8,GPIO.OUT)


class GpioControl(object):

    def __init__(self):
        print("> Init GpioControl !")

    def __del__(self):
        print(" > GPIO.__del__() ")
        GPIO.cleanup()
    
    def startUp(self):
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(out1,GPIO.OUT)
        GPIO.setup(out2,GPIO.OUT)
        GPIO.setup(out3,GPIO.OUT)
        GPIO.setup(out4,GPIO.OUT)
        GPIO.setup(out5,GPIO.OUT)
        GPIO.setup(out6,GPIO.OUT)
        GPIO.setup(out7,GPIO.OUT)
        GPIO.setup(out8,GPIO.OUT)
    
    def cleanUp(self):
        print(" > GPIO.cleanUp() ")
        GPIO.cleanup()
        sleep(2)
    
    def moveUp(self, movestep):
        print(" > GPIO.moveUp() " + str(movestep))
        self.upMove(movestep)
        return "GPIO.moveUp()"
        
    def moveDown(self, movestep):
        print(" > GPIO.moveDown() " + str(movestep))
        self.downMove(movestep)
        return "GPIO.moveDown()"
        
    def moveRight(self, movestep):
        print(" > GPIO.moveRight() " + str(movestep))
        self.rightMove(movestep)
        return "GPIO.moveRight()"
        
    def moveLeft(self, movestep):
        print(" > GPIO.moveLeft() " + str(movestep))
        self.leftMove(movestep)
        return "GPIO.moveLeft()"

    def fire(self):
        print(" > Fired ! ")
        self.fire()
        return "Fired !" 

# Function #
    
    def rightMove(self, stepCnt):
        i=0
        y=0
        #self.initGpio()
        self.startUp()
        for y in range(stepCnt,0,-1):
            if i==0:
                i=7
            else:
                i=i-1
            #print(str((stepCnt)-y) + " , " + str(y) + " , " + str(i)) 
            self.MoveLeftRight(i)
        GPIO.cleanup() 
    
    def leftMove(self, stepCnt):
        i=0
        y=0
        #self.initGpio()
        self.startUp()
        for y in range(stepCnt,0,-1):
            if i==7:
                i=0
            else:
                i=i+1
            #print(str((stepCnt)-y) + " , " + str(y) + " , " + str(i))
            self.MoveLeftRight(i)
        GPIO.cleanup()

    def upMove(self, stepCnt):
        i=0
        y=0
        #self.initGpio()
        self.startUp()
        for y in range(stepCnt,0,-1):
            if i==0:
                i=7
            else:
                i=i-1
            #print(str((stepCnt)-y) + " , " + str(y) + " , " + str(i)) 
            self.MoveUpDown(i)
        GPIO.cleanup() 
    
    def downMove(self, stepCnt):
        i=0
        y=0
        #self.initGpio()
        self.startUp()
        for y in range(stepCnt,0,-1):
            if i==7:
                i=0
            else:
                i=i+1
            #print(str((stepCnt)-y) + " , " + str(y) + " , " + str(i))
            self.MoveUpDown(i)
        GPIO.cleanup()

    def initGpio(self):
        GPIO.output(out1,GPIO.LOW)
        GPIO.output(out2,GPIO.LOW)
        GPIO.output(out3,GPIO.LOW)
        GPIO.output(out4,GPIO.LOW)
        GPIO.output(out5,GPIO.LOW)
        GPIO.output(out6,GPIO.LOW)
        GPIO.output(out7,GPIO.LOW)
        GPIO.output(out8,GPIO.LOW)

    def MoveLeftRight(self, position):
        if position==0:
          GPIO.output(out1,GPIO.HIGH)
          GPIO.output(out2,GPIO.LOW)
          GPIO.output(out3,GPIO.LOW)
          GPIO.output(out4,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==1:
          GPIO.output(out1,GPIO.HIGH)
          GPIO.output(out2,GPIO.HIGH)
          GPIO.output(out3,GPIO.LOW)
          GPIO.output(out4,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==2:  
          GPIO.output(out1,GPIO.LOW)
          GPIO.output(out2,GPIO.HIGH)
          GPIO.output(out3,GPIO.LOW)
          GPIO.output(out4,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==3:    
          GPIO.output(out1,GPIO.LOW)
          GPIO.output(out2,GPIO.HIGH)
          GPIO.output(out3,GPIO.HIGH)
          GPIO.output(out4,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==4:  
          GPIO.output(out1,GPIO.LOW)
          GPIO.output(out2,GPIO.LOW)
          GPIO.output(out3,GPIO.HIGH)
          GPIO.output(out4,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==5:
          GPIO.output(out1,GPIO.LOW)
          GPIO.output(out2,GPIO.LOW)
          GPIO.output(out3,GPIO.HIGH)
          GPIO.output(out4,GPIO.HIGH)
          sleep(0.03)
          #time.sleep(1)
        elif position==6:    
          GPIO.output(out1,GPIO.LOW)
          GPIO.output(out2,GPIO.LOW)
          GPIO.output(out3,GPIO.LOW)
          GPIO.output(out4,GPIO.HIGH)
          sleep(0.03)
          #time.sleep(1)
        elif position==7:    
          GPIO.output(out1,GPIO.HIGH)
          GPIO.output(out2,GPIO.LOW)
          GPIO.output(out3,GPIO.LOW)
          GPIO.output(out4,GPIO.HIGH)
          sleep(0.03)
          #time.sleep(1)

    def MoveUpDown(self, position):
        if position==0:
          GPIO.output(out5,GPIO.HIGH)
          GPIO.output(out6,GPIO.LOW)
          GPIO.output(out7,GPIO.LOW)
          GPIO.output(out8,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==1:
          GPIO.output(out5,GPIO.HIGH)
          GPIO.output(out6,GPIO.HIGH)
          GPIO.output(out7,GPIO.LOW)
          GPIO.output(out8,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==2:  
          GPIO.output(out5,GPIO.LOW)
          GPIO.output(out6,GPIO.HIGH)
          GPIO.output(out7,GPIO.LOW)
          GPIO.output(out8,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==3:    
          GPIO.output(out5,GPIO.LOW)
          GPIO.output(out6,GPIO.HIGH)
          GPIO.output(out7,GPIO.HIGH)
          GPIO.output(out8,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==4:  
          GPIO.output(out5,GPIO.LOW)
          GPIO.output(out6,GPIO.LOW)
          GPIO.output(out7,GPIO.HIGH)
          GPIO.output(out8,GPIO.LOW)
          sleep(0.03)
          #time.sleep(1)
        elif position==5:
          GPIO.output(out5,GPIO.LOW)
          GPIO.output(out6,GPIO.LOW)
          GPIO.output(out7,GPIO.HIGH)
          GPIO.output(out8,GPIO.HIGH)
          sleep(0.03)
          #time.sleep(1)
        elif position==6:    
          GPIO.output(out5,GPIO.LOW)
          GPIO.output(out6,GPIO.LOW)
          GPIO.output(out7,GPIO.LOW)
          GPIO.output(out8,GPIO.HIGH)
          sleep(0.03)
          #time.sleep(1)
        elif position==7:    
          GPIO.output(out5,GPIO.HIGH)
          GPIO.output(out6,GPIO.LOW)
          GPIO.output(out7,GPIO.LOW)
          GPIO.output(out8,GPIO.HIGH)
          sleep(0.03)
          #time.sleep(1)

    def fire(self):
         self.startUp()
         GPIO.setup(fire,GPIO.OUT)
         GPIO.output(fire,GPIO.HIGH)
         sleep(0.5)
         GPIO.output(fire,GPIO.LOW)
         GPIO.cleanup()

# Function #