Skip to content

Instantly share code, notes, and snippets.

@daisycamber
Created April 5, 2020 23:23
Show Gist options
  • Save daisycamber/711e5529e8460cc38ca245fd2073e776 to your computer and use it in GitHub Desktop.
Save daisycamber/711e5529e8460cc38ca245fd2073e776 to your computer and use it in GitHub Desktop.
Hexapod code
import serial
import time
ser = serial.Serial('COM12',115200, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE) # open serial port
print(ser.name) # check which port was really used
def set_servo(leg,servo,position):
ser.write(serial.to_bytes([0xff,leg*3+servo,position]))#1
LIFT_DELAY = 0.1
STEP_DELAY = 0.3
MAX_POS = 254
MID_POS = 127
OFFSET = 60
SERVO1_POS_FORWARD = [254-OFFSET,254-OFFSET,254-OFFSET,OFFSET,OFFSET,OFFSET]
SERVO1_POS_BACKWARD = [OFFSET,OFFSET,OFFSET,254-OFFSET,254-OFFSET,254-OFFSET]
SERVO2_POS_UP = [254,254,254,0,0,0]
STEP_HEIGHT = 50
SERVO2_POS_DOWN = [254-STEP_HEIGHT,254-STEP_HEIGHT,254-STEP_HEIGHT,STEP_HEIGHT,STEP_HEIGHT,STEP_HEIGHT]
SERVO3_POS_UP = [254,254,254,0,0,0]
STEP_HEIGHT = 100
SERVO3_POS_DOWN = [254-STEP_HEIGHT,254-STEP_HEIGHT,254-STEP_HEIGHT,STEP_HEIGHT,STEP_HEIGHT,STEP_HEIGHT]
set_servo(0,0,MID_POS)
set_servo(1,0,MID_POS)
set_servo(2,0,MID_POS)
set_servo(3,0,MID_POS)
set_servo(4,0,MID_POS)
set_servo(5,0,MID_POS)
set_servo(0,1,SERVO2_POS_UP[0])
set_servo(1,1,SERVO2_POS_UP[1])
set_servo(2,1,SERVO2_POS_UP[2])
set_servo(3,1,SERVO2_POS_UP[3])
set_servo(4,1,SERVO2_POS_UP[4])
set_servo(5,1,SERVO2_POS_UP[5])
set_servo(0,2,SERVO2_POS_UP[0])
set_servo(1,2,SERVO2_POS_UP[1])
set_servo(2,2,SERVO2_POS_UP[2])
set_servo(3,2,SERVO2_POS_UP[3])
set_servo(4,2,SERVO2_POS_UP[4])
set_servo(5,2,SERVO2_POS_UP[5])
time.sleep(1)
while False:
#First alignment
set_servo(0,1,SERVO2_POS_DOWN[0])
set_servo(1,1,SERVO2_POS_UP[1])
set_servo(2,1,SERVO2_POS_DOWN[2])
set_servo(3,1,SERVO2_POS_UP[3])
set_servo(4,1,SERVO2_POS_DOWN[4])
set_servo(5,1,SERVO2_POS_UP[5])
set_servo(0,2,SERVO2_POS_DOWN[0])
set_servo(1,2,SERVO2_POS_UP[1])
set_servo(2,2,SERVO2_POS_DOWN[2])
set_servo(3,2,SERVO2_POS_UP[3])
set_servo(4,2,SERVO2_POS_DOWN[4])
set_servo(5,2,SERVO2_POS_UP[5])
time.sleep(LIFT_DELAY)
set_servo(0,0,SERVO1_POS_BACKWARD[0])
set_servo(1,0,SERVO1_POS_FORWARD[1])
set_servo(2,0,SERVO1_POS_BACKWARD[2])
set_servo(3,0,SERVO1_POS_FORWARD[3])
set_servo(4,0,SERVO1_POS_BACKWARD[4])
set_servo(5,0,SERVO1_POS_FORWARD[5])
time.sleep(STEP_DELAY)
# First step
set_servo(0,1,SERVO2_POS_UP[0])
set_servo(1,1,SERVO2_POS_DOWN[1])
set_servo(2,1,SERVO2_POS_UP[2])
set_servo(3,1,SERVO2_POS_DOWN[3])
set_servo(4,1,SERVO2_POS_UP[4])
set_servo(5,1,SERVO2_POS_DOWN[5])
set_servo(0,2,SERVO2_POS_UP[0])
set_servo(1,2,SERVO2_POS_DOWN[1])
set_servo(2,2,SERVO2_POS_UP[2])
set_servo(3,2,SERVO2_POS_DOWN[3])
set_servo(4,2,SERVO2_POS_UP[4])
set_servo(5,2,SERVO2_POS_DOWN[5])
time.sleep(LIFT_DELAY)
set_servo(0,0,SERVO1_POS_FORWARD[0])
set_servo(1,0,SERVO1_POS_BACKWARD[1])
set_servo(2,0,SERVO1_POS_FORWARD[2])
set_servo(3,0,SERVO1_POS_BACKWARD[3])
set_servo(4,0,SERVO1_POS_FORWARD[4])
set_servo(5,0,SERVO1_POS_BACKWARD[5])
time.sleep(STEP_DELAY)
#set_servo(0,0,SERVO1_POS_BACKWARD[0])
#set_servo(1,0,SERVO1_POS_BACKWARD[1])
#set_servo(2,0,SERVO1_POS_BACKWARD[2])
#set_servo(3,0,SERVO1_POS_BACKWARD[3])
#set_servo(4,0,SERVO1_POS_BACKWARD[4])
#set_servo(5,0,SERVO1_POS_BACKWARD[5])
#ser.write(serial.to_bytes([0xff,1,0xfe]))
#ser.write(serial.to_bytes([0xff,2,0xfe]))
##ser.write(serial.to_bytes([0xff,3,0xcc]))#2
#ser.write(serial.to_bytes([0xff,4,0xfe]))
#ser.write(serial.to_bytes([0xff,5,0xfe]))
#ser.write(serial.to_bytes([0xff,6,0x88]))#3
#ser.write(serial.to_bytes([0xff,7,0xfe]))
#ser.write(serial.to_bytes([0xff,8,0xfe]))
#ser.write(serial.to_bytes([0xff,9,0x88]))#4
#ser.write(serial.to_bytes([0xff,10,0x00]))
#ser.write(serial.to_bytes([0xff,11,0x00]))
#ser.write(serial.to_bytes([0xff,12,0x88]))#5
#ser.write(serial.to_bytes([0xff,13,0x00]))
#ser.write(serial.to_bytes([0xff,14,0x00]))
#ser.write(serial.to_bytes([0xff,15,0xfe]))#6
#ser.write(serial.to_bytes([0xff,16,0x00]))
#ser.write(serial.to_bytes([0xff,17,0x00]))
ser.close() # close port
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment