def __init__(self, master): # create GUI self.master = master self.master.title('JoyStick Test') label = tk.Label(root, text='Joystick') label.pack() self.gui = GuiJs(master=root) self.gui.createCordinateLabelJs1() self.gui.createCordinateLabelJs2() self.gui.createCircleJs1(200, 200, 220, 220, 'red') self.gui.createButton(btn_name='Finish', callback=self.cleanup) self.gui.createCircleJs2(200, 200, 220, 220, 'blue') #JoyStick instanse self.js1 = JoyStick(0, 3, 27) self.val_vert1 = 0 self.val_horz1 = 0 self.move_vert1 = 0 self.move_horz1 = 0 self.js2 = JoyStick(7, 4, 22) self.val_vert2 = 0 self.val_horz2 = 0 self.move_vert2 = 0 self.move_horz2 = 0 #ServMotor #self.servo= ServMotor(18,180,0) #self.servo = I2cServo() # Led instance self.Led = Led(17)
def __init__(self, master): # create GUI self.gpio = pigpio.pi() self.master = master self.master.title('JoyStick Test') label = tk.Label(root, text='Joystick') label.pack() self.gui = GuiRarm(master=root) self.gui.createCordinateLabelServo() self.gui.createButton(btn_name='Finish', callback=self.cleanup) #self.gui.createCircleJs2(200,200,220,220,'blue') #JoyStick instanse self.jsR = JoyStick(-1, 4, 27) self.val_horz = 0 #self.jsL = JoyStick(7,4,22) self.jsL = JoyStick(2, -1, 22) self.val_vert = 0 #Volume instance self.vol = Volume(6) self.val_vol = 0 self.vol_sum = 0 self.sampleCount = 0 #ServMotor #self.servo= ServMotor(18,180,0) self.servo = I2cServo() #PWM Freq: 60Hz self.servo.setPWMFreq(60) # Led instance self.Led = Led(4) self.Led.setLedOn() # PowrSw self.PowSw = Sw(17, pud='pudup') self.PowSwCont = 0
def main(): brick.sound.beep() joystickEvent = detectJoystick(['Controller']) if joystickEvent: robot = Robot(Motor(Port.D), Motor(Port.A), Motor(Port.B), 55, 200) t = threading.Thread(target=autoStopLoop, args=(robot, )) t.start() def onButtonPressed(code): if code == BUTTON_X: robot.inactive() return False if code == BUTTON_A: robot.fire() return True def onLeftJoyChanged(x, y): robot.drive(x, y) def onRightJoyChanged(x, y): robot.target(x) joystick = JoyStick(joystickEvent) joystick.setButtonHandler(onButtonPressed) joystick.setJoyLeftHandler(onLeftJoyChanged) joystick.setJoyRightHandler(onRightJoyChanged) joystick.startLoop() else: brick.sound.beep()
def __init__(self,master): # create GUI self.master = master self.master.title('JoyStick Test') label = tk.Label(root,text='Joystick') label.pack() self.gui = GuiJs(master=root) self.gui.createCordinateLabel() self.gui.createCircle(200,200,220,220,'red') self.gui.createButton(btn_name='Finish',callback=self.cleanup) #JoyStick instanse self.js = JoyStick() self.val_vert = 0 self.val_horz = 0 self.move_vert = 0 self.move_horz = 0 #ServMotor self.sm= ServMotor(18,180,0) # Led instance self.Led = Led(17) self.Sw = Sw(4,'either',self.callback_Sw)
# draw.line((center, (center[0]+coordinates[0]*radius/rescale,center[1]-coordinates[1]*radius/rescale)), fill=255) # print(coordinates) circleCenter = (center[0] + coordinates[0] * radius / 2, center[1] - coordinates[1] * radius / 2) smallRadius = radius / 3.0 draw.ellipse( (circleCenter[0] - smallRadius, circleCenter[1] - smallRadius, circleCenter[0] + smallRadius, circleCenter[1] + smallRadius), outline=255) #draw.ellipse((center[0]+coordinates[0]*radius/rescale,center[1]-coordinates[1]*radius/rescale)), fill=255) screen = Screen() servos = [Servo(channel) for channel in [0, 1, 2, 3]] joyStick1 = JoyStick(1, JoyStick.Address_Ox48, [1, 0], 4) joyStick2 = JoyStick(1, JoyStick.Address_Ox48, [3, 2], 17) robot = Robot() for servo in servos: servo.set_angle(90) def applyPosition(servo, joyStick, axis, multiplier=1): position = joyStick.last_position[axis] print(position) threshhold = 0.11 if position > threshhold or position < -threshhold: servo.go_to_angle(servo.angle + robot.speed * multiplier * position) return True
from __future__ import division from __future__ import print_function import sys sys.path.append('..') from joystick import JoyStick from servo import ServoController if __name__ == '__main__': sc = ServoController(angle_range=80) js = JoyStick() while True: # read serial v = js.read() # convert to servo angle angle = sc.analog2deg(v) print(angle) for i in range(len(angle)): sc.control([i, angle[i]])