Exemplo n.º 1
0
swift.waiting_ready(timeout=3)

device_info = swift.get_device_info()
print(device_info)
firmware_version = device_info['firmware_version']
if firmware_version and not firmware_version.startswith(
    ('0.', '1.', '2.', '3.')):
    swift.set_speed_factor(0.0005)

swift.set_mode(0)

swift.reset(wait=True, speed=10000)
swift.set_position(x=200, speed=10000 * 20)
swift.set_position(y=100)
swift.set_position(z=100)
swift.flush_cmd(wait_stop=True)

swift.set_polar(stretch=200, speed=10000 * 20)
swift.set_polar(rotation=90)
swift.set_polar(height=150)
print(swift.set_polar(stretch=200, rotation=90, height=150, wait=True))

swift.flush_cmd()

# time.sleep(1)
# print('mv 1')
# swift.set_position(x=0, y=0, z=0, speed=10000*20)
# swift.flush_cmd(wait_stop=True)

# time.sleep(1)
# print('mv 2')
Exemplo n.º 2
0
count = 0;
while True:
    count = count + 1
    seq = seqs[count % len(seqs)]
    print(seq);
    print(time.time())

    # move
    swift.set_position(x=pos[X], y=pos[Y] + (-d[seq] * bias), z=pos[Z] + 5, speed=10000000)

    # push
    swift.set_position(x=pos[X], y=pos[Y] + (-d[seq] * bias), z=pos[Z] - 15, speed=10000000)

    # return
    swift.set_position(x=pos[X], y=pos[Y] + (-d[seq] * bias), z=pos[Z] + 5, speed=10000000)
    swift.flush_cmd()





# while True:
#     for seq in seqs:
#         # move
#         swift.set_position(x=pos[X], y=pos[Y] + (-d[seq] * bias), z=pos[Z] + 5, speed=10000000)
#         swift.flush_cmd()

