# # hello.slider.py # # use slider to set FTDI output to set PWM value on ATtiny from Tkinter import * import serial from time import sleep WINDOW = 600 # window size eps = 0.5 # filter time constant filter1 = 0.0 # filtered value filter2 = 0.0 # filtered value filter3 = 0.0 # filtered value F1 = chr(1) F2 = chr(2) F3 = chr(3) F4 = chr(4) def idle(parent,canvas): #output current value PWM_val = val.get() PWM_byte = chr(PWM_val) # ser.write(PWM_byte); # write PWM value parent.after_idle(idle,parent,canvas) def get_val(self): PWM_val = val.get() PWM_byte = chr(PWM_val) PWM_hex = hex(PWM_val) #send framing # ser.write(F1) # sleep(0.01) # ser.write(F2) # sleep(0.01) # ser.write(F3) # sleep(0.01) # ser.write(F4) #send byte ser.write(PWM_byte) # print type(PWM_val) # print type(PWM_byte) # test = hex(PWM_byte[0] print PWM_hex # # check command line arguments # if (len(sys.argv) != 2): print "command line: hello.load.45.py serial_port" sys.exit() port = sys.argv[1] # # open serial port # ser = serial.Serial(port,9600) ser.setDTR() # # set up GUI # root = Tk() root.title('hello.load.45.py (q to exit)') root.bind('q','exit') canvas = Canvas(root, width=WINDOW, height=.75*WINDOW, background='white') # canvas.create_text(.1*WINDOW,.125*WINDOW,text="1",font=("Helvetica", 24),tags="text1",fill="#0000b0") val = IntVar() Slider_1 = Scale(root, to=255, variable = val, command = get_val) Slider_1.pack(ancho=CENTER) #initialize PWM byte and 9600 baud delays PWM_val = 0 PWM_byte = chr(PWM_val) bitUS = 102 halfbitUS = bitUS/2 # start idle loop # root.after(100,idle,root,canvas) root.mainloop()