from tkinter import * import serial, os, pty import pickle def draw_point(x,y): green = "#476042" canvas.create_oval(x-5,y-5, x+5, y+5, fill=green) def sendToSerial(): #x, y = event.x, event.y x = root.winfo_pointerx() - root.winfo_rootx() y = root.winfo_pointery() - root.winfo_rooty() posn = str(x) + ", " + str(y) b = posn.encode('utf-8') ser.write(b) readSerial() def readSerial(): b = os.read(master, 100) posn = b.decode("utf-8") coords = posn.replace('"', "").split(",") x,y = coords draw_point(int(x),int(y)) root.after(100, sendToSerial) if __name__ == '__main__': master, slave = pty.openpty() s_name = os.ttyname(slave) ser = serial.Serial(s_name) root = Tk() root.title("Path") canvas = Canvas(root, width=400, height=400) canvas.pack() root.after(1000,sendToSerial) root.mainloop()