#         # push
#         swift.set_position(x=pos[X], y=pos[Y] + (-d[seq] * bias), z=pos[Z] - 15, speed=10000000)
#         swift.flush_cmd()
Exemplo n.º 3
0
class Arm:
    def __init__(self):
        self.arm = SwiftAPI()
        self.arm.reset()
        sleep(2)

    def rest(self):
        self.arm.set_position(x=0,
                              y=180,
                              z=146,
                              wait=True,
                              timeout=10,
                              speed=10000)
        print("moving to rest pos!")

    def correction(self):
        print("=================check start!=================\n")
        self.arm.set_position(x=227, y=0, z=60, wait=True, speed=10000)
        sleep(1)
        self.arm.set_position(x=227,
                              y=0,
                              z=47,
                              wait=True,
                              timeout=10,
                              speed=10000)
        print("check center\n")
        sleep(1)
        input()
        self.arm.set_position(x=292, y=75, z=60, wait=True, speed=10000)
        sleep(1)
        self.arm.set_position(x=292,
                              y=75,
                              z=47,
                              wait=True,
                              timeout=10,
                              speed=10000)
        print("check left-up\n")
        sleep(1)
        input()
        self.arm.set_position(x=293, y=-75, z=60, wait=True, speed=10000)
        sleep(1)
        self.arm.set_position(x=293,
                              y=-75,
                              z=47,
                              wait=True,
                              timeout=10,
                              speed=10000)
        print("check right-up\n")
        sleep(1)
        input()
        self.arm.set_position(x=160, y=75, z=60, wait=True, speed=10000)
        sleep(1)
        self.arm.set_position(x=160,
                              y=75,
                              z=47,
                              wait=True,
                              timeout=10,
                              speed=10000)
        print("check left-down\n")
        sleep(1)
        input()
        self.arm.set_position(x=160, y=-75, z=60, wait=True, speed=10000)
        sleep(1)
        self.arm.set_position(x=160,
                              y=-75,
                              z=47,
                              wait=True,
                              timeout=10,
                              speed=10000)
        print("check right-down\n")
        sleep(1)
        input()
        self.arm.set_position(x=0,
                              y=180,
                              z=146,
                              wait=True,
                              timeout=10,
                              speed=10000)

        print("=================check finish!=================\n")

    def move(self, color, coords):
        global count
        count += 1

        if coords == "pass" or coords == "resign":
            return None
        y, x = coords
        y = int(ord(y) - ord('A'))
        x = int(x) - 1

        if count == 1:
            x_take = 309
        elif count == 2:
            x_take = 280
        elif count == 3:
            x_take = 254
        elif count == 4:
            x_take = 223
        elif count == 5:
            x_take = 200
        elif count == 6:
            x_take = 170
        elif count == 7:
            x_take = 144
            count = 0

        if color == "B":
            xp = x_take
            yp = -145
            zp = 100
        elif color == "W":
            xp = x_take
            yp = 157
            zp = 100
        else:
            print("Wrong color input!")

        self.arm.set_position(x=xp, y=yp, z=zp, wait=True, speed=10000)
        self.arm.flush_cmd(wait_stop=True)
        self.arm.set_position(z=54, wait=True, speed=10000)
        sleep(1.5)
        self.arm.set_pump(True)
        sleep(2)
        self.arm.set_position(z=100, wait=True, speed=10000)
        self.arm.set_position(x=294 - x * 22,
                              y=-66 + y * 24,
                              z=100,
                              wait=True,
                              speed=10000)
        self.arm.flush_cmd(wait_stop=True)
        print("moving to:", coords)
        self.arm.set_position(z=54, wait=True,
                              speed=10000)  # original z is -26
        sleep(1)
        self.arm.set_pump(False)
        sleep(0.5)
        self.arm.set_position(z=100, wait=True, speed=10000)
        sleep(0.5)
        self.arm.flush_cmd()

    def remove(self, coords, remove_list):
        self.arm.set_position(x=1, y=2, z=45, wait=True, speed=10000)
        x, y = coords
        remove_list

    def remove_chess(self, color, coords):
        y, x = coords
        y = int(y) - 1
        x = int(x) - 1

        self.arm.set_position(x=294 - x * 22,
                              y=-66 + y * 24,
                              z=100,
                              wait=True,
                              speed=10000)
        self.arm.flush_cmd(wait_stop=True)
        self.arm.set_position(z=54, wait=True, speed=10000)
        sleep(1.5)
        self.arm.set_pump(True)
        sleep(2)
        print("removing :", coords)
        self.arm.set_position(z=100, wait=True, speed=10000)
        self.arm.set_position(x=342, y=0, z=90, wait=True, speed=10000)
        self.arm.flush_cmd(wait_stop=True)
        self.arm.set_pump(False)
        sleep(0.5)

    def take_photo(self):
        self.arm.set_position(x=166,
                              y=4,
                              z=220,
                              wait=True,
                              timeout=10,
                              speed=10000)
        print("Take Picture place!")

    def game_over(self):
        self.arm.set_position(x=0,
                              y=170,
                              z=100,
                              wait=True,
                              timeout=10,
                              speed=10000)
        print("Game over!")
