class LedTestCtrl(): def __init__(self,master = 0): #create GUI self.master = master root.title('LED & Switch') label = tk.Label(root,text='Led Test') label.pack() self.gui = GUILed(master=root) self.gui.createCircle(50,50,150,150,'black') #create instances self.gui.createButton(btn_name='Led',callback = self.callback_BtnLed) self.gui.createButton(btn_name='Finish',callback = self.cleanup) self.Sw = Sw(4,'either',self.callback_Sw) self.Led = Led(17) # display GUI # Flashing LED Test No.1 def callback_Sw(self): if self.Sw.getState()== 'Released': if self.Led.getState() != 'Off':self.Led.setLedOff() else: if self.Led.getState() != 'On':self.Led.setLedOn() def callback_BtnLed(self): if self.Led.getState() == 'Off': self.gui.setColor('red') self.Led.setLedOn() else: self.gui.setColor('black') self.Led.setLedOff() def cleanup(self): print 'Test Finished' try: self.Led.cleanup() except RuntimeWarning: pass sys.exit()
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))
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.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) #display GUI def cleanup(self): print 'Test Finished' self.js.cleanup() self.sm.cleanup() self.Led.cleanup() sys.exit() # Flashing LED Test No.1 def callback_Sw(self): if self.Sw.getState()== 'Released': if self.Led.getState() != 'Off':self.Led.setLedOff() else: if self.Led.getState() != 'On':self.Led.setLedOn() def test(self): self.val_vert = self.js.getValVert() self.val_horz = self.js.getValHorz() self.move_vert = self.movement(self.val_vert) self.move_horz = self.movement(self.val_horz) #:print (self.val_vert,self.val_horz,self.move_vert,self.move_horz) if self.move_vert == 0 and self.move_horz == 0: self.Led.setLedOff() else:self.Led.setLedOn() self.gui.renewCordinate(self.val_vert,self.val_horz) self.gui.moveCircle(self.move_vert,self.move_horz) self.moveServmoter() self.master.after(50,self.test) def movement(self,val): move_val = 0 if val > 255:move_val = -10 elif val > 63:move_val = -5 elif val <= -512:move_val = 0 elif val < -255:move_val = 10 elif val < -63: move_val = 5 return move_val def moveServmoter(self): deg = self.sm.getDeg() if self.val_horz > 100: if deg < 180: deg += 10 print deg self.sm.setDeg(float(deg)) elif self.val_horz < -200: if deg >= 10: deg -= 10 print deg self.sm.setDeg(float(deg))