class JoyStickTest(tk.Frame): 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) #display GUI def cleanup(self): print 'Test Finished' self.js1.cleanup() self.js2.cleanup() #self.servo.cleanup() self.Led.cleanup() sys.exit() # Flashing LED Test No.1 def setLed(self): if (self.js1.getSelState()== 'Released') and \ (self.js2.getSelState()== 'Released'): if self.Led.getState() != 'Off': self.Led.setLedOff() else: if self.Led.getState() != 'On': self.Led.setLedOn() def test(self): self.val_vert1 = self.js1.getValVert() self.val_horz1 = self.js1.getValHorz() self.move_vert1 = self.move_vert(self.val_vert1) self.move_horz1 = self.move_horz(self.val_horz1) #print ('Js1'+'vert:%d'% self.val_vert1+'hortz:%d'% self.val_horz1+'sel:%d' % self.val_sel1) #print (self.val_vert1,self.val_horz1,self.move_vert1,self.move_horz1) self.val_vert2 = self.js2.getValVert() self.val_horz2 = self.js2.getValHorz() self.move_vert2 = self.move_vert(self.val_vert2) self.move_horz2 = self.move_horz(self.val_horz2) #print ('Js2'+'vert:%d'% self.val_vert2+'hortz:%d'% self.val_horz2+'sel:%d' % self.val_sel2) # if self.move_vert1 == 0 and self.move_horz1 == 0: # self.Led.setLedOff() # else:self.Led.setLedOn() self.gui.renewCordinateJs1(self.val_vert1, self.val_horz1) self.gui.renewCordinateJs2(self.val_vert2, self.val_horz2) self.gui.moveCircle1(self.move_horz1, self.move_vert1) self.gui.moveCircle2(self.move_horz2, self.move_vert2) #self.movePwmServo() #self.moveI2cServo() self.setLed() # check Adc(vert,Horz) and Sw per 50ms self.master.after(30, self.test) def move_vert(self, val): move_val = 0 if val >= 2: move_val = -10 elif val <= 0: move_val = 10 else: move_val = 0 return move_val def move_horz(self, val): move_val = 0 if val >= 2: move_val = -10 elif val <= 0: move_val = 10 else: move_val = 0 return move_val def moveI2cServo(self): self.servo.setDuty(self.servo._I2CSERVO_HORZ_0, self.val_horz1, 0, 1024) self.servo.setDuty(self.servo._I2CSERVO_VERT_0, self.val_vert2, 0, 1024) def movePwmServo(self): deg = self.sm.getDeg() if self.val_horz1 > 100: if deg < 180: deg += 10 self.sm.setDeg(float(deg)) elif self.val_horz1 < -200: if deg >= 10: deg -= 10 self.sm.setDeg(float(deg))