Exemplo n.º 4
0
class uArm():
    def __init__(self):
        self.scope = 10
        self.x0 = 160
        self.y0 = 0
        self.swift = SwiftAPI(filters={'hwid':'USB VID:PID=2341:0042'})
        self.swift.waiting_ready(timeout=3)
        # self.swift.set_speed_factor(0.005)  # if you change this, be prepared for different movements!
        self.swift.set_mode(mode=0)
        time.sleep(0.5)
        self.swift.set_servo_angle(angle=90)
        self.swift.set_wrist(angle=90)
        self.swift.set_position(x=200,y=0,z=20) # start it off with a salute
        self.swift.set_buzzer(frequency=1000, duration=1) # signal ready
        self.lstValidCharSet = ['?','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',\
                           '-','0','1','2','3','4','5','6','7','8','9']
        self.lstLetter = [self.QuestionMark, self.LetterA, self.LetterB, self.LetterC, self.LetterD, self.LetterE, self.LetterF,\
                          self.LetterG, self.LetterH, self.LetterI, self.LetterJ, self.LetterK, self.LetterL, self.LetterM, self.LetterN,\
                          self.LetterO, self.LetterP, self.LetterQ, self.LetterR, self.LetterS, self.LetterT, self.LetterU, self.LetterV,\
                          self.LetterW, self.LetterX, self.LetterY, self.LetterZ, self.Hyphen,  self.Number0, self.Number1, self.Number2,\
                          self.Number3, self.Number4, self.Number5, self.Number6, self.Number7, self.Number8, self.Number9]

    def __del__(self):
        input("PLEASE SUPPORT uARM ARM!!, then strike ENTER to continue ...")
        self.swift.set_buzzer(frequency=600, duration=2)
        self.swift.set_position(x=200,y=0,z=20)
        self.swift.flush_cmd()
        self.swift.disconnect()
        del self.swift
        self.swift = None

    def arm(self):
        """
            Using this method to allow raw access to the uArm if required
        """
        return self.swift

    def insert_pen(self):
        self.swift.set_buzzer(frequency=1000, duration=0.5) # signal ready
        self.swift.set_servo_angle(angle=90)
        time.sleep(0.5)
        self.swift.set_wrist(angle=90)
        time.sleep(0.5)
        self.swift.set_position(x=200,y=0,z=0)
        while (self.swift.get_is_moving()):
            continue
        input("Set pen in universal holder, then strike ENTER to continue ...")
        self.swift.set_position(x=200,y=0,z=10)
        return

    def pen_up(self):
        while (self.swift.get_is_moving()):
            continue
        x, y, z = self.swift.get_position()
        self.swift.set_position(x, y, 10)
        time.sleep(0.5)
        return 10

    def pen_down(self):
        while (self.swift.get_is_moving()):
            continue
        x, y, z = self.swift.get_position()
        self.swift.set_position(x, y, 0)
        time.sleep(0.5)
        return 0

    def setScope(self, strName):
        """
            based upon the length of strName, determine the scope (char width) and starting X, Y positions
            assuming that the center of the page is 160,0
            x extent is 110 - 210, y extent 80 - (-80)  (x axis is PARALLEL to the arm, short edge of the paper)
        """
        if type(strName) == str:
            strName = strName[:26]  # going to truncate user input to a 26 characters max
            intLenName  = len(strName)
            if (intLenName < 4):
                self.scope = 40.0  # keeping it real
            else:
                self.scope = math.floor(160.0/(intLenName * 1.1))
            self.x0 = 160 - (0.5 * self.scope)
            self.y0 =  self.scope * intLenName * 1.1 / 2

        return

    def LetterSelect(self, c):
        """
            given char c, return the plotting function
            index 0 resolves to the question mark character
        """
        index = 0
        if type(c) == str:
            if c == ' ':
                return self.SpaceBar
            else:
                c = c.upper()
                if c in self.lstValidCharSet:
                    index = self.lstValidCharSet.index(c) - self.lstValidCharSet.index('A') + 1 # 0th item is '?'

                # if c in ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']:
                #     index = ord(c) - ord('A') + 1  # using question mark as the 0th index item

        return self.lstLetter[index]  # return the function to use
Exemplo n.º 5
0
    ('0.', '1.', '2.', '3.')):
    swift.set_speed_factor(0.0005)

swift.set_mode(0)
'''
swift.reset(wait=True, speed=100000)
swift.set_position(x=200, speed=100000)
swift.set_position(y=100)
swift.set_position(z=100)
swift.flush_cmd(wait_stop=True)
'''

#set_digital_output(pin=None, value=None, wait=True, timeout=None, callback=None)
swift.set_digital_output(pin=50, value=1)  # red led
swift.set_digital_output(pin=49, value=0)  # green led
swift.flush_cmd()

i = 0
while i < 5:
    swift.set_polar(stretch=150, speed=100000)
    swift.set_polar(rotation=90)
    swift.set_polar(height=80)
    print(swift.set_polar(stretch=150, rotation=90, height=80, wait=True))
    swift.flush_cmd()

    swift.set_polar(stretch=150, speed=100000)
    swift.set_polar(rotation=90)
    swift.set_polar(height=120)
    print(swift.set_polar(stretch=150, rotation=90, height=120, wait=True))
    swift.flush_cmd()