Basic Arni movement in motors.
parent
3a26cf4b16
commit
2f783bd8bb
Binary file not shown.
After Width: | Height: | Size: 325 KiB |
@ -0,0 +1,156 @@
|
||||
import machine
|
||||
import servo
|
||||
import time
|
||||
|
||||
i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))
|
||||
|
||||
# Tower pro MG90s
|
||||
servos = servo.Servos(i2c, address=0x40, freq=50, min_us=600, max_us=2400, degrees=180)
|
||||
|
||||
INIT_POSITIONS = [
|
||||
(0, 40),
|
||||
(1, 90),
|
||||
(2, 130),
|
||||
(3, 90),
|
||||
(4, 60),
|
||||
(5, 90),
|
||||
(6, 130),
|
||||
(7, 90)
|
||||
]
|
||||
|
||||
|
||||
def init_legs():
|
||||
for i, a, in INIT_POSITIONS:
|
||||
servos.position(i, a)
|
||||
|
||||
|
||||
def tip_forward(pause=1):
|
||||
servos.position(7, 150)
|
||||
servos.position(1, 30)
|
||||
time.sleep(pause)
|
||||
init_legs()
|
||||
|
||||
|
||||
def tip_back(pause=1):
|
||||
servos.position(3, 150)
|
||||
servos.position(5, 30)
|
||||
time.sleep(pause)
|
||||
init_legs()
|
||||
|
||||
|
||||
def lean_left(pause=1):
|
||||
servos.position(7, 150)
|
||||
servos.position(5, 30)
|
||||
servos.position(3, 60)
|
||||
servos.position(1, 120)
|
||||
time.sleep(pause)
|
||||
init_legs()
|
||||
|
||||
|
||||
def lean_left(pause=1):
|
||||
servos.position(7, 150)
|
||||
servos.position(5, 30)
|
||||
servos.position(3, 60)
|
||||
servos.position(1, 120)
|
||||
time.sleep(pause)
|
||||
init_legs()
|
||||
|
||||
|
||||
def lean_right(pause=1):
|
||||
servos.position(7, 60)
|
||||
servos.position(5, 120)
|
||||
servos.position(3, 150)
|
||||
servos.position(1, 30)
|
||||
time.sleep(pause)
|
||||
init_legs()
|
||||
|
||||
|
||||
def look_left(pause=1):
|
||||
servos.position(0, 10)
|
||||
servos.position(2, 100)
|
||||
servos.position(4, 30)
|
||||
servos.position(6, 100)
|
||||
time.sleep(pause)
|
||||
init_legs()
|
||||
|
||||
|
||||
def look_right(pause=1):
|
||||
servos.position(0, 70)
|
||||
servos.position(2, 160)
|
||||
servos.position(4, 90)
|
||||
servos.position(6, 160)
|
||||
time.sleep(pause)
|
||||
init_legs()
|
||||
|
||||
|
||||
def all_move(pause=1):
|
||||
moves = (tip_forward, tip_back, lean_left, lean_right, look_left, look_right, turn_left, turn_right, turn_right, turn_left)
|
||||
for move in moves:
|
||||
move(pause=pause)
|
||||
time.sleep(0.5)
|
||||
|
||||
|
||||
def turn_left(pause=None):
|
||||
servos.position(0, 10)
|
||||
servos.position(2, 100)
|
||||
servos.position(4, 30)
|
||||
servos.position(6, 100)
|
||||
time.sleep(0.1)
|
||||
servos.position(7, 120)
|
||||
servos.position(6, 160)
|
||||
time.sleep(0.1)
|
||||
servos.position(7, 90)
|
||||
time.sleep(0.1)
|
||||
servos.position(3, 120)
|
||||
servos.position(2, 160)
|
||||
time.sleep(0.1)
|
||||
servos.position(3, 90)
|
||||
time.sleep(0.1)
|
||||
servos.position(5, 30)
|
||||
servos.position(4, 90)
|
||||
time.sleep(0.1)
|
||||
servos.position(5, 90)
|
||||
time.sleep(0.1)
|
||||
servos.position(1, 30)
|
||||
servos.position(0, 90)
|
||||
time.sleep(0.1)
|
||||
servos.position(1, 90)
|
||||
time.sleep(0.1)
|
||||
init_legs()
|
||||
|
||||
|
||||
def turn_right(pause=None):
|
||||
servos.position(0, 70)
|
||||
servos.position(2, 160)
|
||||
servos.position(4, 90)
|
||||
servos.position(6, 160)
|
||||
time.sleep(0.1)
|
||||
# front left
|
||||
servos.position(1, 30)
|
||||
servos.position(0, 10)
|
||||
time.sleep(0.1)
|
||||
servos.position(1, 90)
|
||||
time.sleep(0.1)
|
||||
# back right
|
||||
servos.position(5, 30)
|
||||
servos.position(4, 30)
|
||||
time.sleep(0.1)
|
||||
servos.position(5, 90)
|
||||
time.sleep(0.1)
|
||||
# front right
|
||||
servos.position(7, 120)
|
||||
servos.position(6, 60)
|
||||
time.sleep(0.1)
|
||||
servos.position(7, 90)
|
||||
time.sleep(0.1)
|
||||
# back left
|
||||
servos.position(3, 120)
|
||||
servos.position(2, 60)
|
||||
time.sleep(0.1)
|
||||
servos.position(3, 90)
|
||||
time.sleep(0.1)
|
||||
|
||||
init_legs()
|
||||
|
||||
|
||||
init_legs()
|
Loading…
Reference in New Issue