def gamepad(q): """ gamepad takes a Queue and puts all events on it """ print "gamepad starting up" gp = Gamepad() for event in gp.get_events(): print "gamepad: read {} and queued".format(event) q.put(event)
def __init__(self, grbl): self.step_size = 0.1 # mm self.max_feedrate = 1000 self.loop_delay = 0.02 self.jogging = False self.stepping = False self.grbl = grbl self.gamepad = Gamepad() # Feed hold self.gamepad.on('l1', lambda *a: grbl.send(b'!')) # Resume cycle self.gamepad.on('l2', lambda *a: grbl.send(b'~')) self.gamepad.on('btn11', self.toggle_stepping) # left axis btn self.gamepad.on('select', lambda *a: grbl.soft_reset()) self.gamepad.on('start', lambda *a: grbl.unlock()) self.gamepad.on('dpady', self.on_dpady) # zero X-axis work coordinates self.gamepad.on('btn2', lambda *a: grbl.set_active_coord_system(x=0)) # zero Y-axis work coordinates self.gamepad.on('btn1', lambda *a: self.grbl.set_active_coord_system(y=0)) # zero Z-axis work coordinates self.gamepad.on('btn3', lambda *a: self.grbl.set_active_coord_system(z=0))
def main(): gamepad = Gamepad() motors = Motors() iks = [] for i in range(4): iks.append(DeltaIK()) controller = ManualController(iks) angles = 8 * [0.0] kPs = 8 * [0.1] frametime = 1.0 / 30.0 print("Ready.") while True: try: s = time.time() if not gamepad.process_events(): print("Controller disconnected, waiting for reconnect...") while not gamepad.reconnect(): time.sleep(0.5) print("Controller reconnected.") if gamepad.is_a_down(): print("Shutdown button (A) has been pressed, shutting down...") break pad_y = gamepad.get_left_thumbstick_y() controller.step(pad_y, frametime) # Map IK leg results to motors for i in range(4): angles[legMap[i] [0]] = legDirs[i][0] * (iks[i].angle - (np.pi / 2.0 - iks[i].A)) angles[legMap[i] [1]] = legDirs[i][1] * (iks[i].angle + (np.pi / 2.0 - iks[i].A)) motors.sendCommands(angles, kPs) time.sleep(max(0, frametime - (time.time() - s))) except Exception as e: print(e) break print("-- Program at End --")
def main(args=None): """Console script for gamepad.""" controller = Gamepad() controller.watch_all() click.echo("Connect a gamepad and start mashing buttons!") input("Press ENTER to quit\n\n") return 0
def __init__(self): super().__init__() self.stream = VideoStream() self.winId = self.stream.winId() self.setCentralWidget(self.stream) self.resize(500, 500) self.gamepad = Gamepad() self.hud = HUD(self)
def main(): logging.basicConfig(format='%(message)s', level=logging.INFO) # read options from rc file cfg = rcfile('sky-pointer') port = int(cfg.get('port', 10001)) iface = cfg.get('iface', '0.0.0.0') serial = cfg.get('serial', SERIAL_PORT) joystick = cfg.get('joystick', JOYSTICK_DEV) # override some options with command line arguments parser = argparse.ArgumentParser( description='Sky-pointing laser controller') parser.add_argument('--port', '-p', type=int, default=port, help='Listenging TCP port (default: %d)' % port) parser.add_argument('--iface', '-i', default=iface, help='Listenging network interface (default: %s)' % iface) parser.add_argument('--serial', '-s', default=serial, help='Serial port (default: %s)' % serial) parser.add_argument('--joystick', '-j', default=joystick, help='Joystick device (default: %s)' % joystick) args = parser.parse_args() ptr = Pointer(args.serial) pad = Gamepad(ptr, args.joystick) server = Server(ptr, args.iface, args.port) logging.info("Server listening on port %d" % args.port) pad_thread = threading.Thread(target=pad.loop) pad_thread.daemon = True pad_thread.start() try: server.serve_forever() except KeyboardInterrupt: logging.info("Closing")
def createGamepad(self): if self.gamepad == None: print("Connecting gamepad...") self.gamepad = Gamepad(0) if self.gamepad.enabled(): self.gamepad.connectButton(0, self.addMinThrottle) self.gamepad.connectButton(1, self.removeMinThrottle) self.gamepad.connectButton(6, self.stop) self.gamepad.connectButton(7, self.start) self.gamepad.connectButton(3, self.disableGamepad) self.gamepad_timer = PyQt5.QtCore.QTimer() self.gamepad_timer.timeout.connect(self.checkGamepad) self.setGamepadFrequency() # This method starts gamepad_timer else: self.gamepad.close() self.gamepad = None else: print("Gamepad already exists!")
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT import board import digitalio import analogio import usb_hid from gamepad import Gamepad gp = Gamepad(usb_hid.devices) # Create some buttons. The physical buttons are connected # to ground on one side and these and these pins on the other. button_pins = (board.D2, board.D3, board.D4, board.D5) # Map the buttons to button numbers on the Gamepad. # gamepad_buttons[i] will send that button number when buttons[i] # is pushed. gamepad_buttons = (1, 2, 8, 15) buttons = [digitalio.DigitalInOut(pin) for pin in button_pins] for button in buttons: button.direction = digitalio.Direction.INPUT button.pull = digitalio.Pull.UP # Connect an analog two-axis joystick to A4 and A5. ax = analogio.AnalogIn(board.A4) ay = analogio.AnalogIn(board.A5)
""" Author: Leo Vidarte <http://nerdlabs.com.ar> This is free software, you can redistribute it and/or modify it under the terms of the GPL version 3 as published by the Free Software Foundation. """ from gamepad import Gamepad from serial import Serial serial = Serial('/dev/ttyUSB0', 9600) gamepad = Gamepad(serial) def move(event): print 'move', event.state.get_axes() def move_x(event): print 'move-x', event.state.x def move_y(event): print 'move-y', event.state.y def move_left(event): print 'move-left', event.state.x
def InitializeGamepad(self, request, context): client_uuid_str = str(uuid.uuid4()) print(f"Creating client with uuid {client_uuid_str}") self.gamepads[client_uuid_str] = Gamepad(uuid=client_uuid_str) return gamepad_pb2.ClientID(client_id=client_uuid_str)
def __init__(self, root): super().__init__() self.root = root self.root.protocol("WM_DELETE_WINDOW", self.on_closing) self.setup_video_frame() bottom_frame = Frame(root, relief=RAISED, borderwidth=1) bottom_frame.pack(fill=BOTH, expand=True) left_analog_frame = Frame(bottom_frame, relief=RAISED, borderwidth=1) digital_frame = Frame(bottom_frame, relief=RAISED, borderwidth=1, width=150) right_analog_frame = Frame(bottom_frame, relief=RAISED, borderwidth=1) left_analog_frame.pack(fill=BOTH, expand=True, side='left') digital_frame.pack(fill=BOTH, expand=True, side='left') right_analog_frame.pack(fill=BOTH, expand=True, side='left') digital_button_wrapper = Frame(digital_frame) digital_button_wrapper.pack(fill=NONE) digital_button_wrapper.place(relx=.5, rely=.5, anchor="c") # Digital buttons btn_font = font.Font(weight='bold') self.up_button = Button(digital_button_wrapper, text=u'\u2191', font=btn_font) self.up_button.pack(side=TOP, padx=5, pady=5) self.down_button = Button(digital_button_wrapper, text=u'\u2193', font=btn_font) self.down_button.pack(side=BOTTOM, padx=5, pady=5) self.left_button = Button(digital_button_wrapper, text=u'\u2190', font=btn_font) self.left_button.pack(side=LEFT, padx=5, pady=5) self.right_button = Button(digital_button_wrapper, text=u'\u2192', font=btn_font) self.right_button.pack(side=RIGHT, padx=5, pady=5) # Left analog bar self.left_analog = Scale(left_analog_frame, from_=10, to=-10) self.left_analog.set(0) self.left_analog.pack() self.left_analog.place(relx=.5, rely=.5, anchor="c") # Right analog bar self.right_analog = Scale(right_analog_frame, from_=10, to=-10) self.right_analog.set(0) self.right_analog.pack() self.right_analog.place(relx=.5, rely=.5, anchor="c") self.gamepad_thread = Gamepad(self) self.orig_color = self.up_button.cget('background') self.start_gamepad()