from gpiozero import Button, Robot from time import sleep from signal import pause robot = Robot((17, 18), (22, 23)) left = Button(2) right = Button(3) forward = Button(4) backward = Button(5) go = Button(6) instructions = [] def add_instruction(btn): instructions.append({ left: (-1, 1), right: (1, -1), forward: (1, 1), backward: (-1, -1), }[btn]) def do_instructions(): instructions.append((0, 0)) robot.source_delay = 0.5 robot.source = instructions sleep(robot.source_delay * len(instructions)) del instructions[:] go.when_pressed = do_instructions for button in (left, right, forward, backward): button.when_pressed = add_instruction pause()